xref: /linux/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml (revision 55d0969c451159cff86949b38c39171cab962069)
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              - infineon,cyw43439-fmac
48          - const: brcm,bcm4329-fmac
49      - enum:
50          - brcm,bcm4329-fmac
51          - pci14e4,43dc  # BCM4355
52          - pci14e4,4464  # BCM4364
53          - pci14e4,4488  # BCM4377
54          - pci14e4,4425  # BCM4378
55          - pci14e4,4433  # BCM4387
56
57  reg:
58    description: SDIO function number for the device (for most cases
59      this will be 1) or PCI device identifier.
60
61  interrupts:
62    maxItems: 1
63    description: Out-of-band (OOB) IRQ line for waking up the host
64      in response to WLAN activity. This corresponds to the HOST_WAKE
65      line into the chip.
66
67  interrupt-names:
68    description: Name for the OOB IRQ, this must be set to "host-wake".
69    const: host-wake
70
71  brcm,drive-strength:
72    $ref: /schemas/types.yaml#/definitions/uint32
73    description: Drive strength used for the SDIO pins on the device in mA.
74    minimum: 0
75    maximum: 32
76
77  reset-gpios:
78    maxItems: 1
79    description: A GPIO line connected to the WL_RST line, if present
80      this shall be flagged as active low.
81
82  brcm,ccode-map:
83    $ref: /schemas/types.yaml#/definitions/string-array
84    description: Multiple strings for translating ISO3166 country code to
85      brcmfmac firmware country code and revision.
86    items:
87      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'
88
89  brcm,ccode-map-trivial:
90    description: |
91      Use a trivial mapping of ISO3166 country codes to brcmfmac firmware
92      country code and revision: cc -> { cc, 0 }. In other words, assume that
93      the CLM blob firmware uses ISO3166 country codes as well, and that all
94      revisions are zero. This property is mutually exclusive with
95      brcm,ccode-map. If both properties are specified, then brcm,ccode-map
96      takes precedence.
97    type: boolean
98
99  brcm,cal-blob:
100    $ref: /schemas/types.yaml#/definitions/uint8-array
101    description: A per-device calibration blob for the Wi-Fi radio. This
102      should be filled in by the bootloader from platform configuration
103      data, if necessary, and will be uploaded to the device if present.
104
105  brcm,board-type:
106    $ref: /schemas/types.yaml#/definitions/string
107    description: Overrides the board type, which is normally the compatible of
108      the root node. This can be used to decouple the overall system board or
109      device name from the board type for WiFi purposes, which is used to
110      construct firmware and NVRAM configuration filenames, allowing for
111      multiple devices that share the same module or characteristics for the
112      WiFi subsystem to share the same firmware/NVRAM files. On Apple platforms,
113      this should be the Apple module-instance codename prefixed by "apple,",
114      e.g. "apple,honshu".
115
116  apple,antenna-sku:
117    $ref: /schemas/types.yaml#/definitions/string
118    description: Antenna SKU used to identify a specific antenna configuration
119      on Apple platforms. This is use to build firmware filenames, to allow
120      platforms with different antenna configs to have different firmware and/or
121      NVRAM. This would normally be filled in by the bootloader from platform
122      configuration data.
123
124required:
125  - compatible
126  - reg
127
128unevaluatedProperties: false
129
130examples:
131  - |
132    #include <dt-bindings/interrupt-controller/irq.h>
133    #include <dt-bindings/gpio/gpio.h>
134    mmc@80118000 {
135      compatible = "arm,pl18x", "arm,primecell";
136      reg = <0x80118000 0x1000>;
137      clocks = <&clk 0>, <&clk 1>;
138      clock-names = "mclk", "apb_pclk";
139      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
140      bus-width = <4>;
141      non-removable;
142      vmmc-supply = <&wl_bt_reg>;
143      #address-cells = <1>;
144      #size-cells = <0>;
145
146      wifi@1 {
147        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
148        reg = <1>;
149        interrupt-parent = <&gpio>;
150        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
151        interrupt-names = "host-wake";
152        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
153        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
154      };
155    };
156