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
227820ee1cSLinus Walleij      - brcm,bcm43438-bt
237820ee1cSLinus Walleij      - brcm,bcm4345c5
247820ee1cSLinus Walleij      - brcm,bcm43540-bt
257820ee1cSLinus Walleij      - brcm,bcm4335a0
2688b65887SAhmad Fatoum      - brcm,bcm4349-bt
27*cba6164fSHakan Jansson      - infineon,cyw55572-bt
287820ee1cSLinus Walleij
297820ee1cSLinus Walleij  shutdown-gpios:
307820ee1cSLinus Walleij    maxItems: 1
317820ee1cSLinus Walleij    description: GPIO specifier for the line BT_REG_ON used to
327820ee1cSLinus Walleij      power on the BT module
337820ee1cSLinus Walleij
347820ee1cSLinus Walleij  reset-gpios:
357820ee1cSLinus Walleij    maxItems: 1
367820ee1cSLinus Walleij    description: GPIO specifier for the line BT_RST_N used to
377820ee1cSLinus Walleij      reset the BT module. This should be marked as
387820ee1cSLinus Walleij      GPIO_ACTIVE_LOW.
397820ee1cSLinus Walleij
407820ee1cSLinus Walleij  device-wakeup-gpios:
417820ee1cSLinus Walleij    maxItems: 1
427820ee1cSLinus Walleij    description: GPIO specifier for the line BT_WAKE used to
437820ee1cSLinus Walleij      wakeup the controller. This is using the BT_GPIO_0
447820ee1cSLinus Walleij      pin on the chip when in use.
457820ee1cSLinus Walleij
467820ee1cSLinus Walleij  host-wakeup-gpios:
477820ee1cSLinus Walleij    maxItems: 1
487820ee1cSLinus Walleij    deprecated: true
497820ee1cSLinus Walleij    description: GPIO specifier for the line HOST_WAKE used
507820ee1cSLinus Walleij      to wakeup the host processor. This is using he BT_GPIO_1
517820ee1cSLinus Walleij      pin on the chip when in use. This is deprecated and replaced
527820ee1cSLinus Walleij      by interrupts and "host-wakeup" interrupt-names
537820ee1cSLinus Walleij
547820ee1cSLinus Walleij  clocks:
5588ffadceSMaxime Ripard    minItems: 1
567820ee1cSLinus Walleij    maxItems: 2
577820ee1cSLinus Walleij    description: 1 or 2 clocks as defined in clock-names below,
587820ee1cSLinus Walleij      in that order
597820ee1cSLinus Walleij
607820ee1cSLinus Walleij  clock-names:
617820ee1cSLinus Walleij    description: Names of the 1 to 2 supplied clocks
6288ffadceSMaxime Ripard    oneOf:
6388ffadceSMaxime Ripard      - const: extclk
6488ffadceSMaxime Ripard        deprecated: true
6588ffadceSMaxime Ripard        description: Deprecated in favor of txco
6688ffadceSMaxime Ripard
6788ffadceSMaxime Ripard      - const: txco
6888ffadceSMaxime Ripard        description: >
6988ffadceSMaxime Ripard          external reference clock (not a standalone crystal)
7088ffadceSMaxime Ripard
7188ffadceSMaxime Ripard      - const: lpo
7288ffadceSMaxime Ripard        description: >
7388ffadceSMaxime Ripard          external low power 32.768 kHz clock
7488ffadceSMaxime Ripard
7588ffadceSMaxime Ripard      - items:
767820ee1cSLinus Walleij          - const: txco
777820ee1cSLinus Walleij          - const: lpo
787820ee1cSLinus Walleij
797820ee1cSLinus Walleij  vbat-supply:
807820ee1cSLinus Walleij    description: phandle to regulator supply for VBAT
817820ee1cSLinus Walleij
827820ee1cSLinus Walleij  vddio-supply:
837820ee1cSLinus Walleij    description: phandle to regulator supply for VDDIO
847820ee1cSLinus Walleij
857820ee1cSLinus Walleij  brcm,bt-pcm-int-params:
867820ee1cSLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint8-array
877820ee1cSLinus Walleij    minItems: 5
887820ee1cSLinus Walleij    maxItems: 5
897820ee1cSLinus Walleij    description: |-
907820ee1cSLinus Walleij      configure PCM parameters via a 5-byte array:
917820ee1cSLinus Walleij       sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S
927820ee1cSLinus Walleij       pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps
937820ee1cSLinus Walleij       pcm-frame-type: short, long
947820ee1cSLinus Walleij       pcm-sync-mode: slave, master
957820ee1cSLinus Walleij       pcm-clock-mode: slave, master
967820ee1cSLinus Walleij
970b4de252SHakan Jansson  brcm,requires-autobaud-mode:
980b4de252SHakan Jansson    type: boolean
990b4de252SHakan Jansson    description:
1000b4de252SHakan Jansson      Set this property if autobaud mode is required. Autobaud mode is required
1010b4de252SHakan Jansson      if the device's initial baud rate in normal mode is not supported by the
1020b4de252SHakan Jansson      host or if the device requires autobaud mode startup before loading FW.
1030b4de252SHakan Jansson
1047820ee1cSLinus Walleij  interrupts:
1057820ee1cSLinus Walleij    items:
1067820ee1cSLinus Walleij      - description: Handle to the line HOST_WAKE used to wake
1077820ee1cSLinus Walleij          up the host processor. This uses the BT_GPIO_1 pin on
1087820ee1cSLinus Walleij          the chip when in use.
1097820ee1cSLinus Walleij
1107820ee1cSLinus Walleij  interrupt-names:
1117820ee1cSLinus Walleij    items:
1127820ee1cSLinus Walleij      - const: host-wakeup
1137820ee1cSLinus Walleij
1147820ee1cSLinus Walleij  max-speed: true
1157820ee1cSLinus Walleij  current-speed: true
1167820ee1cSLinus Walleij
1177820ee1cSLinus Walleijrequired:
1187820ee1cSLinus Walleij  - compatible
1197820ee1cSLinus Walleij
1207820ee1cSLinus WalleijadditionalProperties: false
1217820ee1cSLinus Walleij
1227820ee1cSLinus Walleijexamples:
1237820ee1cSLinus Walleij  - |
1247820ee1cSLinus Walleij    #include <dt-bindings/gpio/gpio.h>
1257820ee1cSLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
1267820ee1cSLinus Walleij
1277820ee1cSLinus Walleij    uart {
1287820ee1cSLinus Walleij        uart-has-rtscts;
1297820ee1cSLinus Walleij
1307820ee1cSLinus Walleij        bluetooth {
1317820ee1cSLinus Walleij            compatible = "brcm,bcm4330-bt";
1327820ee1cSLinus Walleij            max-speed = <921600>;
1337820ee1cSLinus Walleij            brcm,bt-pcm-int-params = [01 02 00 01 01];
1347820ee1cSLinus Walleij            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
1357820ee1cSLinus Walleij            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
1367820ee1cSLinus Walleij            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
1377820ee1cSLinus Walleij            interrupt-parent = <&gpio>;
1387820ee1cSLinus Walleij            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
1397820ee1cSLinus Walleij        };
1407820ee1cSLinus Walleij    };
141