[PATCH V226/7] dt-bindings: PCI: host-generic-pci: Add snps,dw-pcie-ecam-msi binding

Krzysztof Kozlowski krzk at kernel.org
Tue Jul 16 23:47:27 PDT 2024


On 17/07/2024 00:09, Mayank Rana wrote:
> Hi Krzysztof
> 
> On 7/16/2024 12:28 AM, Krzysztof Kozlowski wrote:
>> On 15/07/2024 20:13, Mayank Rana wrote:
>>> To support MSI functionality using Synopsys DesignWare PCIe controller
>>> based MSI controller with ECAM driver, add "snps,dw-pcie-ecam-msi
>>> compatible binding which uses provided SPIs to support MSI functionality.
>>
>> To support MSI, you add MSI support... That's a tautology. Describe
>> hardware instead.
> Ok. let me repharse it to provide more useful information.
>>>
>>> Signed-off-by: Mayank Rana <quic_mrana at quicinc.com>
>>> ---
>>>   .../devicetree/bindings/pci/host-generic-pci.yaml  | 57 ++++++++++++++++++++++
>>>   1 file changed, 57 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/pci/host-generic-pci.yaml b/Documentation/devicetree/bindings/pci/host-generic-pci.yaml
>>> index 9c714fa..9e860d5 100644
>>> --- a/Documentation/devicetree/bindings/pci/host-generic-pci.yaml
>>> +++ b/Documentation/devicetree/bindings/pci/host-generic-pci.yaml
>>> @@ -81,6 +81,12 @@ properties:
>>>                 - marvell,armada8k-pcie-ecam
>>>                 - socionext,synquacer-pcie-ecam
>>>             - const: snps,dw-pcie-ecam
>>> +      - description: |
>>> +         Firmware is configuring Synopsys DesignWare PCIe controller in RC mode with
>>> +         ECAM compatible fashion. To use MSI controller of Synopsys DesignWare PCIe
>>> +         controller for MSI functionality, this compatible is used.
>>> +        items:
>>> +          - const: snps,dw-pcie-ecam-msi
>>
>> MSI is already present in the binding, isn't it? 
> It is mentioning as msi-parent usage which could be different MSI 
> controller (GIC or vendor specific one) not related to designware PCIe 
> controller based MSI controller.
> 
>> Anyway, aren't you
>> forgetting specific compatible? Please open your internal (quite
>> comprehensive) guideline on bindings and DTS.
> Here I am trying to define Designware based PCIe ECAM controller 
> supporting MSIcontroller based device. Hence I am not mentioning vendor 
> specific compatible usage
> and keeping generic compatible binding for such device.

I know what you try, yet it feels simply wrong. Read your guideline.
Are you sure you work on Designware core itself, not on one used in
Qualcomm? I would expect people from Designware to design Designware
cores and people from Qualcomm only to design licensed cores.

>>
>>>         - description:
>>>             CAM or ECAM compliant PCI host controllers without any quirks
>>>           enum:
>>> @@ -116,6 +122,20 @@ properties:
>>>         A phandle to the node that controls power or/and system resource or interface to firmware
>>>         to enable ECAM compliant PCIe root complex.
>>>   
>>> +  interrupts:
>>> +    description:
>>> +      DWC PCIe Root Port/Complex specific MSI interrupt/IRQs.
>>> +    minItems: 1
>>> +    maxItems: 8
>>> +
>>> +  interrupt-names:
>>> +    description:
>>> +      MSI interrupt names
>>> +    minItems: 1
>>> +    maxItems: 8
>>> +    items:
>>> +        pattern: '^msi[0-9]+$'
>>
>> Why the same devices have variable numbers?
> Max supported MSI with designware PCIe controller is 8 Only, and it 
> depends if those all are
> used or some of used on specific vendor based device. Hence I have kept 
> it here variable names. Although here it should be [0 - 7] instead of
> [0 - 9].

Wait, you just said there is no specific vendor device.

Sorry, bring some sanity to this.

Best regards,
Krzysztof




More information about the linux-arm-kernel mailing list