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