[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YW8zAR0aeSduLRoD@robh.at.kernel.org>
Date: Tue, 19 Oct 2021 16:05:05 -0500
From: Rob Herring <robh@...nel.org>
To: Geert Uytterhoeven <geert+renesas@...der.be>
Cc: "David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Kalle Valo <kvalo@...eaurora.org>,
BenoƮt Cousson <bcousson@...libre.com>,
Tony Lindgren <tony@...mide.com>,
Russell King <linux@...linux.org.uk>,
David Lechner <david@...hnology.com>,
Sebastian Reichel <sre@...nel.org>, devicetree@...r.kernel.org,
netdev@...r.kernel.org, linux-wireless@...r.kernel.org,
linux-omap@...r.kernel.org, linux-renesas-soc@...r.kernel.org
Subject: Re: [PATCH 2/3] dt-bindings: net: wireless: ti,wlcore: Convert to
json-schema
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@...der.be>
> ---
> - 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@...mide.com>
> +
> +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
>
>
Powered by blists - more mailing lists