2023-09-20 16:01:53

by Mrinmay Sarkar

[permalink] [raw]
Subject: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC

Add devicetree bindings support for SA8775P SoC.
Define reg and interrupt per platform.

Signed-off-by: Mrinmay Sarkar <[email protected]>
---
.../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130 +++++++++++++++++----
1 file changed, 108 insertions(+), 22 deletions(-)

diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
index a223ce0..e860e8f 100644
--- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
+++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
@@ -13,6 +13,7 @@ properties:
compatible:
oneOf:
- enum:
+ - qcom,sa8775p-pcie-ep
- qcom,sdx55-pcie-ep
- qcom,sm8450-pcie-ep
- items:
@@ -20,29 +21,19 @@ properties:
- const: qcom,sdx55-pcie-ep

reg:
- items:
- - description: Qualcomm-specific PARF configuration registers
- - description: DesignWare PCIe registers
- - description: External local bus interface registers
- - description: Address Translation Unit (ATU) registers
- - description: Memory region used to map remote RC address space
- - description: BAR memory region
+ minItems: 6
+ maxItems: 7

reg-names:
- items:
- - const: parf
- - const: dbi
- - const: elbi
- - const: atu
- - const: addr_space
- - const: mmio
+ minItems: 6
+ maxItems: 7

clocks:
- minItems: 7
+ minItems: 5
maxItems: 8

clock-names:
- minItems: 7
+ minItems: 5
maxItems: 8

qcom,perst-regs:
@@ -57,14 +48,12 @@ properties:
- description: Perst separation enable offset

interrupts:
- items:
- - description: PCIe Global interrupt
- - description: PCIe Doorbell interrupt
+ minItems: 2
+ maxItems: 3

interrupt-names:
- items:
- - const: global
- - const: doorbell
+ minItems: 2
+ maxItems: 3

reset-gpios:
description: GPIO used as PERST# input signal
@@ -122,6 +111,51 @@ allOf:
compatible:
contains:
enum:
+ - qcom,sa8775p-pcie-ep
+ then:
+ properties:
+ reg:
+ items:
+ - description: Qualcomm-specific PARF configuration registers
+ - description: DesignWare PCIe registers
+ - description: External local bus interface registers
+ - description: Address Translation Unit (ATU) registers
+ - description: Memory region used to map remote RC address space
+ - description: BAR memory region
+ - description: DMA memory region
+ reg-names:
+ items:
+ - const: parf
+ - const: dbi
+ - const: elbi
+ - const: atu
+ - const: addr_space
+ - const: mmio
+ - const: dma
+ else:
+ properties:
+ reg:
+ items:
+ - description: Qualcomm-specific PARF configuration registers
+ - description: DesignWare PCIe registers
+ - description: External local bus interface registers
+ - description: Address Translation Unit (ATU) registers
+ - description: Memory region used to map remote RC address space
+ - description: BAR memory region
+ reg-names:
+ items:
+ - const: parf
+ - const: dbi
+ - const: elbi
+ - const: atu
+ - const: addr_space
+ - const: mmio
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
- qcom,sdx55-pcie-ep
then:
properties:
@@ -173,6 +207,58 @@ allOf:
- const: ddrss_sf_tbu
- const: aggre_noc_axi

+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sa8775-pcie-ep
+ then:
+ properties:
+ clocks:
+ items:
+ - description: PCIe Auxiliary clock
+ - description: PCIe CFG AHB clock
+ - description: PCIe Master AXI clock
+ - description: PCIe Slave AXI clock
+ - description: PCIe Slave Q2A AXI clock
+ clock-names:
+ items:
+ - const: aux
+ - const: cfg
+ - const: bus_master
+ - const: bus_slave
+ - const: slave_q2a
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sa8775p-pcie-ep
+ then:
+ properties:
+ interrupts:
+ items:
+ - description: PCIe Global interrupt
+ - description: PCIe Doorbell interrupt
+ - description: DMA interrupt
+ interrupt-names:
+ items:
+ - const: global
+ - const: doorbell
+ - const: dma
+ else:
+ properties:
+ interrupts:
+ items:
+ - description: PCIe Global interrupt
+ - description: PCIe Doorbell interrupt
+ interrupt-names:
+ items:
+ - const: global
+ - const: doorbell
+
unevaluatedProperties: false

