# 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 devicetree bindings maintainers: - Jérôme Pouiller description: The WFxxx chip series can be connected via SPI or via SDIO. For SDIO':' The driver is able to detect a WFxxx chip on SDIO bus by matching its Vendor ID and Product ID. However, driver will only provide limited features in this case. Thus declaring WFxxx chip in device tree is recommended (and may become mandatory in the future). In addition, it is recommended to declare a mmc-pwrseq on SDIO host above WFx. Without it, you may encounter issues with warm boot. The mmc-pwrseq should be compatible with mmc-pwrseq-simple. Please consult Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml for more information. For SPI':' In add of the properties below, please consult Documentation/devicetree/bindings/spi/spi-controller.yaml for optional SPI related properties. Note that in add of the properties below, the WFx driver also supports `mac-address` and `local-mac-address` as described in Documentation/devicetree/bindings/net/ethernet.txt properties: compatible: const: silabs,wf200 reg: description: When used on SDIO bus, 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 spi-max-frequency: description: (SPI only) Maximum SPI clocking speed of device in Hz. maxItems: 1 interrupts: description: The interrupt line. Triggers IRQ_TYPE_LEVEL_HIGH and IRQ_TYPE_EDGE_RISING are both supported by the chip and the driver. 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 legacy purpose, the gpio in inverted when compatible == "silabs,wfx-spi") 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 config-file: description: Use an alternative file as PDS. Default is `wf200.pds`. Only necessary for development/debug purpose. maxItems: 1 required: - compatible - reg examples: - | #include #include spi0 { #address-cells = <1>; #size-cells = <0>; wfx@0 { compatible = "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 #include wfx_pwrseq: wfx_pwrseq { compatible = "mmc-pwrseq-simple"; pinctrl-names = "default"; pinctrl-0 = <&wfx_reset>; reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>; }; mmc0 { mmc-pwrseq = <&wfx_pwrseq>; #address-cells = <1>; #size-cells = <0>; mmc@1 { compatible = "silabs,wf200"; pinctrl-names = "default"; pinctrl-0 = <&wfx_wakeup>; reg = <1>; wakeup-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>; }; }; ...