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  interrupts:
97    items:
98      - description: Handle to the line HOST_WAKE used to wake
99          up the host processor. This uses the BT_GPIO_1 pin on
100          the chip when in use.
101
102  interrupt-names:
103    items:
104      - const: host-wakeup
105
106  max-speed: true
107  current-speed: true
108
109required:
110  - compatible
111
112additionalProperties: false
113
114examples:
115  - |
116    #include <dt-bindings/gpio/gpio.h>
117    #include <dt-bindings/interrupt-controller/irq.h>
118
119    uart {
120        uart-has-rtscts;
121
122        bluetooth {
123            compatible = "brcm,bcm4330-bt";
124            max-speed = <921600>;
125            brcm,bt-pcm-int-params = [01 02 00 01 01];
126            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
127            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
128            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
129            interrupt-parent = <&gpio>;
130            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
131        };
132    };
133