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    maxItems: 2
54    description: 1 or 2 clocks as defined in clock-names below,
55      in that order
56
57  clock-names:
58    description: Names of the 1 to 2 supplied clocks
59    items:
60      - const: txco
61      - const: lpo
62      - const: extclk
63
64  vbat-supply:
65    description: phandle to regulator supply for VBAT
66
67  vddio-supply:
68    description: phandle to regulator supply for VDDIO
69
70  brcm,bt-pcm-int-params:
71    $ref: /schemas/types.yaml#/definitions/uint8-array
72    minItems: 5
73    maxItems: 5
74    description: |-
75      configure PCM parameters via a 5-byte array:
76       sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S
77       pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps
78       pcm-frame-type: short, long
79       pcm-sync-mode: slave, master
80       pcm-clock-mode: slave, master
81
82  interrupts:
83    items:
84      - description: Handle to the line HOST_WAKE used to wake
85          up the host processor. This uses the BT_GPIO_1 pin on
86          the chip when in use.
87
88  interrupt-names:
89    items:
90      - const: host-wakeup
91
92  max-speed: true
93  current-speed: true
94
95required:
96  - compatible
97
98additionalProperties: false
99
100examples:
101  - |
102    #include <dt-bindings/gpio/gpio.h>
103    #include <dt-bindings/interrupt-controller/irq.h>
104
105    uart {
106        uart-has-rtscts;
107
108        bluetooth {
109            compatible = "brcm,bcm4330-bt";
110            max-speed = <921600>;
111            brcm,bt-pcm-int-params = [01 02 00 01 01];
112            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
113            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
114            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
115            interrupt-parent = <&gpio>;
116            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
117        };
118    };
119