examples:
--
2.7.4


2023-09-21 18:43:54

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC

On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
> Add devicetree bindings support for SA8775P SoC.
> Define reg and interrupt per platform.
>
> Signed-off-by: Mrinmay Sarkar <[email protected]>
> ---
> .../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130 +++++++++++++++++----
> 1 file changed, 108 insertions(+), 22 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> index a223ce0..e860e8f 100644
> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> @@ -13,6 +13,7 @@ properties:
> compatible:
> oneOf:
> - enum:
> + - qcom,sa8775p-pcie-ep
> - qcom,sdx55-pcie-ep
> - qcom,sm8450-pcie-ep
> - items:
> @@ -20,29 +21,19 @@ properties:
> - const: qcom,sdx55-pcie-ep
>
> reg:
> - items:
> - - description: Qualcomm-specific PARF configuration registers
> - - description: DesignWare PCIe registers
> - - description: External local bus interface registers
> - - description: Address Translation Unit (ATU) registers
> - - description: Memory region used to map remote RC address space
> - - description: BAR memory region
> + minItems: 6
> + maxItems: 7
>
> reg-names:
> - items:
> - - const: parf
> - - const: dbi
> - - const: elbi
> - - const: atu
> - - const: addr_space
> - - const: mmio
> + minItems: 6
> + maxItems: 7

Don't move these into if/then schemas. Then we are duplicating the
names, and there is no reason to keep them aligned for new compatibles.

Rob

2023-09-21 21:17:29

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC

On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
> Add devicetree bindings support for SA8775P SoC.
> Define reg and interrupt per platform.
>
> Signed-off-by: Mrinmay Sarkar <[email protected]>
> ---
> .../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130 +++++++++++++++++----
> 1 file changed, 108 insertions(+), 22 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> index a223ce0..e860e8f 100644
> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> @@ -13,6 +13,7 @@ properties:
> compatible:
> oneOf:
> - enum:
> + - qcom,sa8775p-pcie-ep
> - qcom,sdx55-pcie-ep
> - qcom,sm8450-pcie-ep
> - items:
> @@ -20,29 +21,19 @@ properties:
> - const: qcom,sdx55-pcie-ep
>
> reg:
> - items:
> - - description: Qualcomm-specific PARF configuration registers
> - - description: DesignWare PCIe registers
> - - description: External local bus interface registers
> - - description: Address Translation Unit (ATU) registers
> - - description: Memory region used to map remote RC address space
> - - description: BAR memory region
> + minItems: 6
> + maxItems: 7
>
> reg-names:
> - items:
> - - const: parf
> - - const: dbi
> - - const: elbi
> - - const: atu
> - - const: addr_space
> - - const: mmio
> + minItems: 6
> + maxItems: 7
>
> clocks:
> - minItems: 7
> + minItems: 5
> maxItems: 8
>
> clock-names:
> - minItems: 7
> + minItems: 5
> maxItems: 8
>
> qcom,perst-regs:
> @@ -57,14 +48,12 @@ properties:
> - description: Perst separation enable offset
>
> interrupts:
> - items:
> - - description: PCIe Global interrupt
> - - description: PCIe Doorbell interrupt
> + minItems: 2
> + maxItems: 3
>
> interrupt-names:
> - items:
> - - const: global
> - - const: doorbell
> + minItems: 2
> + maxItems: 3
>
> reset-gpios:
> description: GPIO used as PERST# input signal
> @@ -122,6 +111,51 @@ allOf:
> compatible:
> contains:
> enum:
> + - qcom,sa8775p-pcie-ep
> + then:
> + properties:
> + reg:
> + items:
> + - description: Qualcomm-specific PARF configuration registers
> + - description: DesignWare PCIe registers
> + - description: External local bus interface registers
> + - description: Address Translation Unit (ATU) registers
> + - description: Memory region used to map remote RC address space
> + - description: BAR memory region
> + - description: DMA memory region

It should be described as "DMA register space" or something, because this could
be misinterpreted as memory region for doing DMA.

- Mani

--
மணிவண்ணன் சதாசிவம்

2023-10-06 10:57:42

by Shazad Hussain

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC



