Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / net / wireless / brcm,bcm4329-fmac.yaml
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
7 title: Broadcom BCM4329 family fullmac wireless SDIO/PCIE devices
8
9 maintainers:
10   - Arend van Spriel <arend@broadcom.com>
11
12 description:
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
18 allOf:
19   - $ref: ieee80211.yaml#
20
21 properties:
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
123 required:
124   - compatible
125   - reg
126
127 unevaluatedProperties: false
128
129 examples:
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     };