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