xref: /openbmc/linux/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml (revision 0b4de2523f281b0492de3427da82495bfca6f263)
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
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  brcm,requires-autobaud-mode:
96    type: boolean
97    description:
98      Set this property if autobaud mode is required. Autobaud mode is required
99      if the device's initial baud rate in normal mode is not supported by the
100      host or if the device requires autobaud mode startup before loading FW.
101
102  interrupts:
103    items:
104      - description: Handle to the line HOST_WAKE used to wake
105          up the host processor. This uses the BT_GPIO_1 pin on
106          the chip when in use.
107
108  interrupt-names:
109    items:
110      - const: host-wakeup
111
112  max-speed: true
113  current-speed: true
114
115required:
116  - compatible
117
118additionalProperties: false
119
120examples:
121  - |
122    #include <dt-bindings/gpio/gpio.h>
123    #include <dt-bindings/interrupt-controller/irq.h>
124
125    uart {
126        uart-has-rtscts;
127
128        bluetooth {
129            compatible = "brcm,bcm4330-bt";
130            max-speed = <921600>;
131            brcm,bt-pcm-int-params = [01 02 00 01 01];
132            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
133            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
134            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
135            interrupt-parent = <&gpio>;
136            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
137        };
138    };
139