# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2020, Silicon Laboratories, Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/silabs,wfx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Silicon Labs WFxxx

maintainers:
  - Jérôme Pouiller <jerome.pouiller@silabs.com>

description: >
  Support for the Wifi chip WFxxx from Silicon Labs. Currently, the only device
  from the WFxxx series is the WF200 described here:
     https://www.silabs.com/documents/public/data-sheets/wf200-datasheet.pdf

  The WF200 can be connected via SPI or via SDIO.

  For SDIO:

    Declaring the WFxxx chip in device tree is mandatory (usually, the VID/PID is
    sufficient for the SDIO devices).

    It is recommended to declare a mmc-pwrseq on SDIO host above WFx. Without
    it, you may encounter issues during reboot. The mmc-pwrseq should be
    compatible with mmc-pwrseq-simple. Please consult
    Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml for more
    information.

properties:
  compatible:
    items:
      - enum:
          - prt,prtt1c-wfm200 # Protonic PRTT1C Board
          - silabs,brd4001a # WGM160P Evaluation Board
          - silabs,brd8022a # WF200 Evaluation Board
          - silabs,brd8023a # WFM200 Evaluation Board
      - const: silabs,wf200 # Chip alone without antenna

  reg:
    description:
      When used on SDIO bus, <reg> must be set to 1. When used on SPI bus, it is
      the chip select address of the device as defined in the SPI devices
      bindings.
    maxItems: 1

  interrupts:
    description: The interrupt line. Should be IRQ_TYPE_EDGE_RISING. When SPI is
      used, this property is required. When SDIO is used, the "in-band"
      interrupt provided by the SDIO bus is used unless an interrupt is defined
      in the Device Tree.
    maxItems: 1

  reset-gpios:
    description: (SPI only) Phandle of gpio that will be used to reset chip
      during probe. Without this property, you may encounter issues with warm
      boot.

      For SDIO, the reset gpio should declared using a mmc-pwrseq.
    maxItems: 1

  wakeup-gpios:
    description: Phandle of gpio that will be used to wake-up chip. Without this
      property, driver will disable most of power saving features.
    maxItems: 1

  silabs,antenna-config-file:
    $ref: /schemas/types.yaml#/definitions/string
    description: Use an alternative file for antenna configuration (aka
      "Platform Data Set" in Silabs jargon). Default depends of "compatible"
      string. For "silabs,wf200", the default is 'wf200.pds'.

  local-mac-address: true

  mac-address: true

required:
  - compatible
  - reg

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        wifi@0 {
            compatible = "silabs,brd8022a", "silabs,wf200";
            pinctrl-names = "default";
            pinctrl-0 = <&wfx_irq &wfx_gpios>;
            reg = <0>;
            interrupts-extended = <&gpio 16 IRQ_TYPE_EDGE_RISING>;
            wakeup-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
            spi-max-frequency = <42000000>;
        };
    };

  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    wfx_pwrseq: wfx_pwrseq {
        compatible = "mmc-pwrseq-simple";
        pinctrl-names = "default";
        pinctrl-0 = <&wfx_reset>;
        reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
    };

    mmc {
        mmc-pwrseq = <&wfx_pwrseq>;
        #address-cells = <1>;
        #size-cells = <0>;

        wifi@1 {
            compatible = "silabs,brd8022a", "silabs,wf200";
            pinctrl-names = "default";
            pinctrl-0 = <&wfx_wakeup>;
            reg = <1>;
            wakeup-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
        };
    };
...
