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