xref: /linux/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
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
18156d2a64SRafał MiłeckiallOf:
19156d2a64SRafał Miłecki  - $ref: ieee80211.yaml#
20156d2a64SRafał 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
47086ba26dSMarek Vasut              - infineon,cyw43439-fmac
482601ab54SLinus Walleij          - const: brcm,bcm4329-fmac
49e2e37224SHector Martin      - enum:
50e2e37224SHector Martin          - brcm,bcm4329-fmac
51e2e37224SHector Martin          - pci14e4,43dc  # BCM4355
52e2e37224SHector Martin          - pci14e4,4464  # BCM4364
53e2e37224SHector Martin          - pci14e4,4488  # BCM4377
54e2e37224SHector Martin          - pci14e4,4425  # BCM4378
55e2e37224SHector Martin          - pci14e4,4433  # BCM4387
5697cb465eSJacobe Zang          - pci14e4,449d  # BCM43752
572601ab54SLinus Walleij
582601ab54SLinus Walleij  reg:
59e2e37224SHector Martin    description: SDIO function number for the device (for most cases
60e2e37224SHector Martin      this will be 1) or PCI device identifier.
612601ab54SLinus Walleij
622601ab54SLinus Walleij  interrupts:
632601ab54SLinus Walleij    maxItems: 1
642601ab54SLinus Walleij    description: Out-of-band (OOB) IRQ line for waking up the host
652601ab54SLinus Walleij      in response to WLAN activity. This corresponds to the HOST_WAKE
662601ab54SLinus Walleij      line into the chip.
672601ab54SLinus Walleij
682601ab54SLinus Walleij  interrupt-names:
692601ab54SLinus Walleij    description: Name for the OOB IRQ, this must be set to "host-wake".
702601ab54SLinus Walleij    const: host-wake
712601ab54SLinus Walleij
722601ab54SLinus Walleij  brcm,drive-strength:
732601ab54SLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint32
742601ab54SLinus Walleij    description: Drive strength used for the SDIO pins on the device in mA.
752601ab54SLinus Walleij    minimum: 0
762601ab54SLinus Walleij    maximum: 32
772601ab54SLinus Walleij
782601ab54SLinus Walleij  reset-gpios:
792601ab54SLinus Walleij    maxItems: 1
802601ab54SLinus Walleij    description: A GPIO line connected to the WL_RST line, if present
812601ab54SLinus Walleij      this shall be flagged as active low.
822601ab54SLinus Walleij
83b4193622SShawn Guo  brcm,ccode-map:
84b4193622SShawn Guo    $ref: /schemas/types.yaml#/definitions/string-array
85b4193622SShawn Guo    description: Multiple strings for translating ISO3166 country code to
86b4193622SShawn Guo      brcmfmac firmware country code and revision.
87b4193622SShawn Guo    items:
88b4193622SShawn Guo      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'
89b4193622SShawn Guo
908406993aSAlvin Šipraga  brcm,ccode-map-trivial:
918406993aSAlvin Šipraga    description: |
928406993aSAlvin Šipraga      Use a trivial mapping of ISO3166 country codes to brcmfmac firmware
938406993aSAlvin Šipraga      country code and revision: cc -> { cc, 0 }. In other words, assume that
948406993aSAlvin Šipraga      the CLM blob firmware uses ISO3166 country codes as well, and that all
958406993aSAlvin Šipraga      revisions are zero. This property is mutually exclusive with
968406993aSAlvin Šipraga      brcm,ccode-map. If both properties are specified, then brcm,ccode-map
978406993aSAlvin Šipraga      takes precedence.
988406993aSAlvin Šipraga    type: boolean
998406993aSAlvin Šipraga
100e2e37224SHector Martin  brcm,cal-blob:
101e2e37224SHector Martin    $ref: /schemas/types.yaml#/definitions/uint8-array
102e2e37224SHector Martin    description: A per-device calibration blob for the Wi-Fi radio. This
103e2e37224SHector Martin      should be filled in by the bootloader from platform configuration
104e2e37224SHector Martin      data, if necessary, and will be uploaded to the device if present.
105e2e37224SHector Martin
106e2e37224SHector Martin  brcm,board-type:
107e2e37224SHector Martin    $ref: /schemas/types.yaml#/definitions/string
108e2e37224SHector Martin    description: Overrides the board type, which is normally the compatible of
109e2e37224SHector Martin      the root node. This can be used to decouple the overall system board or
110e2e37224SHector Martin      device name from the board type for WiFi purposes, which is used to
111e2e37224SHector Martin      construct firmware and NVRAM configuration filenames, allowing for
112e2e37224SHector Martin      multiple devices that share the same module or characteristics for the
113e2e37224SHector Martin      WiFi subsystem to share the same firmware/NVRAM files. On Apple platforms,
114e2e37224SHector Martin      this should be the Apple module-instance codename prefixed by "apple,",
115e2e37224SHector Martin      e.g. "apple,honshu".
116e2e37224SHector Martin
117e2e37224SHector Martin  apple,antenna-sku:
118e2e37224SHector Martin    $ref: /schemas/types.yaml#/definitions/string
119e2e37224SHector Martin    description: Antenna SKU used to identify a specific antenna configuration
120e2e37224SHector Martin      on Apple platforms. This is use to build firmware filenames, to allow
121e2e37224SHector Martin      platforms with different antenna configs to have different firmware and/or
122e2e37224SHector Martin      NVRAM. This would normally be filled in by the bootloader from platform
123e2e37224SHector Martin      configuration data.
124e2e37224SHector Martin
125*7ca3fac1SJacobe Zang  clocks:
126*7ca3fac1SJacobe Zang    items:
127*7ca3fac1SJacobe Zang      - description: External Low Power Clock input (32.768KHz)
128*7ca3fac1SJacobe Zang
129*7ca3fac1SJacobe Zang  clock-names:
130*7ca3fac1SJacobe Zang    items:
131*7ca3fac1SJacobe Zang      - const: lpo
132*7ca3fac1SJacobe Zang
1332601ab54SLinus Walleijrequired:
1342601ab54SLinus Walleij  - compatible
1352601ab54SLinus Walleij  - reg
1362601ab54SLinus Walleij
137156d2a64SRafał MiłeckiunevaluatedProperties: false
1382601ab54SLinus Walleij
1392601ab54SLinus Walleijexamples:
1402601ab54SLinus Walleij  - |
1412601ab54SLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
1422601ab54SLinus Walleij    #include <dt-bindings/gpio/gpio.h>
1432601ab54SLinus Walleij    mmc@80118000 {
1442601ab54SLinus Walleij      compatible = "arm,pl18x", "arm,primecell";
1452601ab54SLinus Walleij      reg = <0x80118000 0x1000>;
1462601ab54SLinus Walleij      clocks = <&clk 0>, <&clk 1>;
1472601ab54SLinus Walleij      clock-names = "mclk", "apb_pclk";
1482601ab54SLinus Walleij      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
1492601ab54SLinus Walleij      bus-width = <4>;
1502601ab54SLinus Walleij      non-removable;
1512601ab54SLinus Walleij      vmmc-supply = <&wl_bt_reg>;
1522601ab54SLinus Walleij      #address-cells = <1>;
1532601ab54SLinus Walleij      #size-cells = <0>;
1542601ab54SLinus Walleij
1552601ab54SLinus Walleij      wifi@1 {
1562601ab54SLinus Walleij        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
1572601ab54SLinus Walleij        reg = <1>;
1582601ab54SLinus Walleij        interrupt-parent = <&gpio>;
1592601ab54SLinus Walleij        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
1602601ab54SLinus Walleij        interrupt-names = "host-wake";
1612601ab54SLinus Walleij        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
162b4193622SShawn Guo        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
1632601ab54SLinus Walleij      };
1642601ab54SLinus Walleij    };
165