On Tue, Oct 19, 2021 at 02:43:12PM +0200, Geert Uytterhoeven wrote: > The Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN > Controllers can be connected via SPI or via SDIO. > Convert the two Device Tree binding documents to json-schema, and merge > them into a single document. > > Add missing ti,wl1285 compatible value. > Add missing interrupt-names property. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > --- > - The wlcore driver is marked orphan in MAINTAINERS. Both Tony and > Russell made recent bugfixes, and my not-so-random coin picked Tony > as a suitable maintainer. Please scream if not appropriate. > - How to express if a property is required when connected to a > specific bus type? There isn't a (simple) way within this schema, but IIRC the spi bus schema already requires 'reg' in child nodes. Otherwise, looks good and I'll queue. > --- > .../devicetree/bindings/net/ti-bluetooth.txt | 2 +- > .../bindings/net/wireless/ti,wlcore,spi.txt | 57 -------- > .../bindings/net/wireless/ti,wlcore.txt | 45 ------ > .../bindings/net/wireless/ti,wlcore.yaml | 134 ++++++++++++++++++ > arch/arm/boot/dts/omap3-gta04a5.dts | 2 +- > 5 files changed, 136 insertions(+), 104 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore,spi.txt > delete mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt > create mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml > > diff --git a/Documentation/devicetree/bindings/net/ti-bluetooth.txt b/Documentation/devicetree/bindings/net/ti-bluetooth.txt > index f48c17b38f5851de..3c01cfc1e12dc132 100644 > --- a/Documentation/devicetree/bindings/net/ti-bluetooth.txt > +++ b/Documentation/devicetree/bindings/net/ti-bluetooth.txt > @@ -13,7 +13,7 @@ and GPS over what's called "shared transport". The shared transport is > standard BT HCI protocol with additional channels for the other functions. > > TI WiLink devices also have a separate WiFi interface as described in > -wireless/ti,wlcore.txt. > +wireless/ti,wlcore.yaml. > > This bindings follows the UART slave device binding in ../serial/serial.yaml. > > diff --git a/Documentation/devicetree/bindings/net/wireless/ti,wlcore,spi.txt b/Documentation/devicetree/bindings/net/wireless/ti,wlcore,spi.txt > deleted file mode 100644 > index cb5c9e1569ca5300..0000000000000000 > --- a/Documentation/devicetree/bindings/net/wireless/ti,wlcore,spi.txt > +++ /dev/null > @@ -1,57 +0,0 @@ > -* Texas Instruments wl12xx/wl18xx wireless lan controller > - > -The wl12xx/wl18xx chips can be connected via SPI or via SDIO. This > -document describes the binding for the SPI connected chip. > - > -Required properties: > -- compatible : Should be one of the following: > - * "ti,wl1271" > - * "ti,wl1273" > - * "ti,wl1281" > - * "ti,wl1283" > - * "ti,wl1801" > - * "ti,wl1805" > - * "ti,wl1807" > - * "ti,wl1831" > - * "ti,wl1835" > - * "ti,wl1837" > -- reg : Chip select address of device > -- spi-max-frequency : Maximum SPI clocking speed of device in Hz > -- interrupts : Should contain parameters for 1 interrupt line. > -- vwlan-supply : Point the node of the regulator that powers/enable the > - wl12xx/wl18xx chip > - > -Optional properties: > -- ref-clock-frequency : Reference clock frequency (should be set for wl12xx) > -- clock-xtal : boolean, clock is generated from XTAL > - > -- Please consult Documentation/devicetree/bindings/spi/spi-bus.txt > - for optional SPI connection related properties, > - > -Examples: > - > -For wl12xx family: > -&spi1 { > - wlcore: wlcore@1 { > - compatible = "ti,wl1271"; > - reg = <1>; > - spi-max-frequency = <48000000>; > - interrupt-parent = <&gpio3>; > - interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; > - vwlan-supply = <&vwlan_fixed>; > - clock-xtal; > - ref-clock-frequency = <38400000>; > - }; > -}; > - > -For wl18xx family: > -&spi0 { > - wlcore: wlcore@0 { > - compatible = "ti,wl1835"; > - reg = <0>; > - spi-max-frequency = <48000000>; > - interrupt-parent = <&gpio0>; > - interrupts = <27 IRQ_TYPE_EDGE_RISING>; > - vwlan-supply = <&vwlan_fixed>; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt b/Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt > deleted file mode 100644 > index 9306c4dadd46aea7..0000000000000000 > --- a/Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt > +++ /dev/null > @@ -1,45 +0,0 @@ > -TI Wilink 6/7/8 (wl12xx/wl18xx) SDIO devices > - > -This node provides properties for controlling the wilink wireless device. The > -node is expected to be specified as a child node to the SDIO controller that > -connects the device to the system. > - > -Required properties: > - - compatible: should be one of the following: > - * "ti,wl1271" > - * "ti,wl1273" > - * "ti,wl1281" > - * "ti,wl1283" > - * "ti,wl1285" > - * "ti,wl1801" > - * "ti,wl1805" > - * "ti,wl1807" > - * "ti,wl1831" > - * "ti,wl1835" > - * "ti,wl1837" > - - interrupts : specifies attributes for the out-of-band interrupt. > - > -Optional properties: > - - ref-clock-frequency : ref clock frequency in Hz > - - tcxo-clock-frequency : tcxo clock frequency in Hz > - > -Note: the *-clock-frequency properties assume internal clocks. In case of external > -clock, new bindings (for parsing the clock nodes) have to be added. > - > -Example: > - > -&mmc3 { > - vmmc-supply = <&wlan_en_reg>; > - bus-width = <4>; > - cap-power-off-card; > - keep-power-in-suspend; > - > - #address-cells = <1>; > - #size-cells = <0>; > - wlcore: wlcore@2 { > - compatible = "ti,wl1835"; > - reg = <2>; > - interrupt-parent = <&gpio0>; > - interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml b/Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml > new file mode 100644 > index 0000000000000000..8dd164d10290082a > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml > @@ -0,0 +1,134 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/wireless/ti,wlcore.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN Controller > + > +maintainers: > + - Tony Lindgren <tony@xxxxxxxxxxx> > + > +description: > + The wl12xx/wl18xx chips can be connected via SPI or via SDIO. > + Note that the *-clock-frequency properties assume internal clocks. In case > + of external clocks, new bindings (for parsing the clock nodes) have to be > + added. > + > +properties: > + compatible: > + enum: > + - ti,wl1271 > + - ti,wl1273 > + - ti,wl1281 > + - ti,wl1283 > + - ti,wl1285 > + - ti,wl1801 > + - ti,wl1805 > + - ti,wl1807 > + - ti,wl1831 > + - ti,wl1835 > + - ti,wl1837 > + > + reg: > + maxItems: 1 > + description: > + This is required when connected via SPI, and optional when connected via > + SDIO. > + > + spi-max-frequency: true > + > + interrupts: > + minItems: 1 > + maxItems: 2 > + > + interrupt-names: > + items: > + - const: irq > + - const: wakeup > + > + vwlan-supply: > + description: > + Points to the node of the regulator that powers/enable the wl12xx/wl18xx > + chip. This is required when connected via SPI. > + > + > + ref-clock-frequency: > + description: Reference clock frequency. > + > + tcxo-clock-frequency: > + description: TCXO clock frequency. > + > + clock-xtal: > + $ref: /schemas/types.yaml#/definitions/flag > + description: Indicates that the clock is generated from XTAL. > + > +required: > + - compatible > + - interrupts > + > +if: > + properties: > + compatible: > + contains: > + enum: > + - ti,wl1271 > + - ti,wl1273 > + - ti,wl1281 > + - ti,wl1283 > +then: > + required: > + - ref-clock-frequency > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + > + // For wl12xx family: > + spi1 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + wlcore1: wlcore@1 { > + compatible = "ti,wl1271"; > + reg = <1>; > + spi-max-frequency = <48000000>; > + interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; > + vwlan-supply = <&vwlan_fixed>; > + clock-xtal; > + ref-clock-frequency = <38400000>; > + }; > + }; > + > + // For wl18xx family: > + spi2 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + wlcore2: wlcore@0 { > + compatible = "ti,wl1835"; > + reg = <0>; > + spi-max-frequency = <48000000>; > + interrupts = <27 IRQ_TYPE_EDGE_RISING>; > + vwlan-supply = <&vwlan_fixed>; > + }; > + }; > + > + // SDIO example: > + mmc3 { > + vmmc-supply = <&wlan_en_reg>; > + bus-width = <4>; > + cap-power-off-card; > + keep-power-in-suspend; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + wlcore3: wlcore@2 { > + compatible = "ti,wl1835"; > + reg = <2>; > + interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; > + }; > + }; > diff --git a/arch/arm/boot/dts/omap3-gta04a5.dts b/arch/arm/boot/dts/omap3-gta04a5.dts > index a2ba4030cf279683..0b5bd73888771438 100644 > --- a/arch/arm/boot/dts/omap3-gta04a5.dts > +++ b/arch/arm/boot/dts/omap3-gta04a5.dts > @@ -79,7 +79,7 @@ OMAP3_CORE1_IOPAD(0x2138, PIN_INPUT | MUX_MODE4) /* gpin114 */ > > /* > * for WL183x module see > - * Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt > + * Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml > */ > > &wifi_pwrseq { > -- > 2.25.1 > >