diff mbox series

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

Message ID f3f33f75c8911697f2c1dbde626f01187199bdc2.1621518686.git.geert+renesas@glider.be
State Superseded
Headers show
Series sms911x: DTS fixes and DT binding to json-schema conversion | expand

Commit Message

Geert Uytterhoeven May 20, 2021, 1:58 p.m. UTC
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@glider.be>
---
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.

---
 .../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

Comments

Rob Herring May 20, 2021, 7:56 p.m. UTC | #1
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@glider.be>
> ---
> 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@kernel.org>
> +
> +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
>
diff mbox series

Patch

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@kernel.org>
+
+allOf:
+  - $ref: ethernet-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: smsc,lan9115
+      - items:
+          - enum:
+              - "smsc,lan89218"
+              - "smsc,lan9117"
+              - "smsc,lan9118"
+              - "smsc,lan9220"
+              - "smsc,lan9221"
+          - 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;
-};