17820ee1cSLinus Walleij# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
27820ee1cSLinus Walleij%YAML 1.2
37820ee1cSLinus Walleij---
47820ee1cSLinus Walleij$id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml#
57820ee1cSLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml#
67820ee1cSLinus Walleij
77820ee1cSLinus Walleijtitle: Broadcom Bluetooth Chips
87820ee1cSLinus Walleij
97820ee1cSLinus Walleijmaintainers:
107820ee1cSLinus Walleij  - Linus Walleij <linus.walleij@linaro.org>
117820ee1cSLinus Walleij
127820ee1cSLinus Walleijdescription:
137820ee1cSLinus Walleij  This binding describes Broadcom UART-attached bluetooth chips.
147820ee1cSLinus Walleij
157820ee1cSLinus Walleijproperties:
167820ee1cSLinus Walleij  compatible:
177820ee1cSLinus Walleij    enum:
187820ee1cSLinus Walleij      - brcm,bcm20702a1
197820ee1cSLinus Walleij      - brcm,bcm4329-bt
207820ee1cSLinus Walleij      - brcm,bcm4330-bt
2171793730SLinus Walleij      - brcm,bcm4334-bt
22d4e9b8b8SLuca Weiss      - brcm,bcm43430a0-bt
23d4e9b8b8SLuca Weiss      - brcm,bcm43430a1-bt
247820ee1cSLinus Walleij      - brcm,bcm43438-bt
257820ee1cSLinus Walleij      - brcm,bcm4345c5
267820ee1cSLinus Walleij      - brcm,bcm43540-bt
277820ee1cSLinus Walleij      - brcm,bcm4335a0
2888b65887SAhmad Fatoum      - brcm,bcm4349-bt
29892913f0SMarek Vasut      - cypress,cyw4373a0-bt
30cba6164fSHakan Jansson      - infineon,cyw55572-bt
317820ee1cSLinus Walleij
327820ee1cSLinus Walleij  shutdown-gpios:
337820ee1cSLinus Walleij    maxItems: 1
347820ee1cSLinus Walleij    description: GPIO specifier for the line BT_REG_ON used to
357820ee1cSLinus Walleij      power on the BT module
367820ee1cSLinus Walleij
377820ee1cSLinus Walleij  reset-gpios:
387820ee1cSLinus Walleij    maxItems: 1
397820ee1cSLinus Walleij    description: GPIO specifier for the line BT_RST_N used to
407820ee1cSLinus Walleij      reset the BT module. This should be marked as
417820ee1cSLinus Walleij      GPIO_ACTIVE_LOW.
427820ee1cSLinus Walleij
437820ee1cSLinus Walleij  device-wakeup-gpios:
447820ee1cSLinus Walleij    maxItems: 1
457820ee1cSLinus Walleij    description: GPIO specifier for the line BT_WAKE used to
467820ee1cSLinus Walleij      wakeup the controller. This is using the BT_GPIO_0
477820ee1cSLinus Walleij      pin on the chip when in use.
487820ee1cSLinus Walleij
497820ee1cSLinus Walleij  host-wakeup-gpios:
507820ee1cSLinus Walleij    maxItems: 1
517820ee1cSLinus Walleij    deprecated: true
527820ee1cSLinus Walleij    description: GPIO specifier for the line HOST_WAKE used
537820ee1cSLinus Walleij      to wakeup the host processor. This is using he BT_GPIO_1
547820ee1cSLinus Walleij      pin on the chip when in use. This is deprecated and replaced
557820ee1cSLinus Walleij      by interrupts and "host-wakeup" interrupt-names
567820ee1cSLinus Walleij
577820ee1cSLinus Walleij  clocks:
5888ffadceSMaxime Ripard    minItems: 1
597820ee1cSLinus Walleij    maxItems: 2
607820ee1cSLinus Walleij    description: 1 or 2 clocks as defined in clock-names below,
617820ee1cSLinus Walleij      in that order
627820ee1cSLinus Walleij
637820ee1cSLinus Walleij  clock-names:
647820ee1cSLinus Walleij    description: Names of the 1 to 2 supplied clocks
6588ffadceSMaxime Ripard    oneOf:
6688ffadceSMaxime Ripard      - const: extclk
6788ffadceSMaxime Ripard        deprecated: true
6888ffadceSMaxime Ripard        description: Deprecated in favor of txco
6988ffadceSMaxime Ripard
7088ffadceSMaxime Ripard      - const: txco
7188ffadceSMaxime Ripard        description: >
7288ffadceSMaxime Ripard          external reference clock (not a standalone crystal)
7388ffadceSMaxime Ripard
7488ffadceSMaxime Ripard      - const: lpo
7588ffadceSMaxime Ripard        description: >
7688ffadceSMaxime Ripard          external low power 32.768 kHz clock
7788ffadceSMaxime Ripard
7888ffadceSMaxime Ripard      - items:
797820ee1cSLinus Walleij          - const: txco
807820ee1cSLinus Walleij          - const: lpo
817820ee1cSLinus Walleij
827820ee1cSLinus Walleij  vbat-supply:
837820ee1cSLinus Walleij    description: phandle to regulator supply for VBAT
847820ee1cSLinus Walleij
857820ee1cSLinus Walleij  vddio-supply:
867820ee1cSLinus Walleij    description: phandle to regulator supply for VDDIO
877820ee1cSLinus Walleij
887820ee1cSLinus Walleij  brcm,bt-pcm-int-params:
897820ee1cSLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint8-array
907820ee1cSLinus Walleij    minItems: 5
917820ee1cSLinus Walleij    maxItems: 5
927820ee1cSLinus Walleij    description: |-
937820ee1cSLinus Walleij      configure PCM parameters via a 5-byte array:
947820ee1cSLinus Walleij       sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S
957820ee1cSLinus Walleij       pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps
967820ee1cSLinus Walleij       pcm-frame-type: short, long
977820ee1cSLinus Walleij       pcm-sync-mode: slave, master
987820ee1cSLinus Walleij       pcm-clock-mode: slave, master
997820ee1cSLinus Walleij
1000b4de252SHakan Jansson  brcm,requires-autobaud-mode:
1010b4de252SHakan Jansson    type: boolean
1020b4de252SHakan Jansson    description:
1030b4de252SHakan Jansson      Set this property if autobaud mode is required. Autobaud mode is required
1040b4de252SHakan Jansson      if the device's initial baud rate in normal mode is not supported by the
1050b4de252SHakan Jansson      host or if the device requires autobaud mode startup before loading FW.
1060b4de252SHakan Jansson
1077820ee1cSLinus Walleij  interrupts:
1087820ee1cSLinus Walleij    items:
1097820ee1cSLinus Walleij      - description: Handle to the line HOST_WAKE used to wake
1107820ee1cSLinus Walleij          up the host processor. This uses the BT_GPIO_1 pin on
1117820ee1cSLinus Walleij          the chip when in use.
1127820ee1cSLinus Walleij
1137820ee1cSLinus Walleij  interrupt-names:
1147820ee1cSLinus Walleij    items:
1157820ee1cSLinus Walleij      - const: host-wakeup
1167820ee1cSLinus Walleij
1177820ee1cSLinus Walleij  max-speed: true
1187820ee1cSLinus Walleij  current-speed: true
1197820ee1cSLinus Walleij
1207820ee1cSLinus Walleijrequired:
1217820ee1cSLinus Walleij  - compatible
1227820ee1cSLinus Walleij
123c8ce6490SHakan Janssondependencies:
124*3079bfdbSRob Herring  brcm,requires-autobaud-mode: [ shutdown-gpios ]
125c8ce6490SHakan Jansson
126c8ce6490SHakan Janssonif:
127c8ce6490SHakan Jansson  not:
128c8ce6490SHakan Jansson    properties:
129c8ce6490SHakan Jansson      compatible:
130c8ce6490SHakan Jansson        contains:
131c8ce6490SHakan Jansson          enum:
132c8ce6490SHakan Jansson            - brcm,bcm20702a1
133c8ce6490SHakan Jansson            - brcm,bcm4329-bt
134c8ce6490SHakan Jansson            - brcm,bcm4330-bt
135c8ce6490SHakan Janssonthen:
136c8ce6490SHakan Jansson  properties:
137c8ce6490SHakan Jansson    reset-gpios: false
138c8ce6490SHakan Jansson
1397820ee1cSLinus WalleijadditionalProperties: false
1407820ee1cSLinus Walleij
1417820ee1cSLinus Walleijexamples:
1427820ee1cSLinus Walleij  - |
1437820ee1cSLinus Walleij    #include <dt-bindings/gpio/gpio.h>
1447820ee1cSLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
1457820ee1cSLinus Walleij
1467820ee1cSLinus Walleij    uart {
1477820ee1cSLinus Walleij        uart-has-rtscts;
1487820ee1cSLinus Walleij
1497820ee1cSLinus Walleij        bluetooth {
1507820ee1cSLinus Walleij            compatible = "brcm,bcm4330-bt";
1517820ee1cSLinus Walleij            max-speed = <921600>;
1527820ee1cSLinus Walleij            brcm,bt-pcm-int-params = [01 02 00 01 01];
1537820ee1cSLinus Walleij            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
1547820ee1cSLinus Walleij            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
1557820ee1cSLinus Walleij            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
1567820ee1cSLinus Walleij            interrupt-parent = <&gpio>;
1577820ee1cSLinus Walleij            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
1587820ee1cSLinus Walleij        };
1597820ee1cSLinus Walleij    };
160