[net-next PATCH 4/6] dt-bindings: net: ethernet-controller: permit to define multiple PCS

Christian Marangi posted 6 patches 9 months ago
[net-next PATCH 4/6] dt-bindings: net: ethernet-controller: permit to define multiple PCS
Posted by Christian Marangi 9 months ago
Drop the limitation of a single PCS in pcs-handle property. Multiple PCS
can be defined for an ethrnet-controller node to support various PHY
interface mode type.

It's very common for SoCs to have a dedicated PCS for SGMII mode and one
for USXGMII mode.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
 Documentation/devicetree/bindings/net/ethernet-controller.yaml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
index 45819b235800..a260ab8e056e 100644
--- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml
+++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
@@ -110,8 +110,6 @@ properties:
 
   pcs-handle:
     $ref: /schemas/types.yaml#/definitions/phandle-array
-    items:
-      maxItems: 1
     description:
       Specifies a reference to a node representing a PCS PHY device on a MDIO
       bus to link with an external PHY (phy-handle) if exists.
-- 
2.48.1
Re: [net-next PATCH 4/6] dt-bindings: net: ethernet-controller: permit to define multiple PCS
Posted by Rob Herring 9 months ago
On Wed, Mar 19, 2025 at 12:58:40AM +0100, Christian Marangi wrote:
> Drop the limitation of a single PCS in pcs-handle property. Multiple PCS
> can be defined for an ethrnet-controller node to support various PHY

typo

> interface mode type.

What limitation? It already supports multiple PCS phandles. It doesn't 
support arg cells. If you want that, either you have to fix the number 
of cells or define a #pcs-handle-cells property. You've done neither 
here.

Adding #pcs-handle-cells will also require some updates to the dtschema 
tools.

> 
> It's very common for SoCs to have a dedicated PCS for SGMII mode and one
> for USXGMII mode.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  Documentation/devicetree/bindings/net/ethernet-controller.yaml | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> index 45819b235800..a260ab8e056e 100644
> --- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> +++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> @@ -110,8 +110,6 @@ properties:
>  
>    pcs-handle:
>      $ref: /schemas/types.yaml#/definitions/phandle-array
> -    items:
> -      maxItems: 1
>      description:
>        Specifies a reference to a node representing a PCS PHY device on a MDIO
>        bus to link with an external PHY (phy-handle) if exists.
> -- 
> 2.48.1
>
Re: [net-next PATCH 4/6] dt-bindings: net: ethernet-controller: permit to define multiple PCS
Posted by Christian Marangi 8 months, 3 weeks ago
On Fri, Mar 21, 2025 at 11:18:12AM -0500, Rob Herring wrote:
> On Wed, Mar 19, 2025 at 12:58:40AM +0100, Christian Marangi wrote:
> > Drop the limitation of a single PCS in pcs-handle property. Multiple PCS
> > can be defined for an ethrnet-controller node to support various PHY
> 
> typo
> 
> > interface mode type.
> 
> What limitation? It already supports multiple PCS phandles. It doesn't 
> support arg cells. If you want that, either you have to fix the number 
> of cells or define a #pcs-handle-cells property. You've done neither 
> here.
> 
> Adding #pcs-handle-cells will also require some updates to the dtschema 
> tools.
>

I might be confused by doesn't 

pcs-handle:
  items:
    maxItems: 1

limit it to 

pcs-handle = <&foo>;

and make it not valid 

pcs-handle = <&foo1>, <&foo2>;

?

The cells property will come but only when there will be an actual user
for it (I assume QCOM PCS will make use of it)

> > 
> > It's very common for SoCs to have a dedicated PCS for SGMII mode and one
> > for USXGMII mode.
> > 
> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> > ---
> >  Documentation/devicetree/bindings/net/ethernet-controller.yaml | 2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> > index 45819b235800..a260ab8e056e 100644
> > --- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> > +++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
> > @@ -110,8 +110,6 @@ properties:
> >  
> >    pcs-handle:
> >      $ref: /schemas/types.yaml#/definitions/phandle-array
> > -    items:
> > -      maxItems: 1
> >      description:
> >        Specifies a reference to a node representing a PCS PHY device on a MDIO
> >        bus to link with an external PHY (phy-handle) if exists.
> > -- 
> > 2.48.1
> > 

-- 
	Ansuel
Re: [net-next PATCH 4/6] dt-bindings: net: ethernet-controller: permit to define multiple PCS
Posted by Sean Anderson 8 months, 2 weeks ago
On 3/27/25 11:49, Christian Marangi wrote:
> On Fri, Mar 21, 2025 at 11:18:12AM -0500, Rob Herring wrote:
>> On Wed, Mar 19, 2025 at 12:58:40AM +0100, Christian Marangi wrote:
>> > Drop the limitation of a single PCS in pcs-handle property. Multiple PCS
>> > can be defined for an ethrnet-controller node to support various PHY
>> 
>> typo
>> 
>> > interface mode type.
>> 
>> What limitation? It already supports multiple PCS phandles. It doesn't 
>> support arg cells. If you want that, either you have to fix the number 
>> of cells or define a #pcs-handle-cells property. You've done neither 
>> here.
>> 
>> Adding #pcs-handle-cells will also require some updates to the dtschema 
>> tools.
>>
> 
> I might be confused by doesn't 
> 
> pcs-handle:
>   items:
>     maxItems: 1
> 
> limit it to 
> 
> pcs-handle = <&foo>;
> 
> and make it not valid 
> 
> pcs-handle = <&foo1>, <&foo2>;
> 
> ?

You should modify this in the MAC's devicetree. See
Documentation/devicetree/bindings/net/fsl,fman-dtsec.yaml for an
example.

> The cells property will come but only when there will be an actual user
> for it (I assume QCOM PCS will make use of it)

I think it would be better to add this as necessary.

--Sean