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