1*c9176e10SSven Peter# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*c9176e10SSven Peter%YAML 1.2
3*c9176e10SSven Peter---
4*c9176e10SSven Peter$id: http://devicetree.org/schemas/net/bluetooth/brcm,bcm4377-bluetooth.yaml#
5*c9176e10SSven Peter$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c9176e10SSven Peter
7*c9176e10SSven Petertitle: Broadcom BCM4377 family PCIe Bluetooth Chips
8*c9176e10SSven Peter
9*c9176e10SSven Petermaintainers:
10*c9176e10SSven Peter  - Sven Peter <sven@svenpeter.dev>
11*c9176e10SSven Peter
12*c9176e10SSven Peterdescription:
13*c9176e10SSven Peter  This binding describes Broadcom BCM4377 family PCIe-attached bluetooth chips
14*c9176e10SSven Peter  usually found in Apple machines. The Wi-Fi part of the chip is described in
15*c9176e10SSven Peter  bindings/net/wireless/brcm,bcm4329-fmac.yaml.
16*c9176e10SSven Peter
17*c9176e10SSven PeterallOf:
18*c9176e10SSven Peter  - $ref: bluetooth-controller.yaml#
19*c9176e10SSven Peter
20*c9176e10SSven Peterproperties:
21*c9176e10SSven Peter  compatible:
22*c9176e10SSven Peter    enum:
23*c9176e10SSven Peter      - pci14e4,5fa0 # BCM4377
24*c9176e10SSven Peter      - pci14e4,5f69 # BCM4378
25*c9176e10SSven Peter      - pci14e4,5f71 # BCM4387
26*c9176e10SSven Peter
27*c9176e10SSven Peter  reg:
28*c9176e10SSven Peter    maxItems: 1
29*c9176e10SSven Peter
30*c9176e10SSven Peter  brcm,board-type:
31*c9176e10SSven Peter    $ref: /schemas/types.yaml#/definitions/string
32*c9176e10SSven Peter    description: Board type of the Bluetooth chip. This is used to decouple
33*c9176e10SSven Peter      the overall system board from the Bluetooth module and used to construct
34*c9176e10SSven Peter      firmware and calibration data filenames.
35*c9176e10SSven Peter      On Apple platforms, this should be the Apple module-instance codename
36*c9176e10SSven Peter      prefixed by "apple,", e.g. "apple,atlantisb".
37*c9176e10SSven Peter    pattern: '^apple,.*'
38*c9176e10SSven Peter
39*c9176e10SSven Peter  brcm,taurus-cal-blob:
40*c9176e10SSven Peter    $ref: /schemas/types.yaml#/definitions/uint8-array
41*c9176e10SSven Peter    description: A per-device calibration blob for the Bluetooth radio. This
42*c9176e10SSven Peter      should be filled in by the bootloader from platform configuration
43*c9176e10SSven Peter      data, if necessary, and will be uploaded to the device.
44*c9176e10SSven Peter      This blob is used if the chip stepping of the Bluetooth module does not
45*c9176e10SSven Peter      support beamforming.
46*c9176e10SSven Peter
47*c9176e10SSven Peter  brcm,taurus-bf-cal-blob:
48*c9176e10SSven Peter    $ref: /schemas/types.yaml#/definitions/uint8-array
49*c9176e10SSven Peter    description: A per-device calibration blob for the Bluetooth radio. This
50*c9176e10SSven Peter      should be filled in by the bootloader from platform configuration
51*c9176e10SSven Peter      data, if necessary, and will be uploaded to the device.
52*c9176e10SSven Peter      This blob is used if the chip stepping of the Bluetooth module supports
53*c9176e10SSven Peter      beamforming.
54*c9176e10SSven Peter
55*c9176e10SSven Peter  local-bd-address: true
56*c9176e10SSven Peter
57*c9176e10SSven Peterrequired:
58*c9176e10SSven Peter  - compatible
59*c9176e10SSven Peter  - reg
60*c9176e10SSven Peter  - local-bd-address
61*c9176e10SSven Peter  - brcm,board-type
62*c9176e10SSven Peter
63*c9176e10SSven PeteradditionalProperties: false
64*c9176e10SSven Peter
65*c9176e10SSven Peterexamples:
66*c9176e10SSven Peter  - |
67*c9176e10SSven Peter    pcie@a0000000 {
68*c9176e10SSven Peter      #address-cells = <3>;
69*c9176e10SSven Peter      #size-cells = <2>;
70*c9176e10SSven Peter      reg = <0xa0000000 0x1000000>;
71*c9176e10SSven Peter      device_type = "pci";
72*c9176e10SSven Peter      ranges = <0x43000000 0x6 0xa0000000 0xa0000000 0x0 0x20000000>;
73*c9176e10SSven Peter
74*c9176e10SSven Peter      bluetooth@0,1 {
75*c9176e10SSven Peter        compatible = "pci14e4,5f69";
76*c9176e10SSven Peter        reg = <0x100 0x0 0x0 0x0 0x0>;
77*c9176e10SSven Peter        brcm,board-type = "apple,honshu";
78*c9176e10SSven Peter        /* To be filled by the bootloader */
79*c9176e10SSven Peter        local-bd-address = [00 00 00 00 00 00];
80*c9176e10SSven Peter      };
81*c9176e10SSven Peter    };
82