xref: /freebsd/sys/contrib/device-tree/Bindings/net/wireless/brcm,bcm4329-fmac.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
22eb4d8dcSEmmanuel Vadot%YAML 1.2
32eb4d8dcSEmmanuel Vadot---
42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml#
52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
62eb4d8dcSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: Broadcom BCM4329 family fullmac wireless SDIO/PCIE devices
82eb4d8dcSEmmanuel Vadot
92eb4d8dcSEmmanuel Vadotmaintainers:
102eb4d8dcSEmmanuel Vadot  - Arend van Spriel <arend@broadcom.com>
112eb4d8dcSEmmanuel Vadot
122eb4d8dcSEmmanuel Vadotdescription:
132eb4d8dcSEmmanuel Vadot  The Broadcom Single chip MAC part for the BCM4329 family and
142eb4d8dcSEmmanuel Vadot  later Cypress chips in the same family named CYW4373 and similar.
152eb4d8dcSEmmanuel Vadot  These chips also have a Bluetooth portion described in a separate
162eb4d8dcSEmmanuel Vadot  binding.
172eb4d8dcSEmmanuel Vadot
18f126890aSEmmanuel VadotallOf:
19f126890aSEmmanuel Vadot  - $ref: ieee80211.yaml#
20f126890aSEmmanuel Vadot
212eb4d8dcSEmmanuel Vadotproperties:
222eb4d8dcSEmmanuel Vadot  compatible:
232eb4d8dcSEmmanuel Vadot    oneOf:
242eb4d8dcSEmmanuel Vadot      - items:
252eb4d8dcSEmmanuel Vadot          - enum:
262eb4d8dcSEmmanuel Vadot              - brcm,bcm43143-fmac
272eb4d8dcSEmmanuel Vadot              - brcm,bcm4341b0-fmac
282eb4d8dcSEmmanuel Vadot              - brcm,bcm4341b4-fmac
292eb4d8dcSEmmanuel Vadot              - brcm,bcm4341b5-fmac
302eb4d8dcSEmmanuel Vadot              - brcm,bcm4329-fmac
312eb4d8dcSEmmanuel Vadot              - brcm,bcm4330-fmac
322eb4d8dcSEmmanuel Vadot              - brcm,bcm4334-fmac
332eb4d8dcSEmmanuel Vadot              - brcm,bcm43340-fmac
342eb4d8dcSEmmanuel Vadot              - brcm,bcm4335-fmac
352eb4d8dcSEmmanuel Vadot              - brcm,bcm43362-fmac
362eb4d8dcSEmmanuel Vadot              - brcm,bcm4339-fmac
372eb4d8dcSEmmanuel Vadot              - brcm,bcm43430a0-fmac
382eb4d8dcSEmmanuel Vadot              - brcm,bcm43430a1-fmac
392eb4d8dcSEmmanuel Vadot              - brcm,bcm43455-fmac
402eb4d8dcSEmmanuel Vadot              - brcm,bcm43456-fmac
412eb4d8dcSEmmanuel Vadot              - brcm,bcm4354-fmac
422eb4d8dcSEmmanuel Vadot              - brcm,bcm4356-fmac
432eb4d8dcSEmmanuel Vadot              - brcm,bcm4359-fmac
44f126890aSEmmanuel Vadot              - brcm,bcm4366-fmac
452eb4d8dcSEmmanuel Vadot              - cypress,cyw4373-fmac
462eb4d8dcSEmmanuel Vadot              - cypress,cyw43012-fmac
47*7d0873ebSEmmanuel Vadot              - infineon,cyw43439-fmac
482eb4d8dcSEmmanuel Vadot          - const: brcm,bcm4329-fmac
497ef62cebSEmmanuel Vadot      - enum:
507ef62cebSEmmanuel Vadot          - brcm,bcm4329-fmac
517ef62cebSEmmanuel Vadot          - pci14e4,43dc  # BCM4355
527ef62cebSEmmanuel Vadot          - pci14e4,4464  # BCM4364
537ef62cebSEmmanuel Vadot          - pci14e4,4488  # BCM4377
547ef62cebSEmmanuel Vadot          - pci14e4,4425  # BCM4378
557ef62cebSEmmanuel Vadot          - pci14e4,4433  # BCM4387
562eb4d8dcSEmmanuel Vadot
572eb4d8dcSEmmanuel Vadot  reg:
587ef62cebSEmmanuel Vadot    description: SDIO function number for the device (for most cases
597ef62cebSEmmanuel Vadot      this will be 1) or PCI device identifier.
602eb4d8dcSEmmanuel Vadot
612eb4d8dcSEmmanuel Vadot  interrupts:
622eb4d8dcSEmmanuel Vadot    maxItems: 1
632eb4d8dcSEmmanuel Vadot    description: Out-of-band (OOB) IRQ line for waking up the host
642eb4d8dcSEmmanuel Vadot      in response to WLAN activity. This corresponds to the HOST_WAKE
652eb4d8dcSEmmanuel Vadot      line into the chip.
662eb4d8dcSEmmanuel Vadot
672eb4d8dcSEmmanuel Vadot  interrupt-names:
682eb4d8dcSEmmanuel Vadot    description: Name for the OOB IRQ, this must be set to "host-wake".
692eb4d8dcSEmmanuel Vadot    const: host-wake
702eb4d8dcSEmmanuel Vadot
712eb4d8dcSEmmanuel Vadot  brcm,drive-strength:
722eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
732eb4d8dcSEmmanuel Vadot    description: Drive strength used for the SDIO pins on the device in mA.
742eb4d8dcSEmmanuel Vadot    minimum: 0
752eb4d8dcSEmmanuel Vadot    maximum: 32
762eb4d8dcSEmmanuel Vadot
772eb4d8dcSEmmanuel Vadot  reset-gpios:
782eb4d8dcSEmmanuel Vadot    maxItems: 1
792eb4d8dcSEmmanuel Vadot    description: A GPIO line connected to the WL_RST line, if present
802eb4d8dcSEmmanuel Vadot      this shall be flagged as active low.
812eb4d8dcSEmmanuel Vadot
822eb4d8dcSEmmanuel Vadot  brcm,ccode-map:
832eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string-array
842eb4d8dcSEmmanuel Vadot    description: Multiple strings for translating ISO3166 country code to
852eb4d8dcSEmmanuel Vadot      brcmfmac firmware country code and revision.
862eb4d8dcSEmmanuel Vadot    items:
872eb4d8dcSEmmanuel Vadot      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'
882eb4d8dcSEmmanuel Vadot
89b97ee269SEmmanuel Vadot  brcm,ccode-map-trivial:
90b97ee269SEmmanuel Vadot    description: |
91b97ee269SEmmanuel Vadot      Use a trivial mapping of ISO3166 country codes to brcmfmac firmware
92b97ee269SEmmanuel Vadot      country code and revision: cc -> { cc, 0 }. In other words, assume that
93b97ee269SEmmanuel Vadot      the CLM blob firmware uses ISO3166 country codes as well, and that all
94b97ee269SEmmanuel Vadot      revisions are zero. This property is mutually exclusive with
95b97ee269SEmmanuel Vadot      brcm,ccode-map. If both properties are specified, then brcm,ccode-map
96b97ee269SEmmanuel Vadot      takes precedence.
97b97ee269SEmmanuel Vadot    type: boolean
98b97ee269SEmmanuel Vadot
997ef62cebSEmmanuel Vadot  brcm,cal-blob:
1007ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
1017ef62cebSEmmanuel Vadot    description: A per-device calibration blob for the Wi-Fi radio. This
1027ef62cebSEmmanuel Vadot      should be filled in by the bootloader from platform configuration
1037ef62cebSEmmanuel Vadot      data, if necessary, and will be uploaded to the device if present.
1047ef62cebSEmmanuel Vadot
1057ef62cebSEmmanuel Vadot  brcm,board-type:
1067ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
1077ef62cebSEmmanuel Vadot    description: Overrides the board type, which is normally the compatible of
1087ef62cebSEmmanuel Vadot      the root node. This can be used to decouple the overall system board or
1097ef62cebSEmmanuel Vadot      device name from the board type for WiFi purposes, which is used to
1107ef62cebSEmmanuel Vadot      construct firmware and NVRAM configuration filenames, allowing for
1117ef62cebSEmmanuel Vadot      multiple devices that share the same module or characteristics for the
1127ef62cebSEmmanuel Vadot      WiFi subsystem to share the same firmware/NVRAM files. On Apple platforms,
1137ef62cebSEmmanuel Vadot      this should be the Apple module-instance codename prefixed by "apple,",
1147ef62cebSEmmanuel Vadot      e.g. "apple,honshu".
1157ef62cebSEmmanuel Vadot
1167ef62cebSEmmanuel Vadot  apple,antenna-sku:
1177ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
1187ef62cebSEmmanuel Vadot    description: Antenna SKU used to identify a specific antenna configuration
1197ef62cebSEmmanuel Vadot      on Apple platforms. This is use to build firmware filenames, to allow
1207ef62cebSEmmanuel Vadot      platforms with different antenna configs to have different firmware and/or
1217ef62cebSEmmanuel Vadot      NVRAM. This would normally be filled in by the bootloader from platform
1227ef62cebSEmmanuel Vadot      configuration data.
1237ef62cebSEmmanuel Vadot
1242eb4d8dcSEmmanuel Vadotrequired:
1252eb4d8dcSEmmanuel Vadot  - compatible
1262eb4d8dcSEmmanuel Vadot  - reg
1272eb4d8dcSEmmanuel Vadot
128f126890aSEmmanuel VadotunevaluatedProperties: false
1292eb4d8dcSEmmanuel Vadot
1302eb4d8dcSEmmanuel Vadotexamples:
1312eb4d8dcSEmmanuel Vadot  - |
1322eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1332eb4d8dcSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
1342eb4d8dcSEmmanuel Vadot    mmc@80118000 {
1352eb4d8dcSEmmanuel Vadot      compatible = "arm,pl18x", "arm,primecell";
1362eb4d8dcSEmmanuel Vadot      reg = <0x80118000 0x1000>;
1372eb4d8dcSEmmanuel Vadot      clocks = <&clk 0>, <&clk 1>;
1382eb4d8dcSEmmanuel Vadot      clock-names = "mclk", "apb_pclk";
1392eb4d8dcSEmmanuel Vadot      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
1402eb4d8dcSEmmanuel Vadot      bus-width = <4>;
1412eb4d8dcSEmmanuel Vadot      non-removable;
1422eb4d8dcSEmmanuel Vadot      vmmc-supply = <&wl_bt_reg>;
1432eb4d8dcSEmmanuel Vadot      #address-cells = <1>;
1442eb4d8dcSEmmanuel Vadot      #size-cells = <0>;
1452eb4d8dcSEmmanuel Vadot
1462eb4d8dcSEmmanuel Vadot      wifi@1 {
1472eb4d8dcSEmmanuel Vadot        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
1482eb4d8dcSEmmanuel Vadot        reg = <1>;
1492eb4d8dcSEmmanuel Vadot        interrupt-parent = <&gpio>;
1502eb4d8dcSEmmanuel Vadot        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
1512eb4d8dcSEmmanuel Vadot        interrupt-names = "host-wake";
1522eb4d8dcSEmmanuel Vadot        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
1532eb4d8dcSEmmanuel Vadot        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
1542eb4d8dcSEmmanuel Vadot      };
1552eb4d8dcSEmmanuel Vadot    };
156