On 9/22/2023 12:08 AM, Rob Herring wrote:
> On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
>> Add devicetree bindings support for SA8775P SoC.
>> Define reg and interrupt per platform.
>>
>> Signed-off-by: Mrinmay Sarkar <[email protected]>
>> ---
>> .../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130 +++++++++++++++++----
>> 1 file changed, 108 insertions(+), 22 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>> index a223ce0..e860e8f 100644
>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>> @@ -13,6 +13,7 @@ properties:
>> compatible:
>> oneOf:
>> - enum:
>> + - qcom,sa8775p-pcie-ep
>> - qcom,sdx55-pcie-ep
>> - qcom,sm8450-pcie-ep
>> - items:
>> @@ -20,29 +21,19 @@ properties:
>> - const: qcom,sdx55-pcie-ep
>>
>> reg:
>> - items:
>> - - description: Qualcomm-specific PARF configuration registers
>> - - description: DesignWare PCIe registers
>> - - description: External local bus interface registers
>> - - description: Address Translation Unit (ATU) registers
>> - - description: Memory region used to map remote RC address space
>> - - description: BAR memory region
>> + minItems: 6
>> + maxItems: 7
>>
>> reg-names:
>> - items:
>> - - const: parf
>> - - const: dbi
>> - - const: elbi
>> - - const: atu
>> - - const: addr_space
>> - - const: mmio
>> + minItems: 6
>> + maxItems: 7
>
> Don't move these into if/then schemas. Then we are duplicating the
> names, and there is no reason to keep them aligned for new compatibles.
>
> Rob

Hi Rob,
As we have one extra reg property (dma) required for sa8775p-pcie-ep,
isn't it expected to be moved in if/then as per number of regs
required. Anyways we would have duplication of some properties for new
compatibles where the member numbers differs for a property.

Are you suggesting to add the extra reg property (dma) in the existing
reg and reg-names list, and add minItems/maxItems for all compatibles
present in this file ?

-Shazad

2023-10-11 11:14:43

by Mrinmay Sarkar

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC


On 10/6/2023 4:24 PM, Shazad Hussain wrote:
>
>
> On 9/22/2023 12:08 AM, Rob Herring wrote:
>> On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
>>> Add devicetree bindings support for SA8775P SoC.
>>> Define reg and interrupt per platform.
>>>
>>> Signed-off-by: Mrinmay Sarkar <[email protected]>
>>> ---
>>>   .../devicetree/bindings/pci/qcom,pcie-ep.yaml      | 130
>>> +++++++++++++++++----
>>>   1 file changed, 108 insertions(+), 22 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>> b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>> index a223ce0..e860e8f 100644
>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>> @@ -13,6 +13,7 @@ properties:
>>>     compatible:
>>>       oneOf:
>>>         - enum:
>>> +          - qcom,sa8775p-pcie-ep
>>>             - qcom,sdx55-pcie-ep
>>>             - qcom,sm8450-pcie-ep
>>>         - items:
>>> @@ -20,29 +21,19 @@ properties:
>>>             - const: qcom,sdx55-pcie-ep
>>>       reg:
>>> -    items:
>>> -      - description: Qualcomm-specific PARF configuration registers
>>> -      - description: DesignWare PCIe registers
>>> -      - description: External local bus interface registers
>>> -      - description: Address Translation Unit (ATU) registers
>>> -      - description: Memory region used to map remote RC address space
>>> -      - description: BAR memory region
>>> +    minItems: 6
>>> +    maxItems: 7
>>>       reg-names:
>>> -    items:
>>> -      - const: parf
>>> -      - const: dbi
>>> -      - const: elbi
>>> -      - const: atu
>>> -      - const: addr_space
>>> -      - const: mmio
>>> +    minItems: 6
>>> +    maxItems: 7
>>
>> Don't move these into if/then schemas. Then we are duplicating the
>> names, and there is no reason to keep them aligned for new compatibles.
>>
>> Rob
>
> Hi Rob,
> As we have one extra reg property (dma) required for sa8775p-pcie-ep,
> isn't it expected to be moved in if/then as per number of regs
> required. Anyways we would have duplication of some properties for new
> compatibles where the member numbers differs for a property.
>
> Are you suggesting to add the extra reg property (dma) in the existing
> reg and reg-names list, and add minItems/maxItems for all compatibles
> present in this file ?
>
> -Shazad

