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