# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM4329 family fullmac wireless SDIO devices

maintainers:
  - Arend van Spriel <arend@broadcom.com>

description:
  The Broadcom Single chip MAC part for the BCM4329 family and
  later Cypress chips in the same family named CYW4373 and similar.
  These chips also have a Bluetooth portion described in a separate
  binding.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - brcm,bcm43143-fmac
              - brcm,bcm4341b0-fmac
              - brcm,bcm4341b4-fmac
              - brcm,bcm4341b5-fmac
              - brcm,bcm4329-fmac
              - brcm,bcm4330-fmac
              - brcm,bcm4334-fmac
              - brcm,bcm43340-fmac
              - brcm,bcm4335-fmac
              - brcm,bcm43362-fmac
              - brcm,bcm4339-fmac
              - brcm,bcm43430a0-fmac
              - brcm,bcm43430a1-fmac
              - brcm,bcm43455-fmac
              - brcm,bcm43456-fmac
              - brcm,bcm4354-fmac
              - brcm,bcm4356-fmac
              - brcm,bcm4359-fmac
              - cypress,cyw4373-fmac
              - cypress,cyw43012-fmac
          - const: brcm,bcm4329-fmac
      - const: brcm,bcm4329-fmac

  reg:
    description: SDIO function number for the device, for most cases
      this will be 1.

  interrupts:
    maxItems: 1
    description: Out-of-band (OOB) IRQ line for waking up the host
      in response to WLAN activity. This corresponds to the HOST_WAKE
      line into the chip.

  interrupt-names:
    description: Name for the OOB IRQ, this must be set to "host-wake".
    const: host-wake

  brcm,drive-strength:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Drive strength used for the SDIO pins on the device in mA.
    minimum: 0
    maximum: 32

  reset-gpios:
    maxItems: 1
    description: A GPIO line connected to the WL_RST line, if present
      this shall be flagged as active low.

  brcm,ccode-map:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: Multiple strings for translating ISO3166 country code to
      brcmfmac firmware country code and revision.
    items:
      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/gpio/gpio.h>
    mmc@80118000 {
      compatible = "arm,pl18x", "arm,primecell";
      reg = <0x80118000 0x1000>;
      clocks = <&clk 0>, <&clk 1>;
      clock-names = "mclk", "apb_pclk";
      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
      bus-width = <4>;
      non-removable;
      vmmc-supply = <&wl_bt_reg>;
      #address-cells = <1>;
      #size-cells = <0>;

      wifi@1 {
        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
        reg = <1>;
        interrupt-parent = <&gpio>;
        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
        interrupt-names = "host-wake";
        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
      };
    };