Here we have defined reg and interrupt per platform as clocks is defined.

-Mrinmay

2023-10-11 11:43:37

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC

On Wed, 11 Oct 2023 at 14:14, Mrinmay Sarkar <[email protected]> wrote:
>
>
> On 10/6/2023 4:24 PM, Shazad Hussain wrote:
> >
> >
> > On 9/22/2023 12:08 AM, Rob Herring wrote:
> >> On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
> >>> Add devicetree bindings support for SA8775P SoC.
> >>> Define reg and interrupt per platform.
> >>>
> >>> Signed-off-by: Mrinmay Sarkar <[email protected]>
> >>> ---
> >>> .../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130
> >>> +++++++++++++++++----
> >>> 1 file changed, 108 insertions(+), 22 deletions(-)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>> b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>> index a223ce0..e860e8f 100644
> >>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>> @@ -13,6 +13,7 @@ properties:
> >>> compatible:
> >>> oneOf:
> >>> - enum:
> >>> + - qcom,sa8775p-pcie-ep
> >>> - qcom,sdx55-pcie-ep
> >>> - qcom,sm8450-pcie-ep
> >>> - items:
> >>> @@ -20,29 +21,19 @@ properties:
> >>> - const: qcom,sdx55-pcie-ep
> >>> reg:
> >>> - items:
> >>> - - description: Qualcomm-specific PARF configuration registers
> >>> - - description: DesignWare PCIe registers
> >>> - - description: External local bus interface registers
> >>> - - description: Address Translation Unit (ATU) registers
> >>> - - description: Memory region used to map remote RC address space
> >>> - - description: BAR memory region
> >>> + minItems: 6
> >>> + maxItems: 7
> >>> reg-names:
> >>> - items:
> >>> - - const: parf
> >>> - - const: dbi
> >>> - - const: elbi
> >>> - - const: atu
> >>> - - const: addr_space
> >>> - - const: mmio
> >>> + minItems: 6
> >>> + maxItems: 7
> >>
> >> Don't move these into if/then schemas. Then we are duplicating the
> >> names, and there is no reason to keep them aligned for new compatibles.
> >>
> >> Rob
> >
> > Hi Rob,
> > As we have one extra reg property (dma) required for sa8775p-pcie-ep,
> > isn't it expected to be moved in if/then as per number of regs
> > required. Anyways we would have duplication of some properties for new
> > compatibles where the member numbers differs for a property.
> >
> > Are you suggesting to add the extra reg property (dma) in the existing
> > reg and reg-names list, and add minItems/maxItems for all compatibles
> > present in this file ?

This is what we have been doing in other cases: if the list is an
extension of the current list, there is no need to duplicate it. One
can use min/maxItems instead.

> >
> > -Shazad
>
> Here we have defined reg and interrupt per platform as clocks is defined.
>
> -Mrinmay
>


--
With best wishes
Dmitry

2023-10-13 12:56:31

by Mrinmay Sarkar

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC


