xref: /freebsd-src/sys/contrib/device-tree/Bindings/net/broadcom-bluetooth.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
22eb4d8dcSEmmanuel Vadot%YAML 1.2
32eb4d8dcSEmmanuel Vadot---
42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml#
52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
62eb4d8dcSEmmanuel Vadot
72eb4d8dcSEmmanuel Vadottitle: Broadcom Bluetooth Chips
82eb4d8dcSEmmanuel Vadot
92eb4d8dcSEmmanuel Vadotmaintainers:
102eb4d8dcSEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
112eb4d8dcSEmmanuel Vadot
122eb4d8dcSEmmanuel Vadotdescription:
132eb4d8dcSEmmanuel Vadot  This binding describes Broadcom UART-attached bluetooth chips.
142eb4d8dcSEmmanuel Vadot
152eb4d8dcSEmmanuel Vadotproperties:
162eb4d8dcSEmmanuel Vadot  compatible:
17*7d0873ebSEmmanuel Vadot    oneOf:
18*7d0873ebSEmmanuel Vadot      - items:
19*7d0873ebSEmmanuel Vadot          - enum:
20*7d0873ebSEmmanuel Vadot              - infineon,cyw43439-bt
21*7d0873ebSEmmanuel Vadot          - const: brcm,bcm4329-bt
22*7d0873ebSEmmanuel Vadot      - enum:
232eb4d8dcSEmmanuel Vadot          - brcm,bcm20702a1
242eb4d8dcSEmmanuel Vadot          - brcm,bcm4329-bt
252eb4d8dcSEmmanuel Vadot          - brcm,bcm4330-bt
262eb4d8dcSEmmanuel Vadot          - brcm,bcm4334-bt
278bab661aSEmmanuel Vadot          - brcm,bcm43430a0-bt
288bab661aSEmmanuel Vadot          - brcm,bcm43430a1-bt
292eb4d8dcSEmmanuel Vadot          - brcm,bcm43438-bt
302eb4d8dcSEmmanuel Vadot          - brcm,bcm4345c5
312eb4d8dcSEmmanuel Vadot          - brcm,bcm43540-bt
322eb4d8dcSEmmanuel Vadot          - brcm,bcm4335a0
33b97ee269SEmmanuel Vadot          - brcm,bcm4349-bt
348bab661aSEmmanuel Vadot          - cypress,cyw4373a0-bt
35b97ee269SEmmanuel Vadot          - infineon,cyw55572-bt
362eb4d8dcSEmmanuel Vadot
372eb4d8dcSEmmanuel Vadot  shutdown-gpios:
382eb4d8dcSEmmanuel Vadot    maxItems: 1
392eb4d8dcSEmmanuel Vadot    description: GPIO specifier for the line BT_REG_ON used to
402eb4d8dcSEmmanuel Vadot      power on the BT module
412eb4d8dcSEmmanuel Vadot
422eb4d8dcSEmmanuel Vadot  reset-gpios:
432eb4d8dcSEmmanuel Vadot    maxItems: 1
442eb4d8dcSEmmanuel Vadot    description: GPIO specifier for the line BT_RST_N used to
452eb4d8dcSEmmanuel Vadot      reset the BT module. This should be marked as
462eb4d8dcSEmmanuel Vadot      GPIO_ACTIVE_LOW.
472eb4d8dcSEmmanuel Vadot
482eb4d8dcSEmmanuel Vadot  device-wakeup-gpios:
492eb4d8dcSEmmanuel Vadot    maxItems: 1
502eb4d8dcSEmmanuel Vadot    description: GPIO specifier for the line BT_WAKE used to
512eb4d8dcSEmmanuel Vadot      wakeup the controller. This is using the BT_GPIO_0
522eb4d8dcSEmmanuel Vadot      pin on the chip when in use.
532eb4d8dcSEmmanuel Vadot
542eb4d8dcSEmmanuel Vadot  host-wakeup-gpios:
552eb4d8dcSEmmanuel Vadot    maxItems: 1
562eb4d8dcSEmmanuel Vadot    deprecated: true
572eb4d8dcSEmmanuel Vadot    description: GPIO specifier for the line HOST_WAKE used
582eb4d8dcSEmmanuel Vadot      to wakeup the host processor. This is using he BT_GPIO_1
592eb4d8dcSEmmanuel Vadot      pin on the chip when in use. This is deprecated and replaced
602eb4d8dcSEmmanuel Vadot      by interrupts and "host-wakeup" interrupt-names
612eb4d8dcSEmmanuel Vadot
622eb4d8dcSEmmanuel Vadot  clocks:
638cc087a1SEmmanuel Vadot    minItems: 1
642eb4d8dcSEmmanuel Vadot    maxItems: 2
652eb4d8dcSEmmanuel Vadot    description: 1 or 2 clocks as defined in clock-names below,
662eb4d8dcSEmmanuel Vadot      in that order
672eb4d8dcSEmmanuel Vadot
682eb4d8dcSEmmanuel Vadot  clock-names:
692eb4d8dcSEmmanuel Vadot    description: Names of the 1 to 2 supplied clocks
708cc087a1SEmmanuel Vadot    oneOf:
718cc087a1SEmmanuel Vadot      - const: extclk
728cc087a1SEmmanuel Vadot        deprecated: true
738cc087a1SEmmanuel Vadot        description: Deprecated in favor of txco
748cc087a1SEmmanuel Vadot
758cc087a1SEmmanuel Vadot      - const: txco
768cc087a1SEmmanuel Vadot        description: >
778cc087a1SEmmanuel Vadot          external reference clock (not a standalone crystal)
788cc087a1SEmmanuel Vadot
798cc087a1SEmmanuel Vadot      - const: lpo
808cc087a1SEmmanuel Vadot        description: >
818cc087a1SEmmanuel Vadot          external low power 32.768 kHz clock
828cc087a1SEmmanuel Vadot
838cc087a1SEmmanuel Vadot      - items:
842eb4d8dcSEmmanuel Vadot          - const: txco
852eb4d8dcSEmmanuel Vadot          - const: lpo
862eb4d8dcSEmmanuel Vadot
872eb4d8dcSEmmanuel Vadot  vbat-supply:
882eb4d8dcSEmmanuel Vadot    description: phandle to regulator supply for VBAT
892eb4d8dcSEmmanuel Vadot
902eb4d8dcSEmmanuel Vadot  vddio-supply:
912eb4d8dcSEmmanuel Vadot    description: phandle to regulator supply for VDDIO
922eb4d8dcSEmmanuel Vadot
932eb4d8dcSEmmanuel Vadot  brcm,bt-pcm-int-params:
942eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
952eb4d8dcSEmmanuel Vadot    minItems: 5
962eb4d8dcSEmmanuel Vadot    maxItems: 5
972eb4d8dcSEmmanuel Vadot    description: |-
982eb4d8dcSEmmanuel Vadot      configure PCM parameters via a 5-byte array:
992eb4d8dcSEmmanuel Vadot       sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S
1002eb4d8dcSEmmanuel Vadot       pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps
1012eb4d8dcSEmmanuel Vadot       pcm-frame-type: short, long
1022eb4d8dcSEmmanuel Vadot       pcm-sync-mode: slave, master
1032eb4d8dcSEmmanuel Vadot       pcm-clock-mode: slave, master
1042eb4d8dcSEmmanuel Vadot
105b97ee269SEmmanuel Vadot  brcm,requires-autobaud-mode:
106b97ee269SEmmanuel Vadot    type: boolean
107b97ee269SEmmanuel Vadot    description:
108b97ee269SEmmanuel Vadot      Set this property if autobaud mode is required. Autobaud mode is required
109b97ee269SEmmanuel Vadot      if the device's initial baud rate in normal mode is not supported by the
110b97ee269SEmmanuel Vadot      host or if the device requires autobaud mode startup before loading FW.
111b97ee269SEmmanuel Vadot
1122eb4d8dcSEmmanuel Vadot  interrupts:
1132eb4d8dcSEmmanuel Vadot    items:
1142eb4d8dcSEmmanuel Vadot      - description: Handle to the line HOST_WAKE used to wake
1152eb4d8dcSEmmanuel Vadot          up the host processor. This uses the BT_GPIO_1 pin on
1162eb4d8dcSEmmanuel Vadot          the chip when in use.
1172eb4d8dcSEmmanuel Vadot
1182eb4d8dcSEmmanuel Vadot  interrupt-names:
1192eb4d8dcSEmmanuel Vadot    items:
1202eb4d8dcSEmmanuel Vadot      - const: host-wakeup
1212eb4d8dcSEmmanuel Vadot
1222eb4d8dcSEmmanuel Vadot  max-speed: true
1232eb4d8dcSEmmanuel Vadot  current-speed: true
1242eb4d8dcSEmmanuel Vadot
1252eb4d8dcSEmmanuel Vadotrequired:
1262eb4d8dcSEmmanuel Vadot  - compatible
1272eb4d8dcSEmmanuel Vadot
128b97ee269SEmmanuel Vadotdependencies:
129fac71e4eSEmmanuel Vadot  brcm,requires-autobaud-mode: [ shutdown-gpios ]
130b97ee269SEmmanuel Vadot
131b97ee269SEmmanuel Vadotif:
132b97ee269SEmmanuel Vadot  not:
133b97ee269SEmmanuel Vadot    properties:
134b97ee269SEmmanuel Vadot      compatible:
135b97ee269SEmmanuel Vadot        contains:
136b97ee269SEmmanuel Vadot          enum:
137b97ee269SEmmanuel Vadot            - brcm,bcm20702a1
138b97ee269SEmmanuel Vadot            - brcm,bcm4329-bt
139b97ee269SEmmanuel Vadot            - brcm,bcm4330-bt
140b97ee269SEmmanuel Vadotthen:
141b97ee269SEmmanuel Vadot  properties:
142b97ee269SEmmanuel Vadot    reset-gpios: false
143b97ee269SEmmanuel Vadot
1442eb4d8dcSEmmanuel VadotadditionalProperties: false
1452eb4d8dcSEmmanuel Vadot
1462eb4d8dcSEmmanuel Vadotexamples:
1472eb4d8dcSEmmanuel Vadot  - |
1482eb4d8dcSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
1492eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1502eb4d8dcSEmmanuel Vadot
1512eb4d8dcSEmmanuel Vadot    uart {
1522eb4d8dcSEmmanuel Vadot        uart-has-rtscts;
1532eb4d8dcSEmmanuel Vadot
1542eb4d8dcSEmmanuel Vadot        bluetooth {
1552eb4d8dcSEmmanuel Vadot            compatible = "brcm,bcm4330-bt";
1562eb4d8dcSEmmanuel Vadot            max-speed = <921600>;
1572eb4d8dcSEmmanuel Vadot            brcm,bt-pcm-int-params = [01 02 00 01 01];
1582eb4d8dcSEmmanuel Vadot            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
1592eb4d8dcSEmmanuel Vadot            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
1602eb4d8dcSEmmanuel Vadot            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
1612eb4d8dcSEmmanuel Vadot            interrupt-parent = <&gpio>;
1622eb4d8dcSEmmanuel Vadot            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
1632eb4d8dcSEmmanuel Vadot        };
1642eb4d8dcSEmmanuel Vadot    };
165