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