xref: /openbmc/linux/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
12601ab54SLinus Walleij# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
22601ab54SLinus Walleij%YAML 1.2
32601ab54SLinus Walleij---
42601ab54SLinus Walleij$id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml#
52601ab54SLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml#
62601ab54SLinus Walleij
7e2e37224SHector Martintitle: Broadcom BCM4329 family fullmac wireless SDIO/PCIE devices
82601ab54SLinus Walleij
92601ab54SLinus Walleijmaintainers:
102601ab54SLinus Walleij  - Arend van Spriel <arend@broadcom.com>
112601ab54SLinus Walleij
122601ab54SLinus Walleijdescription:
132601ab54SLinus Walleij  The Broadcom Single chip MAC part for the BCM4329 family and
142601ab54SLinus Walleij  later Cypress chips in the same family named CYW4373 and similar.
152601ab54SLinus Walleij  These chips also have a Bluetooth portion described in a separate
162601ab54SLinus Walleij  binding.
172601ab54SLinus Walleij
18*156d2a64SRafał MiłeckiallOf:
19*156d2a64SRafał Miłecki  - $ref: ieee80211.yaml#
20*156d2a64SRafał Miłecki
212601ab54SLinus Walleijproperties:
222601ab54SLinus Walleij  compatible:
232601ab54SLinus Walleij    oneOf:
242601ab54SLinus Walleij      - items:
252601ab54SLinus Walleij          - enum:
262601ab54SLinus Walleij              - brcm,bcm43143-fmac
272601ab54SLinus Walleij              - brcm,bcm4341b0-fmac
282601ab54SLinus Walleij              - brcm,bcm4341b4-fmac
292601ab54SLinus Walleij              - brcm,bcm4341b5-fmac
302601ab54SLinus Walleij              - brcm,bcm4329-fmac
312601ab54SLinus Walleij              - brcm,bcm4330-fmac
322601ab54SLinus Walleij              - brcm,bcm4334-fmac
332601ab54SLinus Walleij              - brcm,bcm43340-fmac
342601ab54SLinus Walleij              - brcm,bcm4335-fmac
352601ab54SLinus Walleij              - brcm,bcm43362-fmac
362601ab54SLinus Walleij              - brcm,bcm4339-fmac
372601ab54SLinus Walleij              - brcm,bcm43430a0-fmac
382601ab54SLinus Walleij              - brcm,bcm43430a1-fmac
392601ab54SLinus Walleij              - brcm,bcm43455-fmac
402601ab54SLinus Walleij              - brcm,bcm43456-fmac
412601ab54SLinus Walleij              - brcm,bcm4354-fmac
422601ab54SLinus Walleij              - brcm,bcm4356-fmac
432601ab54SLinus Walleij              - brcm,bcm4359-fmac
443efb0f17SRafał Miłecki              - brcm,bcm4366-fmac
452601ab54SLinus Walleij              - cypress,cyw4373-fmac
462601ab54SLinus Walleij              - cypress,cyw43012-fmac
472601ab54SLinus Walleij          - const: brcm,bcm4329-fmac
48e2e37224SHector Martin      - enum:
49e2e37224SHector Martin          - brcm,bcm4329-fmac
50e2e37224SHector Martin          - pci14e4,43dc  # BCM4355
51e2e37224SHector Martin          - pci14e4,4464  # BCM4364
52e2e37224SHector Martin          - pci14e4,4488  # BCM4377
53e2e37224SHector Martin          - pci14e4,4425  # BCM4378
54e2e37224SHector Martin          - pci14e4,4433  # BCM4387
552601ab54SLinus Walleij
562601ab54SLinus Walleij  reg:
57e2e37224SHector Martin    description: SDIO function number for the device (for most cases
58e2e37224SHector Martin      this will be 1) or PCI device identifier.
592601ab54SLinus Walleij
602601ab54SLinus Walleij  interrupts:
612601ab54SLinus Walleij    maxItems: 1
622601ab54SLinus Walleij    description: Out-of-band (OOB) IRQ line for waking up the host
632601ab54SLinus Walleij      in response to WLAN activity. This corresponds to the HOST_WAKE
642601ab54SLinus Walleij      line into the chip.
652601ab54SLinus Walleij
662601ab54SLinus Walleij  interrupt-names:
672601ab54SLinus Walleij    description: Name for the OOB IRQ, this must be set to "host-wake".
682601ab54SLinus Walleij    const: host-wake
692601ab54SLinus Walleij
702601ab54SLinus Walleij  brcm,drive-strength:
712601ab54SLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint32
722601ab54SLinus Walleij    description: Drive strength used for the SDIO pins on the device in mA.
732601ab54SLinus Walleij    minimum: 0
742601ab54SLinus Walleij    maximum: 32
752601ab54SLinus Walleij
762601ab54SLinus Walleij  reset-gpios:
772601ab54SLinus Walleij    maxItems: 1
782601ab54SLinus Walleij    description: A GPIO line connected to the WL_RST line, if present
792601ab54SLinus Walleij      this shall be flagged as active low.
802601ab54SLinus Walleij
81b4193622SShawn Guo  brcm,ccode-map:
82b4193622SShawn Guo    $ref: /schemas/types.yaml#/definitions/string-array
83b4193622SShawn Guo    description: Multiple strings for translating ISO3166 country code to
84b4193622SShawn Guo      brcmfmac firmware country code and revision.
85b4193622SShawn Guo    items:
86b4193622SShawn Guo      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'
87b4193622SShawn Guo
888406993aSAlvin Šipraga  brcm,ccode-map-trivial:
898406993aSAlvin Šipraga    description: |
908406993aSAlvin Šipraga      Use a trivial mapping of ISO3166 country codes to brcmfmac firmware
918406993aSAlvin Šipraga      country code and revision: cc -> { cc, 0 }. In other words, assume that
928406993aSAlvin Šipraga      the CLM blob firmware uses ISO3166 country codes as well, and that all
938406993aSAlvin Šipraga      revisions are zero. This property is mutually exclusive with
948406993aSAlvin Šipraga      brcm,ccode-map. If both properties are specified, then brcm,ccode-map
958406993aSAlvin Šipraga      takes precedence.
968406993aSAlvin Šipraga    type: boolean
978406993aSAlvin Šipraga
98e2e37224SHector Martin  brcm,cal-blob:
99e2e37224SHector Martin    $ref: /schemas/types.yaml#/definitions/uint8-array
100e2e37224SHector Martin    description: A per-device calibration blob for the Wi-Fi radio. This
101e2e37224SHector Martin      should be filled in by the bootloader from platform configuration
102e2e37224SHector Martin      data, if necessary, and will be uploaded to the device if present.
103e2e37224SHector Martin
104e2e37224SHector Martin  brcm,board-type:
105e2e37224SHector Martin    $ref: /schemas/types.yaml#/definitions/string
106e2e37224SHector Martin    description: Overrides the board type, which is normally the compatible of
107e2e37224SHector Martin      the root node. This can be used to decouple the overall system board or
108e2e37224SHector Martin      device name from the board type for WiFi purposes, which is used to
109e2e37224SHector Martin      construct firmware and NVRAM configuration filenames, allowing for
110e2e37224SHector Martin      multiple devices that share the same module or characteristics for the
111e2e37224SHector Martin      WiFi subsystem to share the same firmware/NVRAM files. On Apple platforms,
112e2e37224SHector Martin      this should be the Apple module-instance codename prefixed by "apple,",
113e2e37224SHector Martin      e.g. "apple,honshu".
114e2e37224SHector Martin
115e2e37224SHector Martin  apple,antenna-sku:
116e2e37224SHector Martin    $ref: /schemas/types.yaml#/definitions/string
117e2e37224SHector Martin    description: Antenna SKU used to identify a specific antenna configuration
118e2e37224SHector Martin      on Apple platforms. This is use to build firmware filenames, to allow
119e2e37224SHector Martin      platforms with different antenna configs to have different firmware and/or
120e2e37224SHector Martin      NVRAM. This would normally be filled in by the bootloader from platform
121e2e37224SHector Martin      configuration data.
122e2e37224SHector Martin
1232601ab54SLinus Walleijrequired:
1242601ab54SLinus Walleij  - compatible
1252601ab54SLinus Walleij  - reg
1262601ab54SLinus Walleij
127*156d2a64SRafał MiłeckiunevaluatedProperties: false
1282601ab54SLinus Walleij
1292601ab54SLinus Walleijexamples:
1302601ab54SLinus Walleij  - |
1312601ab54SLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
1322601ab54SLinus Walleij    #include <dt-bindings/gpio/gpio.h>
1332601ab54SLinus Walleij    mmc@80118000 {
1342601ab54SLinus Walleij      compatible = "arm,pl18x", "arm,primecell";
1352601ab54SLinus Walleij      reg = <0x80118000 0x1000>;
1362601ab54SLinus Walleij      clocks = <&clk 0>, <&clk 1>;
1372601ab54SLinus Walleij      clock-names = "mclk", "apb_pclk";
1382601ab54SLinus Walleij      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
1392601ab54SLinus Walleij      bus-width = <4>;
1402601ab54SLinus Walleij      non-removable;
1412601ab54SLinus Walleij      vmmc-supply = <&wl_bt_reg>;
1422601ab54SLinus Walleij      #address-cells = <1>;
1432601ab54SLinus Walleij      #size-cells = <0>;
1442601ab54SLinus Walleij
1452601ab54SLinus Walleij      wifi@1 {
1462601ab54SLinus Walleij        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
1472601ab54SLinus Walleij        reg = <1>;
1482601ab54SLinus Walleij        interrupt-parent = <&gpio>;
1492601ab54SLinus Walleij        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
1502601ab54SLinus Walleij        interrupt-names = "host-wake";
1512601ab54SLinus Walleij        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
152b4193622SShawn Guo        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
1532601ab54SLinus Walleij      };
1542601ab54SLinus Walleij    };
155