On 10/11/2023 5:13 PM, Dmitry Baryshkov wrote:
> On Wed, 11 Oct 2023 at 14:14, Mrinmay Sarkar <[email protected]> wrote:
>>
>> On 10/6/2023 4:24 PM, Shazad Hussain wrote:
>>>
>>> On 9/22/2023 12:08 AM, Rob Herring wrote:
>>>> On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
>>>>> Add devicetree bindings support for SA8775P SoC.
>>>>> Define reg and interrupt per platform.
>>>>>
>>>>> Signed-off-by: Mrinmay Sarkar <[email protected]>
>>>>> ---
>>>>> .../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130
>>>>> +++++++++++++++++----
>>>>> 1 file changed, 108 insertions(+), 22 deletions(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>>>> b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>>>> index a223ce0..e860e8f 100644
>>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>>>> @@ -13,6 +13,7 @@ properties:
>>>>> compatible:
>>>>> oneOf:
>>>>> - enum:
>>>>> + - qcom,sa8775p-pcie-ep
>>>>> - qcom,sdx55-pcie-ep
>>>>> - qcom,sm8450-pcie-ep
>>>>> - items:
>>>>> @@ -20,29 +21,19 @@ properties:
>>>>> - const: qcom,sdx55-pcie-ep
>>>>> reg:
>>>>> - items:
>>>>> - - description: Qualcomm-specific PARF configuration registers
>>>>> - - description: DesignWare PCIe registers
>>>>> - - description: External local bus interface registers
>>>>> - - description: Address Translation Unit (ATU) registers
>>>>> - - description: Memory region used to map remote RC address space
>>>>> - - description: BAR memory region
>>>>> + minItems: 6
>>>>> + maxItems: 7
>>>>> reg-names:
>>>>> - items:
>>>>> - - const: parf
>>>>> - - const: dbi
>>>>> - - const: elbi
>>>>> - - const: atu
>>>>> - - const: addr_space
>>>>> - - const: mmio
>>>>> + minItems: 6
>>>>> + maxItems: 7
>>>> Don't move these into if/then schemas. Then we are duplicating the
>>>> names, and there is no reason to keep them aligned for new compatibles.
>>>>
>>>> Rob
>>> Hi Rob,
>>> As we have one extra reg property (dma) required for sa8775p-pcie-ep,
>>> isn't it expected to be moved in if/then as per number of regs
>>> required. Anyways we would have duplication of some properties for new
>>> compatibles where the member numbers differs for a property.
>>>
>>> Are you suggesting to add the extra reg property (dma) in the existing
>>> reg and reg-names list, and add minItems/maxItems for all compatibles
>>> present in this file ?
> This is what we have been doing in other cases: if the list is an
> extension of the current list, there is no need to duplicate it. One
> can use min/maxItems instead.
Hi Dmitry

we have tried using min/maxItems rather than duplicating but somehow
catch up with some warnings in dt_bindings check

//local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
pcie-ep@1c00000: reg: [[29360128, 12288], [1073741824, 3869],
[1073745696, 200], [1073745920, 4096], [1073750016, 4096], [29372416,
12288]] is too short//
//        from schema $id:
http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
pcie-ep@1c00000: reg-names: ['parf', 'dbi', 'elbi', 'atu', 'addr_space',
'mmio'] is too short//
//        from schema $id:
http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
pcie-ep@1c00000: interrupts: [[0, 140, 4], [0, 145, 4]] is too short//
//        from schema $id:
http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
pcie-ep@1c00000: interrupt-names: ['global', 'doorbell'] is too short//
//        from schema $id:
http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
/

//local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
pcie-ep@1c00000: interrupt-names: ['global', 'doorbell'] is too short/

added the patch in attachment.

--Mrinmay

>>> -Shazad
>> Here we have defined reg and interrupt per platform as clocks is defined.
>>
>> -Mrinmay
>>
>


Attachments:
0001-dt-bindings-PCI-qcom-ep-Add-support-for-SA8775P-SoC.patch (4.07 kB)

2023-10-13 16:38:43

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC

On Fri, 13 Oct 2023 at 15:55, Mrinmay Sarkar <[email protected]> wrote:
>
>
> On 10/11/2023 5:13 PM, Dmitry Baryshkov wrote:
> > On Wed, 11 Oct 2023 at 14:14, Mrinmay Sarkar <[email protected]> wrote:
> >>
> >> On 10/6/2023 4:24 PM, Shazad Hussain wrote:
> >>>
> >>> On 9/22/2023 12:08 AM, Rob Herring wrote:
> >>>> On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
> >>>>> Add devicetree bindings support for SA8775P SoC.
> >>>>> Define reg and interrupt per platform.
> >>>>>
> >>>>> Signed-off-by: Mrinmay Sarkar <[email protected]>
> >>>>> ---
> >>>>> .../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130
> >>>>> +++++++++++++++++----
> >>>>> 1 file changed, 108 insertions(+), 22 deletions(-)
> >>>>>
> >>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>>>> b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>>>> index a223ce0..e860e8f 100644
> >>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>>>> @@ -13,6 +13,7 @@ properties:
> >>>>> compatible:
> >>>>> oneOf:
> >>>>> - enum:
> >>>>> + - qcom,sa8775p-pcie-ep
> >>>>> - qcom,sdx55-pcie-ep
> >>>>> - qcom,sm8450-pcie-ep
> >>>>> - items:
> >>>>> @@ -20,29 +21,19 @@ properties:
> >>>>> - const: qcom,sdx55-pcie-ep
> >>>>> reg:
> >>>>> - items:
> >>>>> - - description: Qualcomm-specific PARF configuration registers
> >>>>> - - description: DesignWare PCIe registers
> >>>>> - - description: External local bus interface registers
> >>>>> - - description: Address Translation Unit (ATU) registers
> >>>>> - - description: Memory region used to map remote RC address space
> >>>>> - - description: BAR memory region
> >>>>> + minItems: 6
> >>>>> + maxItems: 7
> >>>>> reg-names:
> >>>>> - items:
> >>>>> - - const: parf
> >>>>> - - const: dbi
> >>>>> - - const: elbi
> >>>>> - - const: atu
> >>>>> - - const: addr_space
> >>>>> - - const: mmio
> >>>>> + minItems: 6
> >>>>> + maxItems: 7
> >>>> Don't move these into if/then schemas. Then we are duplicating the
> >>>> names, and there is no reason to keep them aligned for new compatibles.
> >>>>
> >>>> Rob
> >>> Hi Rob,
> >>> As we have one extra reg property (dma) required for sa8775p-pcie-ep,
> >>> isn't it expected to be moved in if/then as per number of regs
> >>> required. Anyways we would have duplication of some properties for new
> >>> compatibles where the member numbers differs for a property.
> >>>
> >>> Are you suggesting to add the extra reg property (dma) in the existing
> >>> reg and reg-names list, and add minItems/maxItems for all compatibles
> >>> present in this file ?
> > This is what we have been doing in other cases: if the list is an
> > extension of the current list, there is no need to duplicate it. One
> > can use min/maxItems instead.
> Hi Dmitry
>
> we have tried using min/maxItems rather than duplicating but somehow
> catch up with some warnings in dt_bindings check
>
> //local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: reg: [[29360128, 12288], [1073741824, 3869],
> [1073745696, 200], [1073745920, 4096], [1073750016, 4096], [29372416,
> 12288]] is too short//
> // from schema $id:
> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: reg-names: ['parf', 'dbi', 'elbi', 'atu', 'addr_space',
> 'mmio'] is too short//
> // from schema $id:

