xref: /freebsd/sys/contrib/device-tree/Bindings/net/wireless/brcm,bcm4329-fmac.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
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
7*7ef62cebSEmmanuel 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
182eb4d8dcSEmmanuel Vadotproperties:
192eb4d8dcSEmmanuel Vadot  compatible:
202eb4d8dcSEmmanuel Vadot    oneOf:
212eb4d8dcSEmmanuel Vadot      - items:
222eb4d8dcSEmmanuel Vadot          - enum:
232eb4d8dcSEmmanuel Vadot              - brcm,bcm43143-fmac
242eb4d8dcSEmmanuel Vadot              - brcm,bcm4341b0-fmac
252eb4d8dcSEmmanuel Vadot              - brcm,bcm4341b4-fmac
262eb4d8dcSEmmanuel Vadot              - brcm,bcm4341b5-fmac
272eb4d8dcSEmmanuel Vadot              - brcm,bcm4329-fmac
282eb4d8dcSEmmanuel Vadot              - brcm,bcm4330-fmac
292eb4d8dcSEmmanuel Vadot              - brcm,bcm4334-fmac
302eb4d8dcSEmmanuel Vadot              - brcm,bcm43340-fmac
312eb4d8dcSEmmanuel Vadot              - brcm,bcm4335-fmac
322eb4d8dcSEmmanuel Vadot              - brcm,bcm43362-fmac
332eb4d8dcSEmmanuel Vadot              - brcm,bcm4339-fmac
342eb4d8dcSEmmanuel Vadot              - brcm,bcm43430a0-fmac
352eb4d8dcSEmmanuel Vadot              - brcm,bcm43430a1-fmac
362eb4d8dcSEmmanuel Vadot              - brcm,bcm43455-fmac
372eb4d8dcSEmmanuel Vadot              - brcm,bcm43456-fmac
382eb4d8dcSEmmanuel Vadot              - brcm,bcm4354-fmac
392eb4d8dcSEmmanuel Vadot              - brcm,bcm4356-fmac
402eb4d8dcSEmmanuel Vadot              - brcm,bcm4359-fmac
412eb4d8dcSEmmanuel Vadot              - cypress,cyw4373-fmac
422eb4d8dcSEmmanuel Vadot              - cypress,cyw43012-fmac
432eb4d8dcSEmmanuel Vadot          - const: brcm,bcm4329-fmac
44*7ef62cebSEmmanuel Vadot      - enum:
45*7ef62cebSEmmanuel Vadot          - brcm,bcm4329-fmac
46*7ef62cebSEmmanuel Vadot          - pci14e4,43dc  # BCM4355
47*7ef62cebSEmmanuel Vadot          - pci14e4,4464  # BCM4364
48*7ef62cebSEmmanuel Vadot          - pci14e4,4488  # BCM4377
49*7ef62cebSEmmanuel Vadot          - pci14e4,4425  # BCM4378
50*7ef62cebSEmmanuel Vadot          - pci14e4,4433  # BCM4387
512eb4d8dcSEmmanuel Vadot
522eb4d8dcSEmmanuel Vadot  reg:
53*7ef62cebSEmmanuel Vadot    description: SDIO function number for the device (for most cases
54*7ef62cebSEmmanuel Vadot      this will be 1) or PCI device identifier.
552eb4d8dcSEmmanuel Vadot
562eb4d8dcSEmmanuel Vadot  interrupts:
572eb4d8dcSEmmanuel Vadot    maxItems: 1
582eb4d8dcSEmmanuel Vadot    description: Out-of-band (OOB) IRQ line for waking up the host
592eb4d8dcSEmmanuel Vadot      in response to WLAN activity. This corresponds to the HOST_WAKE
602eb4d8dcSEmmanuel Vadot      line into the chip.
612eb4d8dcSEmmanuel Vadot
622eb4d8dcSEmmanuel Vadot  interrupt-names:
632eb4d8dcSEmmanuel Vadot    description: Name for the OOB IRQ, this must be set to "host-wake".
642eb4d8dcSEmmanuel Vadot    const: host-wake
652eb4d8dcSEmmanuel Vadot
662eb4d8dcSEmmanuel Vadot  brcm,drive-strength:
672eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
682eb4d8dcSEmmanuel Vadot    description: Drive strength used for the SDIO pins on the device in mA.
692eb4d8dcSEmmanuel Vadot    minimum: 0
702eb4d8dcSEmmanuel Vadot    maximum: 32
712eb4d8dcSEmmanuel Vadot
722eb4d8dcSEmmanuel Vadot  reset-gpios:
732eb4d8dcSEmmanuel Vadot    maxItems: 1
742eb4d8dcSEmmanuel Vadot    description: A GPIO line connected to the WL_RST line, if present
752eb4d8dcSEmmanuel Vadot      this shall be flagged as active low.
762eb4d8dcSEmmanuel Vadot
772eb4d8dcSEmmanuel Vadot  brcm,ccode-map:
782eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string-array
792eb4d8dcSEmmanuel Vadot    description: Multiple strings for translating ISO3166 country code to
802eb4d8dcSEmmanuel Vadot      brcmfmac firmware country code and revision.
812eb4d8dcSEmmanuel Vadot    items:
822eb4d8dcSEmmanuel Vadot      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'
832eb4d8dcSEmmanuel Vadot
84b97ee269SEmmanuel Vadot  brcm,ccode-map-trivial:
85b97ee269SEmmanuel Vadot    description: |
86b97ee269SEmmanuel Vadot      Use a trivial mapping of ISO3166 country codes to brcmfmac firmware
87b97ee269SEmmanuel Vadot      country code and revision: cc -> { cc, 0 }. In other words, assume that
88b97ee269SEmmanuel Vadot      the CLM blob firmware uses ISO3166 country codes as well, and that all
89b97ee269SEmmanuel Vadot      revisions are zero. This property is mutually exclusive with
90b97ee269SEmmanuel Vadot      brcm,ccode-map. If both properties are specified, then brcm,ccode-map
91b97ee269SEmmanuel Vadot      takes precedence.
92b97ee269SEmmanuel Vadot    type: boolean
93b97ee269SEmmanuel Vadot
94*7ef62cebSEmmanuel Vadot  brcm,cal-blob:
95*7ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
96*7ef62cebSEmmanuel Vadot    description: A per-device calibration blob for the Wi-Fi radio. This
97*7ef62cebSEmmanuel Vadot      should be filled in by the bootloader from platform configuration
98*7ef62cebSEmmanuel Vadot      data, if necessary, and will be uploaded to the device if present.
99*7ef62cebSEmmanuel Vadot
100*7ef62cebSEmmanuel Vadot  brcm,board-type:
101*7ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
102*7ef62cebSEmmanuel Vadot    description: Overrides the board type, which is normally the compatible of
103*7ef62cebSEmmanuel Vadot      the root node. This can be used to decouple the overall system board or
104*7ef62cebSEmmanuel Vadot      device name from the board type for WiFi purposes, which is used to
105*7ef62cebSEmmanuel Vadot      construct firmware and NVRAM configuration filenames, allowing for
106*7ef62cebSEmmanuel Vadot      multiple devices that share the same module or characteristics for the
107*7ef62cebSEmmanuel Vadot      WiFi subsystem to share the same firmware/NVRAM files. On Apple platforms,
108*7ef62cebSEmmanuel Vadot      this should be the Apple module-instance codename prefixed by "apple,",
109*7ef62cebSEmmanuel Vadot      e.g. "apple,honshu".
110*7ef62cebSEmmanuel Vadot
111*7ef62cebSEmmanuel Vadot  apple,antenna-sku:
112*7ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
113*7ef62cebSEmmanuel Vadot    description: Antenna SKU used to identify a specific antenna configuration
114*7ef62cebSEmmanuel Vadot      on Apple platforms. This is use to build firmware filenames, to allow
115*7ef62cebSEmmanuel Vadot      platforms with different antenna configs to have different firmware and/or
116*7ef62cebSEmmanuel Vadot      NVRAM. This would normally be filled in by the bootloader from platform
117*7ef62cebSEmmanuel Vadot      configuration data.
118*7ef62cebSEmmanuel Vadot
1192eb4d8dcSEmmanuel Vadotrequired:
1202eb4d8dcSEmmanuel Vadot  - compatible
1212eb4d8dcSEmmanuel Vadot  - reg
1222eb4d8dcSEmmanuel Vadot
1232eb4d8dcSEmmanuel VadotadditionalProperties: false
1242eb4d8dcSEmmanuel Vadot
1252eb4d8dcSEmmanuel Vadotexamples:
1262eb4d8dcSEmmanuel Vadot  - |
1272eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1282eb4d8dcSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
1292eb4d8dcSEmmanuel Vadot    mmc@80118000 {
1302eb4d8dcSEmmanuel Vadot      compatible = "arm,pl18x", "arm,primecell";
1312eb4d8dcSEmmanuel Vadot      reg = <0x80118000 0x1000>;
1322eb4d8dcSEmmanuel Vadot      clocks = <&clk 0>, <&clk 1>;
1332eb4d8dcSEmmanuel Vadot      clock-names = "mclk", "apb_pclk";
1342eb4d8dcSEmmanuel Vadot      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
1352eb4d8dcSEmmanuel Vadot      bus-width = <4>;
1362eb4d8dcSEmmanuel Vadot      non-removable;
1372eb4d8dcSEmmanuel Vadot      vmmc-supply = <&wl_bt_reg>;
1382eb4d8dcSEmmanuel Vadot      #address-cells = <1>;
1392eb4d8dcSEmmanuel Vadot      #size-cells = <0>;
1402eb4d8dcSEmmanuel Vadot
1412eb4d8dcSEmmanuel Vadot      wifi@1 {
1422eb4d8dcSEmmanuel Vadot        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
1432eb4d8dcSEmmanuel Vadot        reg = <1>;
1442eb4d8dcSEmmanuel Vadot        interrupt-parent = <&gpio>;
1452eb4d8dcSEmmanuel Vadot        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
1462eb4d8dcSEmmanuel Vadot        interrupt-names = "host-wake";
1472eb4d8dcSEmmanuel Vadot        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
1482eb4d8dcSEmmanuel Vadot        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
1492eb4d8dcSEmmanuel Vadot      };
1502eb4d8dcSEmmanuel Vadot    };
151