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  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
108required:
109  - compatible
110
111additionalProperties: false
112
113examples:
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    };
132