xref: /linux/Documentation/devicetree/bindings/net/bluetooth/brcm,bluetooth.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1ab00f2abSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2ab00f2abSKrzysztof Kozlowski%YAML 1.2
3ab00f2abSKrzysztof Kozlowski---
4ab00f2abSKrzysztof Kozlowski$id: http://devicetree.org/schemas/net/bluetooth/brcm,bluetooth.yaml#
5ab00f2abSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6ab00f2abSKrzysztof Kozlowski
7ab00f2abSKrzysztof Kozlowskititle: Broadcom Bluetooth Chips
8ab00f2abSKrzysztof Kozlowski
9ab00f2abSKrzysztof Kozlowskimaintainers:
10ab00f2abSKrzysztof Kozlowski  - Linus Walleij <linus.walleij@linaro.org>
11ab00f2abSKrzysztof Kozlowski
12ab00f2abSKrzysztof Kozlowskidescription:
13ab00f2abSKrzysztof Kozlowski  This binding describes Broadcom UART-attached bluetooth chips.
14ab00f2abSKrzysztof Kozlowski
15ab00f2abSKrzysztof Kozlowskiproperties:
16ab00f2abSKrzysztof Kozlowski  compatible:
17ab00f2abSKrzysztof Kozlowski    oneOf:
18ab00f2abSKrzysztof Kozlowski      - items:
19ab00f2abSKrzysztof Kozlowski          - enum:
20ab00f2abSKrzysztof Kozlowski              - infineon,cyw43439-bt
21ab00f2abSKrzysztof Kozlowski          - const: brcm,bcm4329-bt
22ab00f2abSKrzysztof Kozlowski      - enum:
23ab00f2abSKrzysztof Kozlowski          - brcm,bcm20702a1
24ab00f2abSKrzysztof Kozlowski          - brcm,bcm4329-bt
25ab00f2abSKrzysztof Kozlowski          - brcm,bcm4330-bt
26ab00f2abSKrzysztof Kozlowski          - brcm,bcm4334-bt
27ab00f2abSKrzysztof Kozlowski          - brcm,bcm43430a0-bt
28ab00f2abSKrzysztof Kozlowski          - brcm,bcm43430a1-bt
29ab00f2abSKrzysztof Kozlowski          - brcm,bcm43438-bt
30ab00f2abSKrzysztof Kozlowski          - brcm,bcm4345c5
31ab00f2abSKrzysztof Kozlowski          - brcm,bcm43540-bt
32ab00f2abSKrzysztof Kozlowski          - brcm,bcm4335a0
33ab00f2abSKrzysztof Kozlowski          - brcm,bcm4349-bt
34ab00f2abSKrzysztof Kozlowski          - cypress,cyw4373a0-bt
35ab00f2abSKrzysztof Kozlowski          - infineon,cyw55572-bt
36ab00f2abSKrzysztof Kozlowski
37ab00f2abSKrzysztof Kozlowski  shutdown-gpios:
38ab00f2abSKrzysztof Kozlowski    maxItems: 1
39ab00f2abSKrzysztof Kozlowski    description: GPIO specifier for the line BT_REG_ON used to
40ab00f2abSKrzysztof Kozlowski      power on the BT module
41ab00f2abSKrzysztof Kozlowski
42ab00f2abSKrzysztof Kozlowski  reset-gpios:
43ab00f2abSKrzysztof Kozlowski    maxItems: 1
44ab00f2abSKrzysztof Kozlowski    description: GPIO specifier for the line BT_RST_N used to
45ab00f2abSKrzysztof Kozlowski      reset the BT module. This should be marked as
46ab00f2abSKrzysztof Kozlowski      GPIO_ACTIVE_LOW.
47ab00f2abSKrzysztof Kozlowski
48ab00f2abSKrzysztof Kozlowski  device-wakeup-gpios:
49ab00f2abSKrzysztof Kozlowski    maxItems: 1
50ab00f2abSKrzysztof Kozlowski    description: GPIO specifier for the line BT_WAKE used to
51ab00f2abSKrzysztof Kozlowski      wakeup the controller. This is using the BT_GPIO_0
52ab00f2abSKrzysztof Kozlowski      pin on the chip when in use.
53ab00f2abSKrzysztof Kozlowski
54ab00f2abSKrzysztof Kozlowski  host-wakeup-gpios:
55ab00f2abSKrzysztof Kozlowski    maxItems: 1
56ab00f2abSKrzysztof Kozlowski    deprecated: true
57ab00f2abSKrzysztof Kozlowski    description: GPIO specifier for the line HOST_WAKE used
58ab00f2abSKrzysztof Kozlowski      to wakeup the host processor. This is using he BT_GPIO_1
59ab00f2abSKrzysztof Kozlowski      pin on the chip when in use. This is deprecated and replaced
60ab00f2abSKrzysztof Kozlowski      by interrupts and "host-wakeup" interrupt-names
61ab00f2abSKrzysztof Kozlowski
62ab00f2abSKrzysztof Kozlowski  clocks:
63ab00f2abSKrzysztof Kozlowski    minItems: 1
64ab00f2abSKrzysztof Kozlowski    maxItems: 2
65ab00f2abSKrzysztof Kozlowski    description: 1 or 2 clocks as defined in clock-names below,
66ab00f2abSKrzysztof Kozlowski      in that order
67ab00f2abSKrzysztof Kozlowski
68ab00f2abSKrzysztof Kozlowski  clock-names:
69ab00f2abSKrzysztof Kozlowski    description: Names of the 1 to 2 supplied clocks
70ab00f2abSKrzysztof Kozlowski    oneOf:
71ab00f2abSKrzysztof Kozlowski      - const: extclk
72ab00f2abSKrzysztof Kozlowski        deprecated: true
73ab00f2abSKrzysztof Kozlowski        description: Deprecated in favor of txco
74ab00f2abSKrzysztof Kozlowski
75ab00f2abSKrzysztof Kozlowski      - const: txco
76ab00f2abSKrzysztof Kozlowski        description: >
77ab00f2abSKrzysztof Kozlowski          external reference clock (not a standalone crystal)
78ab00f2abSKrzysztof Kozlowski
79ab00f2abSKrzysztof Kozlowski      - const: lpo
80ab00f2abSKrzysztof Kozlowski        description: >
81ab00f2abSKrzysztof Kozlowski          external low power 32.768 kHz clock
82ab00f2abSKrzysztof Kozlowski
83ab00f2abSKrzysztof Kozlowski      - items:
84ab00f2abSKrzysztof Kozlowski          - const: txco
85ab00f2abSKrzysztof Kozlowski          - const: lpo
86ab00f2abSKrzysztof Kozlowski
87ab00f2abSKrzysztof Kozlowski  vbat-supply:
88ab00f2abSKrzysztof Kozlowski    description: phandle to regulator supply for VBAT
89ab00f2abSKrzysztof Kozlowski
90ab00f2abSKrzysztof Kozlowski  vddio-supply:
91ab00f2abSKrzysztof Kozlowski    description: phandle to regulator supply for VDDIO
92ab00f2abSKrzysztof Kozlowski
93ab00f2abSKrzysztof Kozlowski  brcm,bt-pcm-int-params:
94ab00f2abSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint8-array
95ab00f2abSKrzysztof Kozlowski    minItems: 5
96ab00f2abSKrzysztof Kozlowski    maxItems: 5
97ab00f2abSKrzysztof Kozlowski    description: |-
98ab00f2abSKrzysztof Kozlowski      configure PCM parameters via a 5-byte array:
99ab00f2abSKrzysztof Kozlowski       sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S
100ab00f2abSKrzysztof Kozlowski       pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps
101ab00f2abSKrzysztof Kozlowski       pcm-frame-type: short, long
102ab00f2abSKrzysztof Kozlowski       pcm-sync-mode: slave, master
103ab00f2abSKrzysztof Kozlowski       pcm-clock-mode: slave, master
104ab00f2abSKrzysztof Kozlowski
105ab00f2abSKrzysztof Kozlowski  brcm,requires-autobaud-mode:
106ab00f2abSKrzysztof Kozlowski    type: boolean
107ab00f2abSKrzysztof Kozlowski    description:
108ab00f2abSKrzysztof Kozlowski      Set this property if autobaud mode is required. Autobaud mode is required
109ab00f2abSKrzysztof Kozlowski      if the device's initial baud rate in normal mode is not supported by the
110ab00f2abSKrzysztof Kozlowski      host or if the device requires autobaud mode startup before loading FW.
111ab00f2abSKrzysztof Kozlowski
112ab00f2abSKrzysztof Kozlowski  interrupts:
113ab00f2abSKrzysztof Kozlowski    items:
114ab00f2abSKrzysztof Kozlowski      - description: Handle to the line HOST_WAKE used to wake
115ab00f2abSKrzysztof Kozlowski          up the host processor. This uses the BT_GPIO_1 pin on
116ab00f2abSKrzysztof Kozlowski          the chip when in use.
117ab00f2abSKrzysztof Kozlowski
118ab00f2abSKrzysztof Kozlowski  interrupt-names:
119ab00f2abSKrzysztof Kozlowski    items:
120ab00f2abSKrzysztof Kozlowski      - const: host-wakeup
121ab00f2abSKrzysztof Kozlowski
122ab00f2abSKrzysztof Kozlowskirequired:
123ab00f2abSKrzysztof Kozlowski  - compatible
124ab00f2abSKrzysztof Kozlowski
125ab00f2abSKrzysztof Kozlowskidependencies:
126ab00f2abSKrzysztof Kozlowski  brcm,requires-autobaud-mode: [ shutdown-gpios ]
127ab00f2abSKrzysztof Kozlowski
128*c0060591SKrzysztof KozlowskiallOf:
129*c0060591SKrzysztof Kozlowski  - $ref: /schemas/serial/serial-peripheral-props.yaml#
130*c0060591SKrzysztof Kozlowski  - if:
131ab00f2abSKrzysztof Kozlowski      not:
132ab00f2abSKrzysztof Kozlowski        properties:
133ab00f2abSKrzysztof Kozlowski          compatible:
134ab00f2abSKrzysztof Kozlowski            contains:
135ab00f2abSKrzysztof Kozlowski              enum:
136ab00f2abSKrzysztof Kozlowski                - brcm,bcm20702a1
137ab00f2abSKrzysztof Kozlowski                - brcm,bcm4329-bt
138ab00f2abSKrzysztof Kozlowski                - brcm,bcm4330-bt
139ab00f2abSKrzysztof Kozlowski    then:
140ab00f2abSKrzysztof Kozlowski      properties:
141ab00f2abSKrzysztof Kozlowski        reset-gpios: false
142ab00f2abSKrzysztof Kozlowski
143*c0060591SKrzysztof KozlowskiunevaluatedProperties: false
144ab00f2abSKrzysztof Kozlowski
145ab00f2abSKrzysztof Kozlowskiexamples:
146ab00f2abSKrzysztof Kozlowski  - |
147ab00f2abSKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
148ab00f2abSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
149ab00f2abSKrzysztof Kozlowski
150ab00f2abSKrzysztof Kozlowski    uart {
151ab00f2abSKrzysztof Kozlowski        uart-has-rtscts;
152ab00f2abSKrzysztof Kozlowski
153ab00f2abSKrzysztof Kozlowski        bluetooth {
154ab00f2abSKrzysztof Kozlowski            compatible = "brcm,bcm4330-bt";
155ab00f2abSKrzysztof Kozlowski            max-speed = <921600>;
156ab00f2abSKrzysztof Kozlowski            brcm,bt-pcm-int-params = [01 02 00 01 01];
157ab00f2abSKrzysztof Kozlowski            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
158ab00f2abSKrzysztof Kozlowski            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
159ab00f2abSKrzysztof Kozlowski            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
160ab00f2abSKrzysztof Kozlowski            interrupt-parent = <&gpio>;
161ab00f2abSKrzysztof Kozlowski            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
162ab00f2abSKrzysztof Kozlowski        };
163ab00f2abSKrzysztof Kozlowski    };
164