Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / net / broadcom-bluetooth.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Broadcom Bluetooth Chips
8
9 maintainers:
10   - Linus Walleij <linus.walleij@linaro.org>
11
12 description:
13   This binding describes Broadcom UART-attached bluetooth chips.
14
15 properties:
16   compatible:
17     enum:
18       - brcm,bcm20702a1
19       - brcm,bcm4329-bt
20       - brcm,bcm4330-bt
21       - brcm,bcm4334-bt
22       - brcm,bcm43430a0-bt
23       - brcm,bcm43430a1-bt
24       - brcm,bcm43438-bt
25       - brcm,bcm4345c5
26       - brcm,bcm43540-bt
27       - brcm,bcm4335a0
28       - brcm,bcm4349-bt
29       - cypress,cyw4373a0-bt
30       - infineon,cyw55572-bt
31
32   shutdown-gpios:
33     maxItems: 1
34     description: GPIO specifier for the line BT_REG_ON used to
35       power on the BT module
36
37   reset-gpios:
38     maxItems: 1
39     description: GPIO specifier for the line BT_RST_N used to
40       reset the BT module. This should be marked as
41       GPIO_ACTIVE_LOW.
42
43   device-wakeup-gpios:
44     maxItems: 1
45     description: GPIO specifier for the line BT_WAKE used to
46       wakeup the controller. This is using the BT_GPIO_0
47       pin on the chip when in use.
48
49   host-wakeup-gpios:
50     maxItems: 1
51     deprecated: true
52     description: GPIO specifier for the line HOST_WAKE used
53       to wakeup the host processor. This is using he BT_GPIO_1
54       pin on the chip when in use. This is deprecated and replaced
55       by interrupts and "host-wakeup" interrupt-names
56
57   clocks:
58     minItems: 1
59     maxItems: 2
60     description: 1 or 2 clocks as defined in clock-names below,
61       in that order
62
63   clock-names:
64     description: Names of the 1 to 2 supplied clocks
65     oneOf:
66       - const: extclk
67         deprecated: true
68         description: Deprecated in favor of txco
69
70       - const: txco
71         description: >
72           external reference clock (not a standalone crystal)
73
74       - const: lpo
75         description: >
76           external low power 32.768 kHz clock
77
78       - items:
79           - const: txco
80           - const: lpo
81
82   vbat-supply:
83     description: phandle to regulator supply for VBAT
84
85   vddio-supply:
86     description: phandle to regulator supply for VDDIO
87
88   brcm,bt-pcm-int-params:
89     $ref: /schemas/types.yaml#/definitions/uint8-array
90     minItems: 5
91     maxItems: 5
92     description: |-
93       configure PCM parameters via a 5-byte array:
94        sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S
95        pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps
96        pcm-frame-type: short, long
97        pcm-sync-mode: slave, master
98        pcm-clock-mode: slave, master
99
100   brcm,requires-autobaud-mode:
101     type: boolean
102     description:
103       Set this property if autobaud mode is required. Autobaud mode is required
104       if the device's initial baud rate in normal mode is not supported by the
105       host or if the device requires autobaud mode startup before loading FW.
106
107   interrupts:
108     items:
109       - description: Handle to the line HOST_WAKE used to wake
110           up the host processor. This uses the BT_GPIO_1 pin on
111           the chip when in use.
112
113   interrupt-names:
114     items:
115       - const: host-wakeup
116
117   max-speed: true
118   current-speed: true
119
120 required:
121   - compatible
122
123 dependencies:
124   brcm,requires-autobaud-mode: [ shutdown-gpios ]
125
126 if:
127   not:
128     properties:
129       compatible:
130         contains:
131           enum:
132             - brcm,bcm20702a1
133             - brcm,bcm4329-bt
134             - brcm,bcm4330-bt
135 then:
136   properties:
137     reset-gpios: false
138
139 additionalProperties: false
140
141 examples:
142   - |
143     #include <dt-bindings/gpio/gpio.h>
144     #include <dt-bindings/interrupt-controller/irq.h>
145
146     uart {
147         uart-has-rtscts;
148
149         bluetooth {
150             compatible = "brcm,bcm4330-bt";
151             max-speed = <921600>;
152             brcm,bt-pcm-int-params = [01 02 00 01 01];
153             shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
154             device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
155             reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
156             interrupt-parent = <&gpio>;
157             interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
158         };
159     };