File Index
Files and directories
Sign in
FILE

silabs,wfx.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2# Copyright (c) 2020, Silicon Laboratories, Inc.
  3%YAML 1.2
  4---
  5$id: http://devicetree.org/schemas/net/wireless/silabs,wfx.yaml#
  6$schema: http://devicetree.org/meta-schemas/core.yaml#
  7
  8title: Silicon Labs WFxxx
  9
 10maintainers:
 11  - Jérôme Pouiller <jerome.pouiller@silabs.com>
 12
 13description: >
 14  Support for the Wifi chip WFxxx from Silicon Labs. Currently, the only device
 15  from the WFxxx series is the WF200 described here:
 16     https://www.silabs.com/documents/public/data-sheets/wf200-datasheet.pdf
 17
 18  The WF200 can be connected via SPI or via SDIO.
 19
 20  For SDIO:
 21
 22    Declaring the WFxxx chip in device tree is mandatory (usually, the VID/PID is
 23    sufficient for the SDIO devices).
 24
 25    It is recommended to declare a mmc-pwrseq on SDIO host above WFx. Without
 26    it, you may encounter issues during reboot. The mmc-pwrseq should be
 27    compatible with mmc-pwrseq-simple. Please consult
 28    Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml for more
 29    information.
 30
 31properties:
 32  compatible:
 33    items:
 34      - enum:
 35          - prt,prtt1c-wfm200 # Protonic PRTT1C Board
 36          - silabs,brd4001a # WGM160P Evaluation Board
 37          - silabs,brd8022a # WF200 Evaluation Board
 38          - silabs,brd8023a # WFM200 Evaluation Board
 39      - const: silabs,wf200 # Chip alone without antenna
 40
 41  reg:
 42    description:
 43      When used on SDIO bus, <reg> must be set to 1. When used on SPI bus, it is
 44      the chip select address of the device as defined in the SPI devices
 45      bindings.
 46    maxItems: 1
 47
 48  interrupts:
 49    description: The interrupt line. Should be IRQ_TYPE_EDGE_RISING. When SPI is
 50      used, this property is required. When SDIO is used, the "in-band"
 51      interrupt provided by the SDIO bus is used unless an interrupt is defined
 52      in the Device Tree.
 53    maxItems: 1
 54
 55  reset-gpios:
 56    description: (SPI only) Phandle of gpio that will be used to reset chip
 57      during probe. Without this property, you may encounter issues with warm
 58      boot.
 59
 60      For SDIO, the reset gpio should declared using a mmc-pwrseq.
 61    maxItems: 1
 62
 63  wakeup-gpios:
 64    description: Phandle of gpio that will be used to wake-up chip. Without this
 65      property, driver will disable most of power saving features.
 66    maxItems: 1
 67
 68  silabs,antenna-config-file:
 69    $ref: /schemas/types.yaml#/definitions/string
 70    description: Use an alternative file for antenna configuration (aka
 71      "Platform Data Set" in Silabs jargon). Default depends of "compatible"
 72      string. For "silabs,wf200", the default is 'wf200.pds'.
 73
 74required:
 75  - compatible
 76  - reg
 77
 78allOf:
 79  - $ref: /schemas/net/wireless/wireless-controller.yaml#
 80  - $ref: /schemas/spi/spi-peripheral-props.yaml#
 81
 82unevaluatedProperties: false
 83
 84examples:
 85  - |
 86    #include <dt-bindings/gpio/gpio.h>
 87    #include <dt-bindings/interrupt-controller/irq.h>
 88
 89    spi {
 90        #address-cells = <1>;
 91        #size-cells = <0>;
 92
 93        wifi@0 {
 94            compatible = "silabs,brd8022a", "silabs,wf200";
 95            pinctrl-names = "default";
 96            pinctrl-0 = <&wfx_irq &wfx_gpios>;
 97            reg = <0>;
 98            interrupts-extended = <&gpio 16 IRQ_TYPE_EDGE_RISING>;
 99            wakeup-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
100            reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
101            spi-max-frequency = <42000000>;
102        };
103    };
104
105  - |
106    #include <dt-bindings/gpio/gpio.h>
107    #include <dt-bindings/interrupt-controller/irq.h>
108
109    wfx_pwrseq: wfx_pwrseq {
110        compatible = "mmc-pwrseq-simple";
111        pinctrl-names = "default";
112        pinctrl-0 = <&wfx_reset>;
113        reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
114    };
115
116    mmc {
117        mmc-pwrseq = <&wfx_pwrseq>;
118        #address-cells = <1>;
119        #size-cells = <0>;
120
121        wifi@1 {
122            compatible = "silabs,brd8022a", "silabs,wf200";
123            pinctrl-names = "default";
124            pinctrl-0 = <&wfx_wakeup>;
125            reg = <1>;
126            wakeup-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
127        };
128    };
129...
~/ Read-only file preview.