missing min/maxItems for reg and reg-names

> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: interrupts: [[0, 140, 4], [0, 145, 4]] is too short//
> // from schema $id:
> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: interrupt-names: ['global', 'doorbell'] is too short//
> // from schema $id:
> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//

incorrect min/maxItems for interrupts.

> //local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: interrupt-names: ['global', 'doorbell'] is too short/
>
> added the patch in attachment.
>
> --Mrinmay
>
> >>> -Shazad
> >> Here we have defined reg and interrupt per platform as clocks is defined.
> >>
> >> -Mrinmay
> >>
> >



--
With best wishes
Dmitry

2023-10-16 04:25:35

by Mrinmay Sarkar

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC


On 10/13/2023 10:08 PM, Dmitry Baryshkov wrote:
> On Fri, 13 Oct 2023 at 15:55, Mrinmay Sarkar <[email protected]> wrote:
>>
>> On 10/11/2023 5:13 PM, Dmitry Baryshkov wrote:
>>> On Wed, 11 Oct 2023 at 14:14, Mrinmay Sarkar <[email protected]> wrote:
>>>> On 10/6/2023 4:24 PM, Shazad Hussain wrote:
>>>>> On 9/22/2023 12:08 AM, Rob Herring wrote:
>>>>>> On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
>>>>>>> Add devicetree bindings support for SA8775P SoC.
>>>>>>> Define reg and interrupt per platform.
>>>>>>>
>>>>>>> Signed-off-by: Mrinmay Sarkar <[email protected]>
>>>>>>> ---
>>>>>>> .../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130
>>>>>>> +++++++++++++++++----
>>>>>>> 1 file changed, 108 insertions(+), 22 deletions(-)
>>>>>>>
>>>>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>>>>>> b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>>>>>> index a223ce0..e860e8f 100644
>>>>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>>>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
>>>>>>> @@ -13,6 +13,7 @@ properties:
>>>>>>> compatible:
>>>>>>> oneOf:
>>>>>>> - enum:
>>>>>>> + - qcom,sa8775p-pcie-ep
>>>>>>> - qcom,sdx55-pcie-ep
>>>>>>> - qcom,sm8450-pcie-ep
>>>>>>> - items:
>>>>>>> @@ -20,29 +21,19 @@ properties:
>>>>>>> - const: qcom,sdx55-pcie-ep
>>>>>>> reg:
>>>>>>> - items:
>>>>>>> - - description: Qualcomm-specific PARF configuration registers
>>>>>>> - - description: DesignWare PCIe registers
>>>>>>> - - description: External local bus interface registers
>>>>>>> - - description: Address Translation Unit (ATU) registers
>>>>>>> - - description: Memory region used to map remote RC address space
>>>>>>> - - description: BAR memory region
>>>>>>> + minItems: 6
>>>>>>> + maxItems: 7
>>>>>>> reg-names:
>>>>>>> - items:
>>>>>>> - - const: parf
>>>>>>> - - const: dbi
>>>>>>> - - const: elbi
>>>>>>> - - const: atu
>>>>>>> - - const: addr_space
>>>>>>> - - const: mmio
>>>>>>> + minItems: 6
>>>>>>> + maxItems: 7
>>>>>> Don't move these into if/then schemas. Then we are duplicating the
>>>>>> names, and there is no reason to keep them aligned for new compatibles.
>>>>>>
>>>>>> Rob
>>>>> Hi Rob,
>>>>> As we have one extra reg property (dma) required for sa8775p-pcie-ep,
>>>>> isn't it expected to be moved in if/then as per number of regs
>>>>> required. Anyways we would have duplication of some properties for new
>>>>> compatibles where the member numbers differs for a property.
>>>>>
>>>>> Are you suggesting to add the extra reg property (dma) in the existing
>>>>> reg and reg-names list, and add minItems/maxItems for all compatibles
>>>>> present in this file ?
>>> This is what we have been doing in other cases: if the list is an
>>> extension of the current list, there is no need to duplicate it. One
>>> can use min/maxItems instead.
>> Hi Dmitry
>>
>> we have tried using min/maxItems rather than duplicating but somehow
>> catch up with some warnings in dt_bindings check
>>
>> //local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
>> pcie-ep@1c00000: reg: [[29360128, 12288], [1073741824, 3869],
>> [1073745696, 200], [1073745920, 4096], [1073750016, 4096], [29372416,
>> 12288]] is too short//
>> // from schema $id:
>> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
>> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
>> pcie-ep@1c00000: reg-names: ['parf', 'dbi', 'elbi', 'atu', 'addr_space',
>> 'mmio'] is too short//
>> // from schema $id:
> missing min/maxItems for reg and reg-names
>
>> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
>> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
>> pcie-ep@1c00000: interrupts: [[0, 140, 4], [0, 145, 4]] is too short//
>> // from schema $id:
>> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
>> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
>> pcie-ep@1c00000: interrupt-names: ['global', 'doorbell'] is too short//
>> // from schema $id:
>> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
> incorrect min/maxItems for interrupts.
I am getting the same warnings even after correcting the min/maxItems
for interrupt.
> -Mrinmay
>> //local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
>> pcie-ep@1c00000: interrupt-names: ['global', 'doorbell'] is too short/
>>
>> added the patch in attachment.
>>
>> --Mrinmay
>>
>>>>> -Shazad
>>>> Here we have defined reg and interrupt per platform as clocks is defined.
>>>>
>>>> -Mrinmay
>>>>
>
>

