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 9title: Silicon Labs WFxxx devicetree bindings 10 11maintainers: 12 - Jérôme Pouiller <jerome.pouiller@silabs.com> 13 14description: > 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 38properties: 39 compatible: 40 items: 41 - enum: 42 - silabs,brd4001a # WGM160P Evaluation Board 43 - silabs,brd8022a # WF200 Evaluation Board 44 - silabs,brd8023a # WFM200 Evaluation Board 45 - const: silabs,wf200 # Chip alone without antenna 46 47 reg: 48 description: 49 When used on SDIO bus, <reg> must be set to 1. When used on SPI bus, it is 50 the chip select address of the device as defined in the SPI devices 51 bindings. 52 maxItems: 1 53 54 spi-max-frequency: true 55 56 interrupts: 57 description: The interrupt line. Should be IRQ_TYPE_EDGE_RISING. When SPI is 58 used, this property is required. When SDIO is used, the "in-band" 59 interrupt provided by the SDIO bus is used unless an interrupt is defined 60 in the Device Tree. 61 maxItems: 1 62 63 reset-gpios: 64 description: (SPI only) Phandle of gpio that will be used to reset chip 65 during probe. Without this property, you may encounter issues with warm 66 boot. 67 68 For SDIO, the reset gpio should declared using a mmc-pwrseq. 69 maxItems: 1 70 71 wakeup-gpios: 72 description: Phandle of gpio that will be used to wake-up chip. Without this 73 property, driver will disable most of power saving features. 74 maxItems: 1 75 76 silabs,antenna-config-file: 77 $ref: /schemas/types.yaml#/definitions/string 78 description: Use an alternative file for antenna configuration (aka 79 "Platform Data Set" in Silabs jargon). Default depends of "compatible" 80 string. For "silabs,wf200", the default is 'wf200.pds'. 81 82 local-mac-address: true 83 84 mac-address: true 85 86additionalProperties: false 87 88required: 89 - compatible 90 - reg 91 92examples: 93 - | 94 #include <dt-bindings/gpio/gpio.h> 95 #include <dt-bindings/interrupt-controller/irq.h> 96 97 spi { 98 #address-cells = <1>; 99 #size-cells = <0>; 100 101 wifi@0 { 102 compatible = "silabs,brd8022a", "silabs,wf200"; 103 pinctrl-names = "default"; 104 pinctrl-0 = <&wfx_irq &wfx_gpios>; 105 reg = <0>; 106 interrupts-extended = <&gpio 16 IRQ_TYPE_EDGE_RISING>; 107 wakeup-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>; 108 reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>; 109 spi-max-frequency = <42000000>; 110 }; 111 }; 112 113 - | 114 #include <dt-bindings/gpio/gpio.h> 115 #include <dt-bindings/interrupt-controller/irq.h> 116 117 wfx_pwrseq: wfx_pwrseq { 118 compatible = "mmc-pwrseq-simple"; 119 pinctrl-names = "default"; 120 pinctrl-0 = <&wfx_reset>; 121 reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>; 122 }; 123 124 mmc { 125 mmc-pwrseq = <&wfx_pwrseq>; 126 #address-cells = <1>; 127 #size-cells = <0>; 128 129 wifi@1 { 130 compatible = "silabs,brd8022a", "silabs,wf200"; 131 pinctrl-names = "default"; 132 pinctrl-0 = <&wfx_wakeup>; 133 reg = <1>; 134 wakeup-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>; 135 }; 136 }; 137... 138