| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/net/bluetooth/brcm,bluetooth.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Broadcom Bluetooth Chips | |
| maintainers: | |
| - Linus Walleij <linusw@kernel.org> | |
| description: | |
| This binding describes Broadcom UART-attached bluetooth chips. | |
| properties: | |
| compatible: | |
| oneOf: | |
| - items: | |
| - enum: | |
| - infineon,cyw43439-bt | |
| - const: brcm,bcm4329-bt | |
| - enum: | |
| - brcm,bcm20702a1 | |
| - brcm,bcm4329-bt | |
| - brcm,bcm4330-bt | |
| - brcm,bcm4334-bt | |
| - brcm,bcm43430a0-bt | |
| - brcm,bcm43430a1-bt | |
| - brcm,bcm43438-bt | |
| - brcm,bcm4345c5 | |
| - brcm,bcm43540-bt | |
| - brcm,bcm4335a0 | |
| - brcm,bcm4349-bt | |
| - cypress,cyw4373a0-bt | |
| - infineon,cyw55572-bt | |
| shutdown-gpios: | |
| maxItems: 1 | |
| description: GPIO specifier for the line BT_REG_ON used to | |
| power on the BT module | |
| reset-gpios: | |
| maxItems: 1 | |
| description: GPIO specifier for the line BT_RST_N used to | |
| reset the BT module. This should be marked as | |
| GPIO_ACTIVE_LOW. | |
| device-wakeup-gpios: | |
| maxItems: 1 | |
| description: GPIO specifier for the line BT_WAKE used to | |
| wakeup the controller. This is using the BT_GPIO_0 | |
| pin on the chip when in use. | |
| host-wakeup-gpios: | |
| maxItems: 1 | |
| deprecated: true | |
| description: GPIO specifier for the line HOST_WAKE used | |
| to wakeup the host processor. This is using he BT_GPIO_1 | |
| pin on the chip when in use. This is deprecated and replaced | |
| by interrupts and "host-wakeup" interrupt-names | |
| clocks: | |
| minItems: 1 | |
| maxItems: 2 | |
| description: 1 or 2 clocks as defined in clock-names below, | |
| in that order | |
| clock-names: | |
| description: Names of the 1 to 2 supplied clocks | |
| oneOf: | |
| - const: extclk | |
| deprecated: true | |
| description: Deprecated in favor of txco | |
| - const: txco | |
| description: > | |
| external reference clock (not a standalone crystal) | |
| - const: lpo | |
| description: > | |
| external low power 32.768 kHz clock | |
| - items: | |
| - const: txco | |
| - const: lpo | |
| vbat-supply: | |
| description: phandle to regulator supply for VBAT | |
| vddio-supply: | |
| description: phandle to regulator supply for VDDIO | |
| brcm,bt-pcm-int-params: | |
| $ref: /schemas/types.yaml#/definitions/uint8-array | |
| minItems: 5 | |
| maxItems: 5 | |
| description: |- | |
| configure PCM parameters via a 5-byte array: | |
| sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S | |
| pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps | |
| pcm-frame-type: short, long | |
| pcm-sync-mode: slave, master | |
| pcm-clock-mode: slave, master | |
| brcm,requires-autobaud-mode: | |
| type: boolean | |
| description: | |
| Set this property if autobaud mode is required. Autobaud mode is required | |
| if the device's initial baud rate in normal mode is not supported by the | |
| host or if the device requires autobaud mode startup before loading FW. | |
| interrupts: | |
| items: | |
| - description: Handle to the line HOST_WAKE used to wake | |
| up the host processor. This uses the BT_GPIO_1 pin on | |
| the chip when in use. | |
| interrupt-names: | |
| items: | |
| - const: host-wakeup | |
| required: | |
| - compatible | |
| dependencies: | |
| brcm,requires-autobaud-mode: [ shutdown-gpios ] | |
| allOf: | |
| - $ref: /schemas/serial/serial-peripheral-props.yaml# | |
| - if: | |
| not: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - brcm,bcm20702a1 | |
| - brcm,bcm4329-bt | |
| - brcm,bcm4330-bt | |
| then: | |
| properties: | |
| reset-gpios: false | |
| unevaluatedProperties: false | |
| examples: | |
| - | | |
| #include <dt-bindings/gpio/gpio.h> | |
| #include <dt-bindings/interrupt-controller/irq.h> | |
| uart { | |
| uart-has-rtscts; | |
| bluetooth { | |
| compatible = "brcm,bcm4330-bt"; | |
| max-speed = <921600>; | |
| brcm,bt-pcm-int-params = [01 02 00 01 01]; | |
| shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>; | |
| device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; | |
| reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>; | |
| interrupt-parent = <&gpio>; | |
| interrupts = <8 IRQ_TYPE_EDGE_FALLING>; | |
| }; | |
| }; |