2023-10-16 05:19:37

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v1 1/5] dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC

On Fri, 13 Oct 2023 at 15:55, Mrinmay Sarkar <[email protected]> wrote:
>
>
> On 10/11/2023 5:13 PM, Dmitry Baryshkov wrote:
> > On Wed, 11 Oct 2023 at 14:14, Mrinmay Sarkar <[email protected]> wrote:
> >>
> >> On 10/6/2023 4:24 PM, Shazad Hussain wrote:
> >>>
> >>> On 9/22/2023 12:08 AM, Rob Herring wrote:
> >>>> On Wed, Sep 20, 2023 at 07:25:08PM +0530, Mrinmay Sarkar wrote:
> >>>>> Add devicetree bindings support for SA8775P SoC.
> >>>>> Define reg and interrupt per platform.
> >>>>>
> >>>>> Signed-off-by: Mrinmay Sarkar <[email protected]>
> >>>>> ---
> >>>>> .../devicetree/bindings/pci/qcom,pcie-ep.yaml | 130
> >>>>> +++++++++++++++++----
> >>>>> 1 file changed, 108 insertions(+), 22 deletions(-)
> >>>>>
> >>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>>>> b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>>>> index a223ce0..e860e8f 100644
> >>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
> >>>>> @@ -13,6 +13,7 @@ properties:
> >>>>> compatible:
> >>>>> oneOf:
> >>>>> - enum:
> >>>>> + - qcom,sa8775p-pcie-ep
> >>>>> - qcom,sdx55-pcie-ep
> >>>>> - qcom,sm8450-pcie-ep
> >>>>> - items:
> >>>>> @@ -20,29 +21,19 @@ properties:
> >>>>> - const: qcom,sdx55-pcie-ep
> >>>>> reg:
> >>>>> - items:
> >>>>> - - description: Qualcomm-specific PARF configuration registers
> >>>>> - - description: DesignWare PCIe registers
> >>>>> - - description: External local bus interface registers
> >>>>> - - description: Address Translation Unit (ATU) registers
> >>>>> - - description: Memory region used to map remote RC address space
> >>>>> - - description: BAR memory region
> >>>>> + minItems: 6
> >>>>> + maxItems: 7
> >>>>> reg-names:
> >>>>> - items:
> >>>>> - - const: parf
> >>>>> - - const: dbi
> >>>>> - - const: elbi
> >>>>> - - const: atu
> >>>>> - - const: addr_space
> >>>>> - - const: mmio
> >>>>> + minItems: 6
> >>>>> + maxItems: 7
> >>>> Don't move these into if/then schemas. Then we are duplicating the
> >>>> names, and there is no reason to keep them aligned for new compatibles.
> >>>>
> >>>> Rob
> >>> Hi Rob,
> >>> As we have one extra reg property (dma) required for sa8775p-pcie-ep,
> >>> isn't it expected to be moved in if/then as per number of regs
> >>> required. Anyways we would have duplication of some properties for new
> >>> compatibles where the member numbers differs for a property.
> >>>
> >>> Are you suggesting to add the extra reg property (dma) in the existing
> >>> reg and reg-names list, and add minItems/maxItems for all compatibles
> >>> present in this file ?
> > This is what we have been doing in other cases: if the list is an
> > extension of the current list, there is no need to duplicate it. One
> > can use min/maxItems instead.
> Hi Dmitry
>
> we have tried using min/maxItems rather than duplicating but somehow
> catch up with some warnings in dt_bindings check
>
> //local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: reg: [[29360128, 12288], [1073741824, 3869],
> [1073745696, 200], [1073745920, 4096], [1073750016, 4096], [29372416,
> 12288]] is too short//
> // from schema $id:
> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: reg-names: ['parf', 'dbi', 'elbi', 'atu', 'addr_space',
> 'mmio'] is too short//
> // from schema $id:
> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: interrupts: [[0, 140, 4], [0, 145, 4]] is too short//
> // from schema $id:
> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
> ///local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: interrupt-names: ['global', 'doorbell'] is too short//
> // from schema $id:
> http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#//
> /
>
> //local/mnt/workspace/Mrinmay/lemans/next-20230914/linux-next/out/Documentation/devicetree/bindings/pci/qcom,pcie-ep.example.dtb:
> pcie-ep@1c00000: interrupt-names: ['global', 'doorbell'] is too short/
>
> added the patch in attachment.

Please, don't send patches as attachments. It is impossible to comment on it.

So, few points I had to fix to make your patch to work:

- Please, understand the difference between enum and items. You'd need
to add your compat string to only one of them. Or to a new entry. But
adding it to both entries is a definite mistake.

- You have extended items for existing platforms (reg, reg-names,
interrupts, interrupt-names). However you failed to add corresponding
minItems, allowing existing platforms to use the list with less items
in it.

- You do not need to have maxItems:N, minItems:N with the same value.
Please drop these minItems, it is the default.

- You haven't reviewed the patch on your own. You have erroneously
nested 'properties' clauses in two places.

$ git diff --stat
Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml | 33
+++++++++++----------------------
1 file changed, 11 insertions(+), 22 deletions(-)

Hope this helps.

--
With best wishes
Dmitry