xref: /freebsd/sys/contrib/device-tree/Bindings/net/wireless/brcm,bcm4329-fmac.yaml (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
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
18*f126890aSEmmanuel VadotallOf:
19*f126890aSEmmanuel Vadot  - $ref: ieee80211.yaml#
20*f126890aSEmmanuel 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
44*f126890aSEmmanuel Vadot              - brcm,bcm4366-fmac
452eb4d8dcSEmmanuel Vadot              - cypress,cyw4373-fmac
462eb4d8dcSEmmanuel Vadot              - cypress,cyw43012-fmac
472eb4d8dcSEmmanuel Vadot          - const: brcm,bcm4329-fmac
487ef62cebSEmmanuel Vadot      - enum:
497ef62cebSEmmanuel Vadot          - brcm,bcm4329-fmac
507ef62cebSEmmanuel Vadot          - pci14e4,43dc  # BCM4355
517ef62cebSEmmanuel Vadot          - pci14e4,4464  # BCM4364
527ef62cebSEmmanuel Vadot          - pci14e4,4488  # BCM4377
537ef62cebSEmmanuel Vadot          - pci14e4,4425  # BCM4378
547ef62cebSEmmanuel Vadot          - pci14e4,4433  # BCM4387
552eb4d8dcSEmmanuel Vadot
562eb4d8dcSEmmanuel Vadot  reg:
577ef62cebSEmmanuel Vadot    description: SDIO function number for the device (for most cases
587ef62cebSEmmanuel Vadot      this will be 1) or PCI device identifier.
592eb4d8dcSEmmanuel Vadot
602eb4d8dcSEmmanuel Vadot  interrupts:
612eb4d8dcSEmmanuel Vadot    maxItems: 1
622eb4d8dcSEmmanuel Vadot    description: Out-of-band (OOB) IRQ line for waking up the host
632eb4d8dcSEmmanuel Vadot      in response to WLAN activity. This corresponds to the HOST_WAKE
642eb4d8dcSEmmanuel Vadot      line into the chip.
652eb4d8dcSEmmanuel Vadot
662eb4d8dcSEmmanuel Vadot  interrupt-names:
672eb4d8dcSEmmanuel Vadot    description: Name for the OOB IRQ, this must be set to "host-wake".
682eb4d8dcSEmmanuel Vadot    const: host-wake
692eb4d8dcSEmmanuel Vadot
702eb4d8dcSEmmanuel Vadot  brcm,drive-strength:
712eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
722eb4d8dcSEmmanuel Vadot    description: Drive strength used for the SDIO pins on the device in mA.
732eb4d8dcSEmmanuel Vadot    minimum: 0
742eb4d8dcSEmmanuel Vadot    maximum: 32
752eb4d8dcSEmmanuel Vadot
762eb4d8dcSEmmanuel Vadot  reset-gpios:
772eb4d8dcSEmmanuel Vadot    maxItems: 1
782eb4d8dcSEmmanuel Vadot    description: A GPIO line connected to the WL_RST line, if present
792eb4d8dcSEmmanuel Vadot      this shall be flagged as active low.
802eb4d8dcSEmmanuel Vadot
812eb4d8dcSEmmanuel Vadot  brcm,ccode-map:
822eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string-array
832eb4d8dcSEmmanuel Vadot    description: Multiple strings for translating ISO3166 country code to
842eb4d8dcSEmmanuel Vadot      brcmfmac firmware country code and revision.
852eb4d8dcSEmmanuel Vadot    items:
862eb4d8dcSEmmanuel Vadot      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'
872eb4d8dcSEmmanuel Vadot
88b97ee269SEmmanuel Vadot  brcm,ccode-map-trivial:
89b97ee269SEmmanuel Vadot    description: |
90b97ee269SEmmanuel Vadot      Use a trivial mapping of ISO3166 country codes to brcmfmac firmware
91b97ee269SEmmanuel Vadot      country code and revision: cc -> { cc, 0 }. In other words, assume that
92b97ee269SEmmanuel Vadot      the CLM blob firmware uses ISO3166 country codes as well, and that all
93b97ee269SEmmanuel Vadot      revisions are zero. This property is mutually exclusive with
94b97ee269SEmmanuel Vadot      brcm,ccode-map. If both properties are specified, then brcm,ccode-map
95b97ee269SEmmanuel Vadot      takes precedence.
96b97ee269SEmmanuel Vadot    type: boolean
97b97ee269SEmmanuel Vadot
987ef62cebSEmmanuel Vadot  brcm,cal-blob:
997ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
1007ef62cebSEmmanuel Vadot    description: A per-device calibration blob for the Wi-Fi radio. This
1017ef62cebSEmmanuel Vadot      should be filled in by the bootloader from platform configuration
1027ef62cebSEmmanuel Vadot      data, if necessary, and will be uploaded to the device if present.
1037ef62cebSEmmanuel Vadot
1047ef62cebSEmmanuel Vadot  brcm,board-type:
1057ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
1067ef62cebSEmmanuel Vadot    description: Overrides the board type, which is normally the compatible of
1077ef62cebSEmmanuel Vadot      the root node. This can be used to decouple the overall system board or
1087ef62cebSEmmanuel Vadot      device name from the board type for WiFi purposes, which is used to
1097ef62cebSEmmanuel Vadot      construct firmware and NVRAM configuration filenames, allowing for
1107ef62cebSEmmanuel Vadot      multiple devices that share the same module or characteristics for the
1117ef62cebSEmmanuel Vadot      WiFi subsystem to share the same firmware/NVRAM files. On Apple platforms,
1127ef62cebSEmmanuel Vadot      this should be the Apple module-instance codename prefixed by "apple,",
1137ef62cebSEmmanuel Vadot      e.g. "apple,honshu".
1147ef62cebSEmmanuel Vadot
1157ef62cebSEmmanuel Vadot  apple,antenna-sku:
1167ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
1177ef62cebSEmmanuel Vadot    description: Antenna SKU used to identify a specific antenna configuration
1187ef62cebSEmmanuel Vadot      on Apple platforms. This is use to build firmware filenames, to allow
1197ef62cebSEmmanuel Vadot      platforms with different antenna configs to have different firmware and/or
1207ef62cebSEmmanuel Vadot      NVRAM. This would normally be filled in by the bootloader from platform
1217ef62cebSEmmanuel Vadot      configuration data.
1227ef62cebSEmmanuel Vadot
1232eb4d8dcSEmmanuel Vadotrequired:
1242eb4d8dcSEmmanuel Vadot  - compatible
1252eb4d8dcSEmmanuel Vadot  - reg
1262eb4d8dcSEmmanuel Vadot
127*f126890aSEmmanuel VadotunevaluatedProperties: false
1282eb4d8dcSEmmanuel Vadot
1292eb4d8dcSEmmanuel Vadotexamples:
1302eb4d8dcSEmmanuel Vadot  - |
1312eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1322eb4d8dcSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
1332eb4d8dcSEmmanuel Vadot    mmc@80118000 {
1342eb4d8dcSEmmanuel Vadot      compatible = "arm,pl18x", "arm,primecell";
1352eb4d8dcSEmmanuel Vadot      reg = <0x80118000 0x1000>;
1362eb4d8dcSEmmanuel Vadot      clocks = <&clk 0>, <&clk 1>;
1372eb4d8dcSEmmanuel Vadot      clock-names = "mclk", "apb_pclk";
1382eb4d8dcSEmmanuel Vadot      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
1392eb4d8dcSEmmanuel Vadot      bus-width = <4>;
1402eb4d8dcSEmmanuel Vadot      non-removable;
1412eb4d8dcSEmmanuel Vadot      vmmc-supply = <&wl_bt_reg>;
1422eb4d8dcSEmmanuel Vadot      #address-cells = <1>;
1432eb4d8dcSEmmanuel Vadot      #size-cells = <0>;
1442eb4d8dcSEmmanuel Vadot
1452eb4d8dcSEmmanuel Vadot      wifi@1 {
1462eb4d8dcSEmmanuel Vadot        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
1472eb4d8dcSEmmanuel Vadot        reg = <1>;
1482eb4d8dcSEmmanuel Vadot        interrupt-parent = <&gpio>;
1492eb4d8dcSEmmanuel Vadot        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
1502eb4d8dcSEmmanuel Vadot        interrupt-names = "host-wake";
1512eb4d8dcSEmmanuel Vadot        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
1522eb4d8dcSEmmanuel Vadot        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
1532eb4d8dcSEmmanuel Vadot      };
1542eb4d8dcSEmmanuel Vadot    };
155