summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml
blob: 445b2a5536259e58b5e8a7eaa9d4c2a050440b9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom Bluetooth Chips

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

description:
  This binding describes Broadcom UART-attached bluetooth chips.

properties:
  compatible:
    enum:
      - brcm,bcm20702a1
      - brcm,bcm4329-bt
      - brcm,bcm4330-bt
      - brcm,bcm4334-bt
      - brcm,bcm43438-bt
      - brcm,bcm4345c5
      - brcm,bcm43540-bt
      - brcm,bcm4335a0
      - brcm,bcm4349-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

  max-speed: true
  current-speed: true

required:
  - compatible

dependencies:
  brcm,requires-autobaud-mode: [ 'shutdown-gpios' ]

if:
  not:
    properties:
      compatible:
        contains:
          enum:
            - brcm,bcm20702a1
            - brcm,bcm4329-bt
            - brcm,bcm4330-bt
then:
  properties:
    reset-gpios: false

additionalProperties: 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>;
        };
    };