Re: [PATCH 5/5] dt-bindings: net: sms911x: Convert to json-schema

From: Rob Herring
Date: Thu May 20 2021 - 15:56:24 EST


On Thu, May 20, 2021 at 03:58:39PM +0200, Geert Uytterhoeven wrote:
> Convert the Smart Mixed-Signal Connectivity (SMSC) LAN911x/912x
> Controller Device Tree binding documentation to json-schema.
>
> Document missing properties.
> Make "phy-mode" not required, as many DTS files do not have it, and the
> Linux drivers falls back to PHY_INTERFACE_MODE_NA.
> Correct nodename in example.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> ---
> I have listed Shawn as the maintainer, as he wrote the original
> bindings. Shawn: Please scream if this is inappropriate ;-)
>
> I left "additionalProperties: true", as there are lots of bus-specific
> properties ("qcom,*", "samsung,*", "fsl,*", "gpmc,*", ...) to be found,
> that actually depend on the compatible value of the parent node.

Can you put a comment above additionalProperties to that effect. I need
to come up with some solution for this, but don't want folks copying
that when normally not needed.

>
> ---
> .../devicetree/bindings/net/gpmc-eth.txt | 2 +-
> .../devicetree/bindings/net/smsc,lan9115.yaml | 107 ++++++++++++++++++
> .../devicetree/bindings/net/smsc911x.txt | 43 -------
> 3 files changed, 108 insertions(+), 44 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/net/smsc,lan9115.yaml
> delete mode 100644 Documentation/devicetree/bindings/net/smsc911x.txt
>
> diff --git a/Documentation/devicetree/bindings/net/gpmc-eth.txt b/Documentation/devicetree/bindings/net/gpmc-eth.txt
> index f7da3d73ca1b2e15..32821066a85b0078 100644
> --- a/Documentation/devicetree/bindings/net/gpmc-eth.txt
> +++ b/Documentation/devicetree/bindings/net/gpmc-eth.txt
> @@ -13,7 +13,7 @@ Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
>
> For the properties relevant to the ethernet controller connected to the GPMC
> refer to the binding documentation of the device. For example, the documentation
> -for the SMSC 911x is Documentation/devicetree/bindings/net/smsc911x.txt
> +for the SMSC 911x is Documentation/devicetree/bindings/net/smsc,lan9115.yaml
>
> Child nodes need to specify the GPMC bus address width using the "bank-width"
> property but is possible that an ethernet controller also has a property to
> diff --git a/Documentation/devicetree/bindings/net/smsc,lan9115.yaml b/Documentation/devicetree/bindings/net/smsc,lan9115.yaml
> new file mode 100644
> index 0000000000000000..294fa3edf966695a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/smsc,lan9115.yaml
> @@ -0,0 +1,107 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/smsc,lan9115.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Smart Mixed-Signal Connectivity (SMSC) LAN911x/912x Controller
> +
> +maintainers:
> + - Shawn Guo <shawnguo@xxxxxxxxxx>
> +
> +allOf:
> + - $ref: ethernet-controller.yaml#
> +
> +properties:
> + compatible:
> + oneOf:
> + - const: smsc,lan9115
> + - items:
> + - enum:
> + - "smsc,lan89218"
> + - "smsc,lan9117"
> + - "smsc,lan9118"
> + - "smsc,lan9220"
> + - "smsc,lan9221"

Don't need quotes.

> + - const: smsc,lan9115
> +
> + reg:
> + maxItems: 1
> +
> + reg-shift: true
> +
> + reg-io-width:
> + enum: [ 2, 4 ]
> + default: 2
> +
> + interrupts:
> + minItems: 1
> + items:
> + - description:
> + LAN interrupt line
> + - description:
> + Optional PME (power management event) interrupt that is able to wake
> + up the host system with a 50ms pulse on network activity
> +
> + clocks:
> + maxItems: 1
> +
> + phy-mode: true
> +
> + smsc,irq-active-high:
> + type: boolean
> + description: Indicates the IRQ polarity is active-high
> +
> + smsc,irq-push-pull:
> + type: boolean
> + description: Indicates the IRQ type is push-pull
> +
> + smsc,force-internal-phy:
> + type: boolean
> + description: Forces SMSC LAN controller to use internal PHY
> +
> + smsc,force-external-phy:
> + type: boolean
> + description: Forces SMSC LAN controller to use external PHY
> +
> + smsc,save-mac-address:
> + type: boolean
> + description:
> + Indicates that MAC address needs to be saved before resetting the
> + controller
> +
> + reset-gpios:
> + maxItems: 1
> + description:
> + A GPIO line connected to the RESET (active low) signal of the device.
> + On many systems this is wired high so the device goes out of reset at
> + power-on, but if it is under program control, this optional GPIO can
> + wake up in response to it.
> +
> + vdd33a-supply:
> + description: 3.3V analog power supply
> +
> + vddvario-supply:
> + description: IO logic power supply
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> +
> +additionalProperties: true
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + ethernet@f4000000 {
> + compatible = "smsc,lan9220", "smsc,lan9115";
> + reg = <0xf4000000 0x2000000>;
> + phy-mode = "mii";
> + interrupt-parent = <&gpio1>;
> + interrupts = <31>, <32>;
> + reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
> + reg-io-width = <4>;
> + smsc,irq-push-pull;
> + };
> diff --git a/Documentation/devicetree/bindings/net/smsc911x.txt b/Documentation/devicetree/bindings/net/smsc911x.txt
> deleted file mode 100644
> index acfafc8e143c4c85..0000000000000000
> --- a/Documentation/devicetree/bindings/net/smsc911x.txt
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -* Smart Mixed-Signal Connectivity (SMSC) LAN911x/912x Controller
> -
> -Required properties:
> -- compatible : Should be "smsc,lan<model>", "smsc,lan9115"
> -- reg : Address and length of the io space for SMSC LAN
> -- interrupts : one or two interrupt specifiers
> - - The first interrupt is the SMSC LAN interrupt line
> - - The second interrupt (if present) is the PME (power
> - management event) interrupt that is able to wake up the host
> - system with a 50ms pulse on network activity
> -- phy-mode : See ethernet.txt file in the same directory
> -
> -Optional properties:
> -- reg-shift : Specify the quantity to shift the register offsets by
> -- reg-io-width : Specify the size (in bytes) of the IO accesses that
> - should be performed on the device. Valid value for SMSC LAN is
> - 2 or 4. If it's omitted or invalid, the size would be 2.
> -- smsc,irq-active-high : Indicates the IRQ polarity is active-high
> -- smsc,irq-push-pull : Indicates the IRQ type is push-pull
> -- smsc,force-internal-phy : Forces SMSC LAN controller to use
> - internal PHY
> -- smsc,force-external-phy : Forces SMSC LAN controller to use
> - external PHY
> -- smsc,save-mac-address : Indicates that mac address needs to be saved
> - before resetting the controller
> -- reset-gpios : a GPIO line connected to the RESET (active low) signal
> - of the device. On many systems this is wired high so the device goes
> - out of reset at power-on, but if it is under program control, this
> - optional GPIO can wake up in response to it.
> -- vdd33a-supply, vddvario-supply : 3.3V analog and IO logic power supplies
> -
> -Examples:
> -
> -lan9220@f4000000 {
> - compatible = "smsc,lan9220", "smsc,lan9115";
> - reg = <0xf4000000 0x2000000>;
> - phy-mode = "mii";
> - interrupt-parent = <&gpio1>;
> - interrupts = <31>, <32>;
> - reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
> - reg-io-width = <4>;
> - smsc,irq-push-pull;
> -};
> --
> 2.25.1
>