diff mbox series

[v8,net-next,01/10] dt-bindings: net: dsa: dt bindings for microchip lan937x

Message ID 20220207172204.589190-2-prasanna.vengateshan@microchip.com (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series net: dsa: microchip: DSA driver support for LAN937x switch | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net-next
netdev/fixes_present success Fixes tag not required for -next series
netdev/subject_prefix success Link
netdev/cover_letter success Series has a cover letter
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers success CCed 11 of 11 maintainers
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 186 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Prasanna Vengateshan Feb. 7, 2022, 5:21 p.m. UTC
Documentation in .yaml format and updates to the MAINTAINERS
Also 'make dt_binding_check' is passed.

RGMII internal delay values for the mac is retrieved from
rx-internal-delay-ps & tx-internal-delay-ps as per the feedback from
v3 patch series.
https://lore.kernel.org/netdev/20210802121550.gqgbipqdvp5x76ii@skbuf/

It supports only the delay value of 0ns and 2ns.

Signed-off-by: Prasanna Vengateshan <prasanna.vengateshan@microchip.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 .../bindings/net/dsa/microchip,lan937x.yaml   | 179 ++++++++++++++++++
 MAINTAINERS                                   |   1 +
 2 files changed, 180 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml

Comments

Florian Fainelli Feb. 8, 2022, 2:53 a.m. UTC | #1
On 2/7/2022 9:21 AM, Prasanna Vengateshan wrote:
> Documentation in .yaml format and updates to the MAINTAINERS
> Also 'make dt_binding_check' is passed.
> 
> RGMII internal delay values for the mac is retrieved from
> rx-internal-delay-ps & tx-internal-delay-ps as per the feedback from
> v3 patch series.
> https://lore.kernel.org/netdev/20210802121550.gqgbipqdvp5x76ii@skbuf/
> 
> It supports only the delay value of 0ns and 2ns.
> 
> Signed-off-by: Prasanna Vengateshan <prasanna.vengateshan@microchip.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---
>   .../bindings/net/dsa/microchip,lan937x.yaml   | 179 ++++++++++++++++++
>   MAINTAINERS                                   |   1 +
>   2 files changed, 180 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> new file mode 100644
> index 000000000000..5657a0b89e4e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> @@ -0,0 +1,179 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/dsa/microchip,lan937x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: LAN937x Ethernet Switch Series Tree Bindings
> +
> +maintainers:
> +  - UNGLinuxDriver@microchip.com
> +
> +allOf:
> +  - $ref: dsa.yaml#
> +
> +properties:
> +  compatible:
> +    enum:
> +      - microchip,lan9370
> +      - microchip,lan9371
> +      - microchip,lan9372
> +      - microchip,lan9373
> +      - microchip,lan9374
> +
> +  reg:
> +    maxItems: 1
> +
> +  spi-max-frequency:
> +    maximum: 50000000
> +
> +  reset-gpios:
> +    description: Optional gpio specifier for a reset line
> +    maxItems: 1
> +
> +  mdio:
> +    $ref: /schemas/net/mdio.yaml#
> +    unevaluatedProperties: false

This should be moved to dsa.yaml since this is about describing the 
switch's internal MDIO bus controller. This is applicable to any switch, 
really.

> +
> +patternProperties:
> +  "^(ethernet-)?ports$":
> +    patternProperties:
> +      "^(ethernet-)?port@[0-7]+$":
> +        allOf:
> +          - if:
> +              properties:
> +                phy-mode:
> +                  contains:
> +                    enum:
> +                      - rgmii
> +                      - rgmii-rxid
> +                      - rgmii-txid
> +                      - rgmii-id
> +            then:
> +              properties:
> +                rx-internal-delay-ps:
> +                  $ref: "#/$defs/internal-delay-ps"
> +                tx-internal-delay-ps:
> +                  $ref: "#/$defs/internal-delay-ps"

Likewise, this should actually be changed in ethernet-controller.yaml
Prasanna Vengateshan Feb. 9, 2022, 11:58 a.m. UTC | #2
On Mon, 2022-02-07 at 18:53 -0800, Florian Fainelli wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
> 
> On 2/7/2022 9:21 AM, Prasanna Vengateshan wrote:
> > Documentation in .yaml format and updates to the MAINTAINERS
> > Also 'make dt_binding_check' is passed.
> > 
> > RGMII internal delay values for the mac is retrieved from
> > rx-internal-delay-ps & tx-internal-delay-ps as per the feedback from
> > v3 patch series.
> > https://lore.kernel.org/netdev/20210802121550.gqgbipqdvp5x76ii@skbuf/
> > 
> > It supports only the delay value of 0ns and 2ns.
> > 
> > Signed-off-by: Prasanna Vengateshan <prasanna.vengateshan@microchip.com>
> > Reviewed-by: Rob Herring <robh@kernel.org>
> > ---
> >   .../bindings/net/dsa/microchip,lan937x.yaml   | 179 ++++++++++++++++++
> >   MAINTAINERS                                   |   1 +
> >   2 files changed, 180 insertions(+)
> >   create mode 100644
> > Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> > 
> > +    maxItems: 1
> > +
> > +  mdio:
> > +    $ref: /schemas/net/mdio.yaml#
> > +    unevaluatedProperties: false
> 
> This should be moved to dsa.yaml since this is about describing the
> switch's internal MDIO bus controller. This is applicable to any switch,
> really.

Thanks for your review and feedback. Do you mean that 'mdio' to be added in
dsa.yaml instead adding here?

> 
> > +
> > +patternProperties:
> > +  "^(ethernet-)?ports$":
> > +    patternProperties:
> > +      "^(ethernet-)?port@[0-7]+$":
> > +        allOf:
> > +          - if:
> > +              properties:
> > +                phy-mode:
> > +                  contains:
> > +                    enum:
> > +                      - rgmii
> > +                      - rgmii-rxid
> > +                      - rgmii-txid
> > +                      - rgmii-id
> > +            then:
> > +              properties:
> > +                rx-internal-delay-ps:
> > +                  $ref: "#/$defs/internal-delay-ps"
> > +                tx-internal-delay-ps:
> > +                  $ref: "#/$defs/internal-delay-ps"
> 
> Likewise, this should actually be changed in ethernet-controller.yaml

There is *-internal-delay-ps property defined for mac in ethernet-
controller.yaml. Should that be changed like above? 


Prasanna V
Florian Fainelli Feb. 12, 2022, 3:56 a.m. UTC | #3
On 2/9/2022 3:58 AM, Prasanna Vengateshan wrote:
> On Mon, 2022-02-07 at 18:53 -0800, Florian Fainelli wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
>> content is safe
>>
>> On 2/7/2022 9:21 AM, Prasanna Vengateshan wrote:
>>> Documentation in .yaml format and updates to the MAINTAINERS
>>> Also 'make dt_binding_check' is passed.
>>>
>>> RGMII internal delay values for the mac is retrieved from
>>> rx-internal-delay-ps & tx-internal-delay-ps as per the feedback from
>>> v3 patch series.
>>> https://lore.kernel.org/netdev/20210802121550.gqgbipqdvp5x76ii@skbuf/
>>>
>>> It supports only the delay value of 0ns and 2ns.
>>>
>>> Signed-off-by: Prasanna Vengateshan <prasanna.vengateshan@microchip.com>
>>> Reviewed-by: Rob Herring <robh@kernel.org>
>>> ---
>>>    .../bindings/net/dsa/microchip,lan937x.yaml   | 179 ++++++++++++++++++
>>>    MAINTAINERS                                   |   1 +
>>>    2 files changed, 180 insertions(+)
>>>    create mode 100644
>>> Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
>>>
>>> +    maxItems: 1
>>> +
>>> +  mdio:
>>> +    $ref: /schemas/net/mdio.yaml#
>>> +    unevaluatedProperties: false
>>
>> This should be moved to dsa.yaml since this is about describing the
>> switch's internal MDIO bus controller. This is applicable to any switch,
>> really.
> 
> Thanks for your review and feedback. Do you mean that 'mdio' to be added in
> dsa.yaml instead adding here?

Yes indeed, since this is a common property of all DSA switches, it can 
be defined or not depending on whether the switch does have an internal 
MDIO bus controller or not.

> 
>>
>>> +
>>> +patternProperties:
>>> +  "^(ethernet-)?ports$":
>>> +    patternProperties:
>>> +      "^(ethernet-)?port@[0-7]+$":
>>> +        allOf:
>>> +          - if:
>>> +              properties:
>>> +                phy-mode:
>>> +                  contains:
>>> +                    enum:
>>> +                      - rgmii
>>> +                      - rgmii-rxid
>>> +                      - rgmii-txid
>>> +                      - rgmii-id
>>> +            then:
>>> +              properties:
>>> +                rx-internal-delay-ps:
>>> +                  $ref: "#/$defs/internal-delay-ps"
>>> +                tx-internal-delay-ps:
>>> +                  $ref: "#/$defs/internal-delay-ps"
>>
>> Likewise, this should actually be changed in ethernet-controller.yaml
> 
> There is *-internal-delay-ps property defined for mac in ethernet-
> controller.yaml. Should that be changed like above?

It seems to me that these properties override whatever 'phy-mode' 
property is defined, but in premise you are right that this is largely 
applicable to RGMII only. I seem to recall that the QCA8K driver had 
some sort of similar delay being applied even in SGMII mode but I am not 
sure if we got to the bottom of this.

Please make sure that this does not create regressions for other DTS in 
the tree before going with that change in ethernet-controller.yaml.

Thanks!
Prasanna Vengateshan Feb. 18, 2022, 4:38 p.m. UTC | #4
On Fri, 2022-02-11 at 19:56 -0800, Florian Fainelli wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
> 
> On 2/9/2022 3:58 AM, Prasanna Vengateshan wrote:
> > On Mon, 2022-02-07 at 18:53 -0800, Florian Fainelli wrote:
> > > 
> > > > +                rx-internal-delay-ps:
> > > > +                  $ref: "#/$defs/internal-delay-ps"
> > > > +                tx-internal-delay-ps:
> > > > +                  $ref: "#/$defs/internal-delay-ps"
> > > 
> > > Likewise, this should actually be changed in ethernet-controller.yaml
> > 
> > There is *-internal-delay-ps property defined for mac in ethernet-
> > controller.yaml. Should that be changed like above?
> 
> It seems to me that these properties override whatever 'phy-mode'
> property is defined, but in premise you are right that this is largely
> applicable to RGMII only. I seem to recall that the QCA8K driver had
> some sort of similar delay being applied even in SGMII mode but I am not
> sure if we got to the bottom of this.
> 
> Please make sure that this does not create regressions for other DTS in
> the tree before going with that change in ethernet-controller.yaml.

Okay, Can these be submitted as a seperate patch?

Prasanna V
Florian Fainelli Feb. 22, 2022, 7:47 p.m. UTC | #5
On 2/18/2022 8:38 AM, Prasanna Vengateshan wrote:
> On Fri, 2022-02-11 at 19:56 -0800, Florian Fainelli wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
>> content is safe
>>
>> On 2/9/2022 3:58 AM, Prasanna Vengateshan wrote:
>>> On Mon, 2022-02-07 at 18:53 -0800, Florian Fainelli wrote:
>>>>
>>>>> +                rx-internal-delay-ps:
>>>>> +                  $ref: "#/$defs/internal-delay-ps"
>>>>> +                tx-internal-delay-ps:
>>>>> +                  $ref: "#/$defs/internal-delay-ps"
>>>>
>>>> Likewise, this should actually be changed in ethernet-controller.yaml
>>>
>>> There is *-internal-delay-ps property defined for mac in ethernet-
>>> controller.yaml. Should that be changed like above?
>>
>> It seems to me that these properties override whatever 'phy-mode'
>> property is defined, but in premise you are right that this is largely
>> applicable to RGMII only. I seem to recall that the QCA8K driver had
>> some sort of similar delay being applied even in SGMII mode but I am not
>> sure if we got to the bottom of this.
>>
>> Please make sure that this does not create regressions for other DTS in
>> the tree before going with that change in ethernet-controller.yaml.
> 
> Okay, Can these be submitted as a seperate patch?

Well yes, it has to be a separate patch, but it should be part of the 
same series as this one, otherwise your patch adding the binding for 
lan937x would fail validation.
Prasanna Vengateshan March 2, 2022, 11:41 a.m. UTC | #6
Hi Rob and Florian,

On Fri, 2022-02-11 at 19:56 -0800, Florian Fainelli wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
> 
> On 2/9/2022 3:58 AM, Prasanna Vengateshan wrote:
> > On Mon, 2022-02-07 at 18:53 -0800, Florian Fainelli wrote:
> > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> > > content is safe
> > > 
> > > On 2/7/2022 9:21 AM, Prasanna Vengateshan wrote:
> > > > Documentation in .yaml format and updates to the MAINTAINERS
> > > > Also 'make dt_binding_check' is passed.
> > > > 
> > > > RGMII internal delay values for the mac is retrieved from
> > > > rx-internal-delay-ps & tx-internal-delay-ps as per the feedback from
> > > > v3 patch series.
> > > > https://lore.kernel.org/netdev/20210802121550.gqgbipqdvp5x76ii@skbuf/
> > > > 
> > > > It supports only the delay value of 0ns and 2ns.
> > > > 
> > > > Signed-off-by: Prasanna Vengateshan <prasanna.vengateshan@microchip.com>
> > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > ---
> > > >    .../bindings/net/dsa/microchip,lan937x.yaml   | 179 ++++++++++++++++++
> > > >    MAINTAINERS                                   |   1 +
> > > >    2 files changed, 180 insertions(+)
> > > >    create mode 100644
> > > > Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> > > > 
> > > > +    maxItems: 1
> > > > +
> > > > +  mdio:
> > > > +    $ref: /schemas/net/mdio.yaml#
> > > > +    unevaluatedProperties: false
> > > 
> > > This should be moved to dsa.yaml since this is about describing the
> > > switch's internal MDIO bus controller. This is applicable to any switch,
> > > really.
> > 
> > Thanks for your review and feedback. Do you mean that 'mdio' to be added in
> > dsa.yaml instead adding here?
> 
> Yes indeed, since this is a common property of all DSA switches, it can
> be defined or not depending on whether the switch does have an internal
> MDIO bus controller or not.
> 
> > 
> > > 
> > > > +
> > > > +patternProperties:
> > > > +  "^(ethernet-)?ports$":
> > > > +    patternProperties:
> > > > +      "^(ethernet-)?port@[0-7]+$":
> > > > +        allOf:
> > > > +          - if:
> > > > +              properties:
> > > > +                phy-mode:
> > > > +                  contains:
> > > > +                    enum:
> > > > +                      - rgmii
> > > > +                      - rgmii-rxid
> > > > +                      - rgmii-txid
> > > > +                      - rgmii-id
> > > > +            then:
> > > > +              properties:
> > > > +                rx-internal-delay-ps:
> > > > +                  $ref: "#/$defs/internal-delay-ps"
> > > > +                tx-internal-delay-ps:
> > > > +                  $ref: "#/$defs/internal-delay-ps"
> > > 
> > > Likewise, this should actually be changed in ethernet-controller.yaml
> > 
> > There is *-internal-delay-ps property defined for mac in ethernet-
> > controller.yaml. Should that be changed like above?
> 
> It seems to me that these properties override whatever 'phy-mode'
> property is defined, but in premise you are right that this is largely
> applicable to RGMII only. I seem to recall that the QCA8K driver had
> some sort of similar delay being applied even in SGMII mode but I am not
> sure if we got to the bottom of this.
> 
> Please make sure that this does not create regressions for other DTS in
> the tree before going with that change in ethernet-controller.yaml.
> 

I just tried changing rx-internal-delay-ps & tx-internal-delay-ps on conditional
basis like above in the ethernet-controller.yaml and it passed 'make
dt_binding_check' as well. 

It would be like below if existing *-internal-delay-ps are removed from
ethernet-controller.yaml.

allOf:
  - if:
      properties:
        phy-mode:
          contains:
            enum:
              - rgmii
              - rgmii-rxid
              - rgmii-txid
              - rgmii-id
            then:
              properties:
                rx-internal-delay-ps:
                  description:
                    RGMII Receive Clock Delay defined in pico seconds.This is 
                    used for controllers that have configurable RX internal 
                    delays. If this property is present then the MAC applies 
                    the RX delay.
                tx-internal-delay-ps:
                  description:
                    RGMII Transmit Clock Delay defined in pico seconds.This is
                    used for controllers that have configurable TX internal
                    delays. If this property is present then the MAC applies
                    the TX delay.   

After the above changes, these two properties descriptions are different compare
to other properties. So i just wanted to know whether i am following the right
approach or are there any other proposal available? Thanks.

Prasanna V
Prasanna Vengateshan March 10, 2022, 5:27 p.m. UTC | #7
Hi Rob/Florian,

On Wed, 2022-03-02 at 17:11 +0530, Prasanna Vengateshan wrote:
> Hi Rob and Florian,
> 
> On Fri, 2022-02-11 at 19:56 -0800, Florian Fainelli wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> > content is safe
> > 
> > On 2/9/2022 3:58 AM, Prasanna Vengateshan wrote:
> > > On Mon, 2022-02-07 at 18:53 -0800, Florian Fainelli wrote:
> > > > EXTERNAL EMAIL: Do not click links or open attachments unless you know
> > > > the
> > > > content is safe
> > > > 
> > > > On 2/7/2022 9:21 AM, Prasanna Vengateshan wrote:
> > > > > Documentation in .yaml format and updates to the MAINTAINERS
> > > > > Also 'make dt_binding_check' is passed.
> > > > > 
> > > > > RGMII internal delay values for the mac is retrieved from
> > > > > rx-internal-delay-ps & tx-internal-delay-ps as per the feedback from
> > > > > v3 patch series.
> > > > > https://lore.kernel.org/netdev/20210802121550.gqgbipqdvp5x76ii@skbuf/
> > > > > 
> > > > > It supports only the delay value of 0ns and 2ns.
> > > > > 
> > > > > Signed-off-by: Prasanna Vengateshan <
> > > > > prasanna.vengateshan@microchip.com>
> > > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > > ---
> > > > >    .../bindings/net/dsa/microchip,lan937x.yaml   | 179
> > > > > ++++++++++++++++++
> > > > >    MAINTAINERS                                   |   1 +
> > > > >    2 files changed, 180 insertions(+)
> > > > >    create mode 100644
> > > > > Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> > > > > 
> > > > > +    maxItems: 1
> > > > > +
> > > > > +  mdio:
> > > > > +    $ref: /schemas/net/mdio.yaml#
> > > > > +    unevaluatedProperties: false
> > > > 
> > > > This should be moved to dsa.yaml since this is about describing the
> > > > switch's internal MDIO bus controller. This is applicable to any switch,
> > > > really.
> > > 
> > > Thanks for your review and feedback. Do you mean that 'mdio' to be added
> > > in
> > > dsa.yaml instead adding here?
> > 
> > Yes indeed, since this is a common property of all DSA switches, it can
> > be defined or not depending on whether the switch does have an internal
> > MDIO bus controller or not.
> > 
> > > 
> > > > 
> > > > > +
> > > > > +patternProperties:
> > > > > +  "^(ethernet-)?ports$":
> > > > > +    patternProperties:
> > > > > +      "^(ethernet-)?port@[0-7]+$":
> > > > > +        allOf:
> > > > > +          - if:
> > > > > +              properties:
> > > > > +                phy-mode:
> > > > > +                  contains:
> > > > > +                    enum:
> > > > > +                      - rgmii
> > > > > +                      - rgmii-rxid
> > > > > +                      - rgmii-txid
> > > > > +                      - rgmii-id
> > > > > +            then:
> > > > > +              properties:
> > > > > +                rx-internal-delay-ps:
> > > > > +                  $ref: "#/$defs/internal-delay-ps"
> > > > > +                tx-internal-delay-ps:
> > > > > +                  $ref: "#/$defs/internal-delay-ps"
> > > > 
> > > > Likewise, this should actually be changed in ethernet-controller.yaml
> > > 
> > > There is *-internal-delay-ps property defined for mac in ethernet-
> > > controller.yaml. Should that be changed like above?
> > 
> > It seems to me that these properties override whatever 'phy-mode'
> > property is defined, but in premise you are right that this is largely
> > applicable to RGMII only. I seem to recall that the QCA8K driver had
> > some sort of similar delay being applied even in SGMII mode but I am not
> > sure if we got to the bottom of this.
> > 
> > Please make sure that this does not create regressions for other DTS in
> > the tree before going with that change in ethernet-controller.yaml.
> > 
> 
> I just tried changing rx-internal-delay-ps & tx-internal-delay-ps on
> conditional
> basis like above in the ethernet-controller.yaml and it passed 'make
> dt_binding_check' as well. 
> 
> It would be like below if existing *-internal-delay-ps are removed from
> ethernet-controller.yaml.
> 
> allOf:
>   - if:
>       properties:
>         phy-mode:
>           contains:
>             enum:
>               - rgmii
>               - rgmii-rxid
>               - rgmii-txid
>               - rgmii-id
>             then:
>               properties:
>                 rx-internal-delay-ps:
>                   description:
>                     RGMII Receive Clock Delay defined in pico seconds.This is 
>                     used for controllers that have configurable RX internal 
>                     delays. If this property is present then the MAC applies 
>                     the RX delay.
>                 tx-internal-delay-ps:
>                   description:
>                     RGMII Transmit Clock Delay defined in pico seconds.This is
>                     used for controllers that have configurable TX internal
>                     delays. If this property is present then the MAC applies
>                     the TX delay.   
> 
> After the above changes, these two properties descriptions are different
> compare
> to other properties. So i just wanted to know whether i am following the right
> approach or are there any other proposal available? Thanks.
> 
> Prasanna V
> 
Is the above method looking good? Your feedback will be helpful. Thanks.

Prasanna V
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
new file mode 100644
index 000000000000..5657a0b89e4e
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
@@ -0,0 +1,179 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/dsa/microchip,lan937x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LAN937x Ethernet Switch Series Tree Bindings
+
+maintainers:
+  - UNGLinuxDriver@microchip.com
+
+allOf:
+  - $ref: dsa.yaml#
+
+properties:
+  compatible:
+    enum:
+      - microchip,lan9370
+      - microchip,lan9371
+      - microchip,lan9372
+      - microchip,lan9373
+      - microchip,lan9374
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 50000000
+
+  reset-gpios:
+    description: Optional gpio specifier for a reset line
+    maxItems: 1
+
+  mdio:
+    $ref: /schemas/net/mdio.yaml#
+    unevaluatedProperties: false
+
+patternProperties:
+  "^(ethernet-)?ports$":
+    patternProperties:
+      "^(ethernet-)?port@[0-7]+$":
+        allOf:
+          - if:
+              properties:
+                phy-mode:
+                  contains:
+                    enum:
+                      - rgmii
+                      - rgmii-rxid
+                      - rgmii-txid
+                      - rgmii-id
+            then:
+              properties:
+                rx-internal-delay-ps:
+                  $ref: "#/$defs/internal-delay-ps"
+                tx-internal-delay-ps:
+                  $ref: "#/$defs/internal-delay-ps"
+
+required:
+  - compatible
+  - reg
+
+$defs:
+  internal-delay-ps:
+    description: Delay is in pico seconds
+    enum: [0, 2000]
+    default: 0
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    //Ethernet switch connected via spi to the host
+    ethernet {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      fixed-link {
+        speed = <1000>;
+        full-duplex;
+      };
+    };
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      lan9374: switch@0 {
+        compatible = "microchip,lan9374";
+        reg = <0>;
+
+        spi-max-frequency = <44000000>;
+
+        ethernet-ports {
+          #address-cells = <1>;
+          #size-cells = <0>;
+          port@0 {
+            reg = <0>;
+            label = "lan1";
+            phy-mode = "internal";
+            phy-handle = <&t1phy0>;
+          };
+          port@1 {
+            reg = <1>;
+            label = "lan2";
+            phy-mode = "internal";
+            phy-handle = <&t1phy1>;
+          };
+          port@2 {
+            reg = <2>;
+            label = "lan4";
+            phy-mode = "internal";
+            phy-handle = <&t1phy2>;
+          };
+          port@3 {
+            reg = <3>;
+            label = "lan6";
+            phy-mode = "internal";
+            phy-handle = <&t1phy3>;
+          };
+          port@4 {
+            reg = <4>;
+            phy-mode = "rgmii";
+            ethernet = <&ethernet>;
+            fixed-link {
+              speed = <1000>;
+              full-duplex;
+            };
+          };
+          port@5 {
+            reg = <5>;
+            label = "lan7";
+            phy-mode = "rgmii";
+            fixed-link {
+              speed = <1000>;
+              full-duplex;
+            };
+          };
+          port@6 {
+            reg = <6>;
+            label = "lan5";
+            phy-mode = "internal";
+            phy-handle = <&t1phy4>;
+          };
+          port@7 {
+            reg = <7>;
+            label = "lan3";
+            phy-mode = "internal";
+            phy-handle = <&t1phy5>;
+          };
+        };
+
+        mdio {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          t1phy0: ethernet-phy@0{
+            reg = <0x0>;
+          };
+          t1phy1: ethernet-phy@1{
+            reg = <0x1>;
+          };
+          t1phy2: ethernet-phy@2{
+            reg = <0x2>;
+          };
+          t1phy3: ethernet-phy@3{
+            reg = <0x3>;
+          };
+          t1phy4: ethernet-phy@6{
+            reg = <0x6>;
+          };
+          t1phy5: ethernet-phy@7{
+            reg = <0x7>;
+          };
+        };
+      };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index c7169da15ab4..4449cc2e9c69 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12630,6 +12630,7 @@  M:	UNGLinuxDriver@microchip.com
 L:	netdev@vger.kernel.org
 S:	Maintained
 F:	Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
+F:	Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
 F:	drivers/net/dsa/microchip/*
 F:	include/linux/platform_data/microchip-ksz.h
 F:	net/dsa/tag_ksz.c