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... 130