xref: /freebsd-src/sys/contrib/device-tree/Bindings/net/broadcom-bluetooth.yaml (revision 2eb4d8dc723da3cf7d735a3226ae49da4c8c5dbc)
1*2eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*2eb4d8dcSEmmanuel Vadot%YAML 1.2
3*2eb4d8dcSEmmanuel Vadot---
4*2eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml#
5*2eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2eb4d8dcSEmmanuel Vadot
7*2eb4d8dcSEmmanuel Vadottitle: Broadcom Bluetooth Chips
8*2eb4d8dcSEmmanuel Vadot
9*2eb4d8dcSEmmanuel Vadotmaintainers:
10*2eb4d8dcSEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
11*2eb4d8dcSEmmanuel Vadot
12*2eb4d8dcSEmmanuel Vadotdescription:
13*2eb4d8dcSEmmanuel Vadot  This binding describes Broadcom UART-attached bluetooth chips.
14*2eb4d8dcSEmmanuel Vadot
15*2eb4d8dcSEmmanuel Vadotproperties:
16*2eb4d8dcSEmmanuel Vadot  compatible:
17*2eb4d8dcSEmmanuel Vadot    enum:
18*2eb4d8dcSEmmanuel Vadot      - brcm,bcm20702a1
19*2eb4d8dcSEmmanuel Vadot      - brcm,bcm4329-bt
20*2eb4d8dcSEmmanuel Vadot      - brcm,bcm4330-bt
21*2eb4d8dcSEmmanuel Vadot      - brcm,bcm4334-bt
22*2eb4d8dcSEmmanuel Vadot      - brcm,bcm43438-bt
23*2eb4d8dcSEmmanuel Vadot      - brcm,bcm4345c5
24*2eb4d8dcSEmmanuel Vadot      - brcm,bcm43540-bt
25*2eb4d8dcSEmmanuel Vadot      - brcm,bcm4335a0
26*2eb4d8dcSEmmanuel Vadot
27*2eb4d8dcSEmmanuel Vadot  shutdown-gpios:
28*2eb4d8dcSEmmanuel Vadot    maxItems: 1
29*2eb4d8dcSEmmanuel Vadot    description: GPIO specifier for the line BT_REG_ON used to
30*2eb4d8dcSEmmanuel Vadot      power on the BT module
31*2eb4d8dcSEmmanuel Vadot
32*2eb4d8dcSEmmanuel Vadot  reset-gpios:
33*2eb4d8dcSEmmanuel Vadot    maxItems: 1
34*2eb4d8dcSEmmanuel Vadot    description: GPIO specifier for the line BT_RST_N used to
35*2eb4d8dcSEmmanuel Vadot      reset the BT module. This should be marked as
36*2eb4d8dcSEmmanuel Vadot      GPIO_ACTIVE_LOW.
37*2eb4d8dcSEmmanuel Vadot
38*2eb4d8dcSEmmanuel Vadot  device-wakeup-gpios:
39*2eb4d8dcSEmmanuel Vadot    maxItems: 1
40*2eb4d8dcSEmmanuel Vadot    description: GPIO specifier for the line BT_WAKE used to
41*2eb4d8dcSEmmanuel Vadot      wakeup the controller. This is using the BT_GPIO_0
42*2eb4d8dcSEmmanuel Vadot      pin on the chip when in use.
43*2eb4d8dcSEmmanuel Vadot
44*2eb4d8dcSEmmanuel Vadot  host-wakeup-gpios:
45*2eb4d8dcSEmmanuel Vadot    maxItems: 1
46*2eb4d8dcSEmmanuel Vadot    deprecated: true
47*2eb4d8dcSEmmanuel Vadot    description: GPIO specifier for the line HOST_WAKE used
48*2eb4d8dcSEmmanuel Vadot      to wakeup the host processor. This is using he BT_GPIO_1
49*2eb4d8dcSEmmanuel Vadot      pin on the chip when in use. This is deprecated and replaced
50*2eb4d8dcSEmmanuel Vadot      by interrupts and "host-wakeup" interrupt-names
51*2eb4d8dcSEmmanuel Vadot
52*2eb4d8dcSEmmanuel Vadot  clocks:
53*2eb4d8dcSEmmanuel Vadot    maxItems: 2
54*2eb4d8dcSEmmanuel Vadot    description: 1 or 2 clocks as defined in clock-names below,
55*2eb4d8dcSEmmanuel Vadot      in that order
56*2eb4d8dcSEmmanuel Vadot
57*2eb4d8dcSEmmanuel Vadot  clock-names:
58*2eb4d8dcSEmmanuel Vadot    description: Names of the 1 to 2 supplied clocks
59*2eb4d8dcSEmmanuel Vadot    items:
60*2eb4d8dcSEmmanuel Vadot      - const: txco
61*2eb4d8dcSEmmanuel Vadot      - const: lpo
62*2eb4d8dcSEmmanuel Vadot      - const: extclk
63*2eb4d8dcSEmmanuel Vadot
64*2eb4d8dcSEmmanuel Vadot  vbat-supply:
65*2eb4d8dcSEmmanuel Vadot    description: phandle to regulator supply for VBAT
66*2eb4d8dcSEmmanuel Vadot
67*2eb4d8dcSEmmanuel Vadot  vddio-supply:
68*2eb4d8dcSEmmanuel Vadot    description: phandle to regulator supply for VDDIO
69*2eb4d8dcSEmmanuel Vadot
70*2eb4d8dcSEmmanuel Vadot  brcm,bt-pcm-int-params:
71*2eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
72*2eb4d8dcSEmmanuel Vadot    minItems: 5
73*2eb4d8dcSEmmanuel Vadot    maxItems: 5
74*2eb4d8dcSEmmanuel Vadot    description: |-
75*2eb4d8dcSEmmanuel Vadot      configure PCM parameters via a 5-byte array:
76*2eb4d8dcSEmmanuel Vadot       sco-routing: 0 = PCM, 1 = Transport, 2 = Codec, 3 = I2S
77*2eb4d8dcSEmmanuel Vadot       pcm-interface-rate: 128KBps, 256KBps, 512KBps, 1024KBps, 2048KBps
78*2eb4d8dcSEmmanuel Vadot       pcm-frame-type: short, long
79*2eb4d8dcSEmmanuel Vadot       pcm-sync-mode: slave, master
80*2eb4d8dcSEmmanuel Vadot       pcm-clock-mode: slave, master
81*2eb4d8dcSEmmanuel Vadot
82*2eb4d8dcSEmmanuel Vadot  interrupts:
83*2eb4d8dcSEmmanuel Vadot    items:
84*2eb4d8dcSEmmanuel Vadot      - description: Handle to the line HOST_WAKE used to wake
85*2eb4d8dcSEmmanuel Vadot          up the host processor. This uses the BT_GPIO_1 pin on
86*2eb4d8dcSEmmanuel Vadot          the chip when in use.
87*2eb4d8dcSEmmanuel Vadot
88*2eb4d8dcSEmmanuel Vadot  interrupt-names:
89*2eb4d8dcSEmmanuel Vadot    items:
90*2eb4d8dcSEmmanuel Vadot      - const: host-wakeup
91*2eb4d8dcSEmmanuel Vadot
92*2eb4d8dcSEmmanuel Vadot  max-speed: true
93*2eb4d8dcSEmmanuel Vadot  current-speed: true
94*2eb4d8dcSEmmanuel Vadot
95*2eb4d8dcSEmmanuel Vadotrequired:
96*2eb4d8dcSEmmanuel Vadot  - compatible
97*2eb4d8dcSEmmanuel Vadot
98*2eb4d8dcSEmmanuel VadotadditionalProperties: false
99*2eb4d8dcSEmmanuel Vadot
100*2eb4d8dcSEmmanuel Vadotexamples:
101*2eb4d8dcSEmmanuel Vadot  - |
102*2eb4d8dcSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
103*2eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
104*2eb4d8dcSEmmanuel Vadot
105*2eb4d8dcSEmmanuel Vadot    uart {
106*2eb4d8dcSEmmanuel Vadot        uart-has-rtscts;
107*2eb4d8dcSEmmanuel Vadot
108*2eb4d8dcSEmmanuel Vadot        bluetooth {
109*2eb4d8dcSEmmanuel Vadot            compatible = "brcm,bcm4330-bt";
110*2eb4d8dcSEmmanuel Vadot            max-speed = <921600>;
111*2eb4d8dcSEmmanuel Vadot            brcm,bt-pcm-int-params = [01 02 00 01 01];
112*2eb4d8dcSEmmanuel Vadot            shutdown-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
113*2eb4d8dcSEmmanuel Vadot            device-wakeup-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
114*2eb4d8dcSEmmanuel Vadot            reset-gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
115*2eb4d8dcSEmmanuel Vadot            interrupt-parent = <&gpio>;
116*2eb4d8dcSEmmanuel Vadot            interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
117*2eb4d8dcSEmmanuel Vadot        };
118*2eb4d8dcSEmmanuel Vadot    };
119