Re: [PATCH v5 1/3] PCI: Add DT binding for tango PCIe controller
From: Mason
Date: Wed Jun 07 2017 - 18:35:29 EST
Hello Rob,
On 07/06/2017 23:29, Rob Herring wrote:
> On Wed, May 31, 2017 at 03:30:26PM +0200, Marc Gonzalez wrote:
>> Binding for the Sigma Designs SMP8759 SoC.
>>
>> Signed-off-by: Marc Gonzalez <marc_gonzalez@xxxxxxxxxxxxxxxx>
>> ---
>> Documentation/devicetree/bindings/pci/tango-pcie.txt | 30 ++++++++++++++++++++++++++++++
>> 1 file changed, 30 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/pci/tango-pcie.txt b/Documentation/devicetree/bindings/pci/tango-pcie.txt
>> new file mode 100644
>> index 000000000000..35ef2c811a27
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/pci/tango-pcie.txt
>> @@ -0,0 +1,30 @@
>> +Sigma Designs Tango PCIe controller
>> +
>> +Required properties:
>> +
>> +- compatible: "sigma,smp8759-pcie"
>> +- reg: address/size of PCI configuration space, address/size of register area
>> +- device_type: "pci"
>> +- #size-cells: <2>
>> +- #address-cells: <3>
>> +- msi-controller
>> +- ranges: translation from system to bus addresses
>> +- interrupts: spec for misc interrupts, spec for MSI
>> +
>> +http://elinux.org/Device_Tree_Usage#PCI_Address_Translation
>> +http://elinux.org/Device_Tree_Usage#Advanced_Interrupt_Mapping
>
> Why are these here?
I found these references very helpful when writing the node.
Where would you put them? In the example?
> There's several standard properties you are missing like bus-range.
My reasoning for omitting "bus-range" was that the PCI core computes
it by itself (1M per "bus" so SZ_4M => 4 devices). I thought redundant
information was bad form?
> Build your dts with "W=2". dtc recently gained some checks for PCI
> bindings.
I'll give it a try. Did v4.9 already support it?
>> +Example:
>> +
>> + pcie@2e000 {
>> + compatible = "sigma,smp8759-pcie";
>> + reg = <0x50000000 SZ_4M>, <0x2e000 0x100>;
>> + device_type = "pci";
>> + #size-cells = <2>;
>> + #address-cells = <3>;
>> + msi-controller;
>> + ranges = <0x02000000 0x0 0x00400000 0x50400000 0x0 SZ_60M>;
>
> I don't think SZ_60M exists or is available to dts files. Just put the
> number in.
I #defined it at the top of my DTS.
Using symbolic constants in DTS is not acceptable?
Thanks for having a look.
Regards.