diff mbox series

dt-bindings: PCI: xilinx-cpm: Change reg property order

Message ID 20220429130221.32113-1-bharat.kumar.gogada@xilinx.com (mailing list archive)
State Accepted
Commit e2c6170a55baefcbeb477e06e66f07659ea4f58d
Headers show
Series dt-bindings: PCI: xilinx-cpm: Change reg property order | expand

Commit Message

Bharat Kumar Gogada April 29, 2022, 1:02 p.m. UTC
Describe cpm reg property before cfg reg property to align with
node name.

Signed-off-by: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
---
 .../devicetree/bindings/pci/xilinx-versal-cpm.yaml     | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Michal Simek April 29, 2022, 1:27 p.m. UTC | #1
On 4/29/22 15:02, Bharat Kumar Gogada wrote:
> Describe cpm reg property before cfg reg property to align with
> node name.
> 
> Signed-off-by: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
> ---
>   .../devicetree/bindings/pci/xilinx-versal-cpm.yaml     | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
> index 32f4641085bc..cca395317a4c 100644
> --- a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
> +++ b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
> @@ -18,13 +18,13 @@ properties:
>   
>     reg:
>       items:
> -      - description: Configuration space region and bridge registers.
>         - description: CPM system level control and status registers.
> +      - description: Configuration space region and bridge registers.
>   
>     reg-names:
>       items:
> -      - const: cfg
>         - const: cpm_slcr
> +      - const: cfg
>   
>     interrupts:
>       maxItems: 1
> @@ -86,9 +86,9 @@ examples:
>                          ranges = <0x02000000 0x0 0xe0000000 0x0 0xe0000000 0x0 0x10000000>,
>                                   <0x43000000 0x80 0x00000000 0x80 0x00000000 0x0 0x80000000>;
>                          msi-map = <0x0 &its_gic 0x0 0x10000>;
> -                       reg = <0x6 0x00000000 0x0 0x10000000>,
> -                             <0x0 0xfca10000 0x0 0x1000>;
> -                       reg-names = "cfg", "cpm_slcr";
> +                       reg = <0x0 0xfca10000 0x0 0x1000>,
> +                             <0x6 0x00000000 0x0 0x10000000>;
> +                       reg-names = "cpm_slcr", "cfg";
>                          pcie_intc_0: interrupt-controller {
>                                  #address-cells = <0>;
>                                  #interrupt-cells = <1>;

Acked-by: Michal Simek <michal.simek@amd.com>

Thanks,
Michal
Rob Herring (Arm) May 4, 2022, 3:43 p.m. UTC | #2
On Fri, Apr 29, 2022 at 8:02 AM Bharat Kumar Gogada
<bharat.kumar.gogada@xilinx.com> wrote:
>
> Describe cpm reg property before cfg reg property to align with
> node name.

The order is an ABI. If breaking it is okay, explain why here.

>
> Signed-off-by: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
> ---
>  .../devicetree/bindings/pci/xilinx-versal-cpm.yaml     | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
> index 32f4641085bc..cca395317a4c 100644
> --- a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
> +++ b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
> @@ -18,13 +18,13 @@ properties:
>
>    reg:
>      items:
> -      - description: Configuration space region and bridge registers.
>        - description: CPM system level control and status registers.
> +      - description: Configuration space region and bridge registers.
>
>    reg-names:
>      items:
> -      - const: cfg
>        - const: cpm_slcr
> +      - const: cfg
>
>    interrupts:
>      maxItems: 1
> @@ -86,9 +86,9 @@ examples:
>                         ranges = <0x02000000 0x0 0xe0000000 0x0 0xe0000000 0x0 0x10000000>,
>                                  <0x43000000 0x80 0x00000000 0x80 0x00000000 0x0 0x80000000>;
>                         msi-map = <0x0 &its_gic 0x0 0x10000>;
> -                       reg = <0x6 0x00000000 0x0 0x10000000>,
> -                             <0x0 0xfca10000 0x0 0x1000>;
> -                       reg-names = "cfg", "cpm_slcr";
> +                       reg = <0x0 0xfca10000 0x0 0x1000>,
> +                             <0x6 0x00000000 0x0 0x10000000>;
> +                       reg-names = "cpm_slcr", "cfg";
>                         pcie_intc_0: interrupt-controller {
>                                 #address-cells = <0>;
>                                 #interrupt-cells = <1>;
> --
> 2.17.1
>
Michal Simek May 10, 2022, 7:29 a.m. UTC | #3
On 5/4/22 17:43, Rob Herring wrote:
> On Fri, Apr 29, 2022 at 8:02 AM Bharat Kumar Gogada
> <bharat.kumar.gogada@xilinx.com> wrote:
>>
>> Describe cpm reg property before cfg reg property to align with
>> node name.
> 
> The order is an ABI. If breaking it is okay, explain why here.

I didn't push any description for versal to upstream u-boot or linux yet but 
xilinx is using this order for years. DT binding order wasn't aligned to it.

For example: (Xilinx Linux is in sync with this).
https://github.com/Xilinx/u-boot-xlnx/blob/master/arch/arm/dts/versal.dtsi

Driver itself is working with reg-names and order of regs doesn't matter. It 
means changed order doesn't break any functionality.
Right now reg order really matter in binding doc but would be good in these 
examples to record that both ways are fine.
Would it be better to describe that both ways are fine?

   reg-names:
     oneOf:
     - items:
       - const: cfg
       - const: cpm_slcr
     - items:
       - const: cpm_slcr
       - const: cfg


Another small reason is that all hard IPs in Versal are normally placed below 
4GB address range. And there are some others which also have mapping above. This 
is one of that example and we normally aligned with 32bit address.

And the biggest reason is that current node name is pcie@fca10000 which should 
be aligned with the first register base which is before this patch 0x600000000 
but name suggest that the first reg should be cpm_slcr instead of cfg. That's 
why I consider this patch as a fix and the patch should contain fixed tag.

Thanks,
Michal
Rob Herring (Arm) May 10, 2022, 4 p.m. UTC | #4
On Tue, May 10, 2022 at 2:29 AM Michal Simek <michal.simek@xilinx.com> wrote:
>
>
>
> On 5/4/22 17:43, Rob Herring wrote:
> > On Fri, Apr 29, 2022 at 8:02 AM Bharat Kumar Gogada
> > <bharat.kumar.gogada@xilinx.com> wrote:
> >>
> >> Describe cpm reg property before cfg reg property to align with
> >> node name.
> >
> > The order is an ABI. If breaking it is okay, explain why here.
>
> I didn't push any description for versal to upstream u-boot or linux yet but
> xilinx is using this order for years. DT binding order wasn't aligned to it.
>
> For example: (Xilinx Linux is in sync with this).
> https://github.com/Xilinx/u-boot-xlnx/blob/master/arch/arm/dts/versal.dtsi

Good to know, but if there are upstream dts files, what do they use?

> Driver itself is working with reg-names and order of regs doesn't matter. It
> means changed order doesn't break any functionality.

While in general I consider the order part of the ABI, if that's
enough to avoid breakage on anything you care about, then just state
that.

> Right now reg order really matter in binding doc but would be good in these
> examples to record that both ways are fine.
> Would it be better to describe that both ways are fine?

Only if that's what you need. If you are fine with the order changing,
then make the change and fix all the dts files.

>
>    reg-names:
>      oneOf:
>      - items:
>        - const: cfg
>        - const: cpm_slcr
>      - items:
>        - const: cpm_slcr
>        - const: cfg
>
>
> Another small reason is that all hard IPs in Versal are normally placed below
> 4GB address range. And there are some others which also have mapping above. This
> is one of that example and we normally aligned with 32bit address.
>
> And the biggest reason is that current node name is pcie@fca10000 which should
> be aligned with the first register base which is before this patch 0x600000000
> but name suggest that the first reg should be cpm_slcr instead of cfg. That's
> why I consider this patch as a fix and the patch should contain fixed tag.

I don't disagree. I'm only asking for a better commit message.

Rob
Michal Simek May 10, 2022, 5:18 p.m. UTC | #5
Hi Rob,

On 5/10/22 18:00, Rob Herring wrote:
> On Tue, May 10, 2022 at 2:29 AM Michal Simek <michal.simek@xilinx.com> wrote:
>>
>>
>>
>> On 5/4/22 17:43, Rob Herring wrote:
>>> On Fri, Apr 29, 2022 at 8:02 AM Bharat Kumar Gogada
>>> <bharat.kumar.gogada@xilinx.com> wrote:
>>>>
>>>> Describe cpm reg property before cfg reg property to align with
>>>> node name.
>>>
>>> The order is an ABI. If breaking it is okay, explain why here.
>>
>> I didn't push any description for versal to upstream u-boot or linux yet but
>> xilinx is using this order for years. DT binding order wasn't aligned to it.
>>
>> For example: (Xilinx Linux is in sync with this).
>> https://github.com/Xilinx/u-boot-xlnx/blob/master/arch/arm/dts/versal.dtsi
> 
> Good to know, but if there are upstream dts files, what do they use?

I didn't push any versal DTs. But origin source are my xilinx repos where we 
have this order:

reg = <0x0 0xfca10000 0x0 0x1000>, <0x6 0x00000000 0x0 0x1000000>;


> 
>> Driver itself is working with reg-names and order of regs doesn't matter. It
>> means changed order doesn't break any functionality.
> 
> While in general I consider the order part of the ABI, if that's
> enough to avoid breakage on anything you care about, then just state
> that.

right.

> 
>> Right now reg order really matter in binding doc but would be good in these
>> examples to record that both ways are fine.
>> Would it be better to describe that both ways are fine?
> 
> Only if that's what you need. If you are fine with the order changing,
> then make the change and fix all the dts files.

I structure DT files in a way that we have versal.dtsi as description for all 
fixed peripherals. All platforms, boards are just sourcing it. That's why change 
is simple but this issue is really just in dt binding doc than our dts file 
which all uses order mentioned above.


>>
>>     reg-names:
>>       oneOf:
>>       - items:
>>         - const: cfg
>>         - const: cpm_slcr
>>       - items:
>>         - const: cpm_slcr
>>         - const: cfg
>>
>>
>> Another small reason is that all hard IPs in Versal are normally placed below
>> 4GB address range. And there are some others which also have mapping above. This
>> is one of that example and we normally aligned with 32bit address.
>>
>> And the biggest reason is that current node name is pcie@fca10000 which should
>> be aligned with the first register base which is before this patch 0x600000000
>> but name suggest that the first reg should be cpm_slcr instead of cfg. That's
>> why I consider this patch as a fix and the patch should contain fixed tag.
> 
> I don't disagree. I'm only asking for a better commit message.

Great.
Bharat: Please update commit message and sent new version.

Thanks,
Michal
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
index 32f4641085bc..cca395317a4c 100644
--- a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
+++ b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
@@ -18,13 +18,13 @@  properties:
 
   reg:
     items:
-      - description: Configuration space region and bridge registers.
       - description: CPM system level control and status registers.
+      - description: Configuration space region and bridge registers.
 
   reg-names:
     items:
-      - const: cfg
       - const: cpm_slcr
+      - const: cfg
 
   interrupts:
     maxItems: 1
@@ -86,9 +86,9 @@  examples:
                        ranges = <0x02000000 0x0 0xe0000000 0x0 0xe0000000 0x0 0x10000000>,
                                 <0x43000000 0x80 0x00000000 0x80 0x00000000 0x0 0x80000000>;
                        msi-map = <0x0 &its_gic 0x0 0x10000>;
-                       reg = <0x6 0x00000000 0x0 0x10000000>,
-                             <0x0 0xfca10000 0x0 0x1000>;
-                       reg-names = "cfg", "cpm_slcr";
+                       reg = <0x0 0xfca10000 0x0 0x1000>,
+                             <0x6 0x00000000 0x0 0x10000000>;
+                       reg-names = "cpm_slcr", "cfg";
                        pcie_intc_0: interrupt-controller {
                                #address-cells = <0>;
                                #interrupt-cells = <1>;