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 >