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