The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/net/wireless/silabs,wfx.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: b5b3ea760f565e64711772b6ead7720a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.