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