On Wed, Jan 22, 2025 at 08:52:39PM +0800, Chen Wang wrote: > > On 2025/1/19 19:44, Manivannan Sadhasivam wrote: > > On Wed, Jan 15, 2025 at 03:06:37PM +0800, Chen Wang wrote: > > > From: Chen Wang <unicorn_wang@xxxxxxxxxxx> > > > > > > Add binding for Sophgo SG2042 PCIe host controller. > > > > > > Signed-off-by: Chen Wang <unicorn_wang@xxxxxxxxxxx> > > > --- > > > .../bindings/pci/sophgo,sg2042-pcie-host.yaml | 147 ++++++++++++++++++ > > > 1 file changed, 147 insertions(+) > > > create mode 100644 Documentation/devicetree/bindings/pci/sophgo,sg2042-pcie-host.yaml > > [......] > > > > +examples: > > > + - | > > > + #include <dt-bindings/interrupt-controller/irq.h> > > > + > > > + pcie@62000000 { > > > + compatible = "sophgo,sg2042-pcie-host"; > > > + device_type = "pci"; > > > + reg = <0x62000000 0x00800000>, > > > + <0x48000000 0x00001000>; > > Use single space between address and size. > ok, thanks. > > > + reg-names = "reg", "cfg"; > > > + #address-cells = <3>; > > > + #size-cells = <2>; > > > + ranges = <0x81000000 0 0x00000000 0xde000000 0 0x00010000>, > > > + <0x82000000 0 0xd0400000 0xd0400000 0 0x0d000000>; > > For sure you don't need to set 'relocatable' flag for both regions. > ok, I will correct this in next version. > > > + bus-range = <0x00 0xff>; > > > + vendor-id = <0x1f1c>; > > > + device-id = <0x2042>; > > As Bjorn explained in v2, these properties need to be moved to PCI root port > > node. Your argument of a single root port node for a host bridge doesn't add as > > we have found that describing the root port properties in host bridge only > > creates issues. > > Got it. I will try to change this in next version. > > > Btw, we are migrating the existing single RP platforms too to root port node. > > > > > + cdns,no-bar-match-nbits = <48>; > > > + sophgo,link-id = <0>; > > > + sophgo,syscon-pcie-ctrl = <&cdns_pcie1_ctrl>; > > Where is the num-lanes property? > Is this num-lanes a must-have property? The lane number of each link on the > SG2042 is hard-coded in the firmware, so it seems meaningless to configure > it. It is not a requirement, but most of the controllers define it so that the drivers can use it to set Max Link Width, Link speed etc.... You can skip it if you want. > > > + msi-parent = <&msi_pcie>; > > > + msi_pcie: msi { > > 'msi' is not a standard node name. 'interrupt-controller' is what usually used > > to describe the MSI node. > OK. I will corret this. There is also 'msi-controller' node name used commonly, but it is not documented in the devicetree spec. Maybe you can use it instead and I'll add it to the spec since MSI and interrupt controllers are two distinct controllers. > > Btw, is the MSI controller a separate IP inside the host bridge? If not, there > > would no need to add a separate node. Most of the host bridge IPs implementing > > MSI controller, do not use a separate node. > > Yes, it's a separated IP inside the host bridge. > Ok. -- மணிவண்ணன் சதாசிவம்