1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom BCM4329 family fullmac wireless SDIO/PCIE devices
8
9maintainers:
10  - Arend van Spriel <arend@broadcom.com>
11
12description:
13  The Broadcom Single chip MAC part for the BCM4329 family and
14  later Cypress chips in the same family named CYW4373 and similar.
15  These chips also have a Bluetooth portion described in a separate
16  binding.
17
18allOf:
19  - $ref: ieee80211.yaml#
20
21properties:
22  compatible:
23    oneOf:
24      - items:
25          - enum:
26              - brcm,bcm43143-fmac
27              - brcm,bcm4341b0-fmac
28              - brcm,bcm4341b4-fmac
29              - brcm,bcm4341b5-fmac
30              - brcm,bcm4329-fmac
31              - brcm,bcm4330-fmac
32              - brcm,bcm4334-fmac
33              - brcm,bcm43340-fmac
34              - brcm,bcm4335-fmac
35              - brcm,bcm43362-fmac
36              - brcm,bcm4339-fmac
37              - brcm,bcm43430a0-fmac
38              - brcm,bcm43430a1-fmac
39              - brcm,bcm43455-fmac
40              - brcm,bcm43456-fmac
41              - brcm,bcm4354-fmac
42              - brcm,bcm4356-fmac
43              - brcm,bcm4359-fmac
44              - brcm,bcm4366-fmac
45              - cypress,cyw4373-fmac
46              - cypress,cyw43012-fmac
47          - const: brcm,bcm4329-fmac
48      - enum:
49          - brcm,bcm4329-fmac
50          - pci14e4,43dc  # BCM4355
51          - pci14e4,4464  # BCM4364
52          - pci14e4,4488  # BCM4377
53          - pci14e4,4425  # BCM4378
54          - pci14e4,4433  # BCM4387
55
56  reg:
57    description: SDIO function number for the device (for most cases
58      this will be 1) or PCI device identifier.
59
60  interrupts:
61    maxItems: 1
62    description: Out-of-band (OOB) IRQ line for waking up the host
63      in response to WLAN activity. This corresponds to the HOST_WAKE
64      line into the chip.
65
66  interrupt-names:
67    description: Name for the OOB IRQ, this must be set to "host-wake".
68    const: host-wake
69
70  brcm,drive-strength:
71    $ref: /schemas/types.yaml#/definitions/uint32
72    description: Drive strength used for the SDIO pins on the device in mA.
73    minimum: 0
74    maximum: 32
75
76  reset-gpios:
77    maxItems: 1
78    description: A GPIO line connected to the WL_RST line, if present
79      this shall be flagged as active low.
80
81  brcm,ccode-map:
82    $ref: /schemas/types.yaml#/definitions/string-array
83    description: Multiple strings for translating ISO3166 country code to
84      brcmfmac firmware country code and revision.
85    items:
86      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'
87
88  brcm,ccode-map-trivial:
89    description: |
90      Use a trivial mapping of ISO3166 country codes to brcmfmac firmware
91      country code and revision: cc -> { cc, 0 }. In other words, assume that
92      the CLM blob firmware uses ISO3166 country codes as well, and that all
93      revisions are zero. This property is mutually exclusive with
94      brcm,ccode-map. If both properties are specified, then brcm,ccode-map
95      takes precedence.
96    type: boolean
97
98  brcm,cal-blob:
99    $ref: /schemas/types.yaml#/definitions/uint8-array
100    description: A per-device calibration blob for the Wi-Fi radio. This
101      should be filled in by the bootloader from platform configuration
102      data, if necessary, and will be uploaded to the device if present.
103
104  brcm,board-type:
105    $ref: /schemas/types.yaml#/definitions/string
106    description: Overrides the board type, which is normally the compatible of
107      the root node. This can be used to decouple the overall system board or
108      device name from the board type for WiFi purposes, which is used to
109      construct firmware and NVRAM configuration filenames, allowing for
110      multiple devices that share the same module or characteristics for the
111      WiFi subsystem to share the same firmware/NVRAM files. On Apple platforms,
112      this should be the Apple module-instance codename prefixed by "apple,",
113      e.g. "apple,honshu".
114
115  apple,antenna-sku:
116    $ref: /schemas/types.yaml#/definitions/string
117    description: Antenna SKU used to identify a specific antenna configuration
118      on Apple platforms. This is use to build firmware filenames, to allow
119      platforms with different antenna configs to have different firmware and/or
120      NVRAM. This would normally be filled in by the bootloader from platform
121      configuration data.
122
123required:
124  - compatible
125  - reg
126
127unevaluatedProperties: false
128
129examples:
130  - |
131    #include <dt-bindings/interrupt-controller/irq.h>
132    #include <dt-bindings/gpio/gpio.h>
133    mmc@80118000 {
134      compatible = "arm,pl18x", "arm,primecell";
135      reg = <0x80118000 0x1000>;
136      clocks = <&clk 0>, <&clk 1>;
137      clock-names = "mclk", "apb_pclk";
138      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
139      bus-width = <4>;
140      non-removable;
141      vmmc-supply = <&wl_bt_reg>;
142      #address-cells = <1>;
143      #size-cells = <0>;
144
145      wifi@1 {
146        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
147        reg = <1>;
148        interrupt-parent = <&gpio>;
149        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
150        interrupt-names = "host-wake";
151        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
152        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
153      };
154    };
155