1*7820ee1cSLinus Walleij# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*7820ee1cSLinus Walleij%YAML 1.2
3*7820ee1cSLinus Walleij---
4*7820ee1cSLinus Walleij$id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml#
5*7820ee1cSLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7820ee1cSLinus Walleij
7*7820ee1cSLinus Walleijtitle: Broadcom Bluetooth Chips
8*7820ee1cSLinus Walleij
9*7820ee1cSLinus Walleijmaintainers:
10*7820ee1cSLinus Walleij  - Linus Walleij <linus.walleij@linaro.org>
11*7820ee1cSLinus Walleij
12*7820ee1cSLinus Walleijdescription:
13*7820ee1cSLinus Walleij  This binding describes Broadcom UART-attached bluetooth chips.
14*7820ee1cSLinus Walleij
15*7820ee1cSLinus Walleijproperties:
16*7820ee1cSLinus Walleij  compatible:
17*7820ee1cSLinus Walleij    enum:
18*7820ee1cSLinus Walleij      - brcm,bcm20702a1
19*7820ee1cSLinus Walleij      - brcm,bcm4329-bt
20*7820ee1cSLinus Walleij      - brcm,bcm4330-bt
21*7820ee1cSLinus Walleij      - brcm,bcm43438-bt
22*7820ee1cSLinus Walleij      - brcm,bcm4345c5
23*7820ee1cSLinus Walleij      - brcm,bcm43540-bt
24*7820ee1cSLinus Walleij      - brcm,bcm4335a0
25*7820ee1cSLinus Walleij
26*7820ee1cSLinus Walleij  shutdown-gpios:
27*7820ee1cSLinus Walleij    maxItems: 1
28*7820ee1cSLinus Walleij    description: GPIO specifier for the line BT_REG_ON used to
29*7820ee1cSLinus Walleij      power on the BT module
30*7820ee1cSLinus Walleij
31*7820ee1cSLinus Walleij  reset-gpios:
32*7820ee1cSLinus Walleij    maxItems: 1
33*7820ee1cSLinus Walleij    description: GPIO specifier for the line BT_RST_N used to
34*7820ee1cSLinus Walleij      reset the BT module. This should be marked as
35*7820ee1cSLinus Walleij      GPIO_ACTIVE_LOW.
36*7820ee1cSLinus Walleij
37*7820ee1cSLinus Walleij  device-wakeup-gpios:
38*7820ee1cSLinus Walleij    maxItems: 1
39*7820ee1cSLinus Walleij    description: GPIO specifier for the line BT_WAKE used to
40*7820ee1cSLinus Walleij      wakeup the controller. This is using the BT_GPIO_0
41*7820ee1cSLinus Walleij      pin on the chip when in use.
42*7820ee1cSLinus Walleij
43*7820ee1cSLinus Walleij  host-wakeup-gpios:
44*7820ee1cSLinus Walleij    maxItems: 1
45*7820ee1cSLinus Walleij    deprecated: true
46*7820ee1cSLinus Walleij    description: GPIO specifier for the line HOST_WAKE used
47*7820ee1cSLinus Walleij      to wakeup the host processor. This is using he BT_GPIO_1
48*7820ee1cSLinus Walleij      pin on the chip when in use. This is deprecated and replaced
49*7820ee1cSLinus Walleij      by interrupts and "host-wakeup" interrupt-names
50*7820ee1cSLinus Walleij
51*7820ee1cSLinus Walleij  clocks:
52*7820ee1cSLinus Walleij    maxItems: 2
53*7820ee1cSLinus Walleij    description: 1 or 2 clocks as defined in clock-names below,
54*7820ee1cSLinus Walleij      in that order
55*7820ee1cSLinus Walleij
56*7820ee1cSLinus Walleij  clock-names:
57*7820ee1cSLinus Walleij    description: Names of the 1 to 2 supplied clocks
58*7820ee1cSLinus Walleij    items:
59*7820ee1cSLinus Walleij      - const: txco
60*7820ee1cSLinus Walleij      - const: lpo
61*7820ee1cSLinus Walleij      - const: extclk
62*7820ee1cSLinus Walleij
63*7820ee1cSLinus Walleij  vbat-supply:
64*7820ee1cSLinus Walleij    description: phandle to regulator supply for VBAT
65*7820ee1cSLinus Walleij
66*7820ee1cSLinus Walleij  vddio-supply:
67*7820ee1cSLinus Walleij    description: phandle to regulator supply for VDDIO
68*7820ee1cSLinus Walleij
69*7820ee1cSLinus Walleij  brcm,bt-pcm-int-params:
70*7820ee1cSLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint8-array
71*7820ee1cSLinus Walleij    minItems: 5
72*7820ee1cSLinus Walleij    maxItems: 5
73*7820ee1cSLinus Walleij    description: |-
74*7820ee1cSLinus Walleij      configure PCM parameters via a 5-byte array:
75*7820ee1cSLinus Walleij       sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S
76*7820ee1cSLinus Walleij       pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps
77*7820ee1cSLinus Walleij       pcm-frame-type: short, long
78*7820ee1cSLinus Walleij       pcm-sync-mode: slave, master
79*7820ee1cSLinus Walleij       pcm-clock-mode: slave, master
80*7820ee1cSLinus Walleij
81*7820ee1cSLinus Walleij  interrupts:
82*7820ee1cSLinus Walleij    items:
83*7820ee1cSLinus Walleij      - description: Handle to the line HOST_WAKE used to wake
84*7820ee1cSLinus Walleij          up the host processor. This uses the BT_GPIO_1 pin on
85*7820ee1cSLinus Walleij          the chip when in use.
86*7820ee1cSLinus Walleij
87*7820ee1cSLinus Walleij  interrupt-names:
88*7820ee1cSLinus Walleij    items:
89*7820ee1cSLinus Walleij      - const: host-wakeup
90*7820ee1cSLinus Walleij
91*7820ee1cSLinus Walleij  max-speed: true
92*7820ee1cSLinus Walleij  current-speed: true
93*7820ee1cSLinus Walleij
94*7820ee1cSLinus Walleijrequired:
95*7820ee1cSLinus Walleij  - compatible
96*7820ee1cSLinus Walleij
97*7820ee1cSLinus WalleijadditionalProperties: false
98*7820ee1cSLinus Walleij
99*7820ee1cSLinus Walleijexamples:
100*7820ee1cSLinus Walleij  - |
101*7820ee1cSLinus Walleij    #include <dt-bindings/gpio/gpio.h>
102*7820ee1cSLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
103*7820ee1cSLinus Walleij
104*7820ee1cSLinus Walleij    uart {
105*7820ee1cSLinus Walleij        uart-has-rtscts;
106*7820ee1cSLinus Walleij
107*7820ee1cSLinus Walleij        bluetooth {
108*7820ee1cSLinus Walleij            compatible = "brcm,bcm4330-bt";
109*7820ee1cSLinus Walleij            max-speed = <921600>;
110*7820ee1cSLinus Walleij            brcm,bt-pcm-int-params = [01 02 00 01 01];
111*7820ee1cSLinus Walleij            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
112*7820ee1cSLinus Walleij            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
113*7820ee1cSLinus Walleij            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
114*7820ee1cSLinus Walleij            interrupt-parent = <&gpio>;
115*7820ee1cSLinus Walleij            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
116*7820ee1cSLinus Walleij        };
117*7820ee1cSLinus Walleij    };
118