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