Subject: Re: [RFC PATCH 1/3] dt-bindings: net: sparx5: Add sparx5-switch bindings

From: Andrew Lunn <[email-masked]>
Date: Mon, 30 Nov 2020 15:05:16 +0100

On Mon, Nov 30, 2020 at 02:09:34PM +0100, Steen Hegelund wrote:
> On 27.11.2020 18:00, Andrew Lunn wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> > 
> > > +  reg-names:
> > > +    minItems: 153
> > > +    items:
> > > +      - const: dev2g5_0
> > > +      - const: dev5g_0
> > > +      - const: pcs5g_br_0
> > > +      - const: dev2g5_1
> > > +      - const: dev5g_1
> > ...
> > > +      - const: ana_ac
> > > +      - const: vop
> > 
> > > +    switch: switch@600000000 {
> > > +      compatible = "microchip,sparx5-switch";
> > > +      reg = <0x10004000 0x4000>, /* dev2g5_0 */
> > > +        <0x10008000 0x4000>, /* dev5g_0 */
> > > +        <0x1000c000 0x4000>, /* pcs5g_br_0 */
> > > +        <0x10010000 0x4000>, /* dev2g5_1 */
> > > +        <0x10014000 0x4000>, /* dev5g_1 */
> > 
> > ...
> > 
> > > +        <0x11800000 0x100000>, /* ana_l2 */
> > > +        <0x11900000 0x100000>, /* ana_ac */
> > > +        <0x11a00000 0x100000>; /* vop */
> > 
> > This is a pretty unusual binding.
> > 
> > Why is it not
> > 
> > reg = <0x10004000 0x1af8000>
> > 
> > and the driver can then break up the memory into its sub ranges?
> > 
> >    Andrew
> Hi Andrew,
> 
> Since the targets used by the driver is not always in the natural
> address order (e.g. the dev2g5_x targets), I thought it best to let the DT
> take care of this since this cannot be probed.  I am aware that this causes
> extra mappings compared to the one-range strategy, but this layout seems more
> transparent to me, also when mapped over PCIe.

The question is, do you have a device tree usage for this? Are there
devices in the family which have the regions in a different order?

You can easily move this table into the driver, and let the driver
break the region up. That would be normal.

      Andrew