dts: add ls2088a and 1088a pcie DT nodes
Subsystems (2)
v2 cover dts: add ls2088a and 1088a pcie DT nodes
From: Hou Zhiqiang <[email protected]>
Add GICv3 ITS DT node for ls1088a, because the PCIe nodes must have a msi-parent.
Hou Zhiqiang (3):
dts: ls2088a: add pcie support
dts: ls1088a: add gicv3 ITS DT node
dts: ls1088a: add PCIe controller DT nodes
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 81 ++++++++++++++++++++++++++ arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi | 4 ++ 2 files changed, 85 insertions(+)
Signature · 1 line
2.1.0.27.g96db324
PATCH v2 1/3 dts: ls2088a: add pcie support
From: Hou Zhiqiang <[email protected]>
The physical memory map address and CCSR registers map address are different between LS2088A and other LS2080A series SoCs.
---
V2:
- None
arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi +4 -0
@@ -134,6 +134,7 @@ }; &pcie1 { + compatible = "fsl,ls2088a-pcie", "snps,dw-pcie"; reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */ 0x20 0x00000000 0x0 0x00002000>; /* configuration space */
@@ -142,6 +143,7 @@ }; &pcie2 { + compatible = "fsl,ls2088a-pcie", "snps,dw-pcie"; reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */ 0x28 0x00000000 0x0 0x00002000>; /* configuration space */
@@ -150,6 +152,7 @@ }; &pcie3 { + compatible = "fsl,ls2088a-pcie", "snps,dw-pcie"; reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */ 0x30 0x00000000 0x0 0x00002000>; /* configuration space */
@@ -158,6 +161,7 @@ }; &pcie4 { + compatible = "fsl,ls2088a-pcie", "snps,dw-pcie"; reg = <0x00 0x03700000 0x0 0x00100000 /* controller registers */ 0x38 0x00000000 0x0 0x00002000>; /* configuration space */
Signature · 1 line
2.1.0.27.g96db324
PATCH v2 2/3 dts: ls1088a: add gicv3 ITS DT node
In reply to Zhiqiang HouFrom: Hou Zhiqiang <[email protected]>
Add ITS device tree node, which will be used by PCIe controller.
---
V2:
- None
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+)
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +9 -0
@@ -126,6 +126,15 @@ <0x0 0x0c0d0000 0 0x1000>, /* GICH */ <0x0 0x0c0e0000 0 0x20000>; /* GICV */ interrupts = <1 9 IRQ_TYPE_LEVEL_HIGH>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + its: gic-its at 6020000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x0 0x6020000 0 0x20000>; + }; }; timer {
Signature · 1 line
2.1.0.27.g96db324
PATCH v2 3/3 dts: ls1088a: add PCIe controller DT nodes
In reply to Zhiqiang HouFrom: Hou Zhiqiang <[email protected]>
The LS1088a implements 3 PCIe 3.0 controllers.
---
V2:
- Remove the "fsl,ls2088a-pcie" from the compatible list.
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 72 ++++++++++++++++++++++++++ 1 file changed, 72 insertions(+)
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +72 -0
@@ -378,6 +378,78 @@ dma-coherent; status = "disabled"; }; + pcie at 3400000 { + compatible = "fsl,ls1088a-pcie", "snps,dw-pcie"; + reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */ + 0x20 0x00000000 0x0 0x00002000>; /* configuration space */ + reg-names = "regs", "config"; + interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */ + interrupt-names = "aer"; + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + dma-coherent; + num-lanes = <4>; + bus-range = <0x0 0xff>; + ranges = <0x81000000 0x0 0x00000000 0x20 0x00010000 0x0 0x00010000 /* downstream I/O */ + 0x82000000 0x0 0x40000000 0x20 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ + msi-parent = <&its>; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0000 0 0 1 &gic 0 0 0 109 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 2 &gic 0 0 0 110 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 3 &gic 0 0 0 111 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 4 &gic 0 0 0 112 IRQ_TYPE_LEVEL_HIGH>; + }; + + pcie at 3500000 { + compatible = "fsl,ls1088a-pcie", "snps,dw-pcie"; + reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */ + 0x28 0x00000000 0x0 0x00002000>; /* configuration space */ + reg-names = "regs", "config"; + interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */ + interrupt-names = "aer"; + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + dma-coherent; + num-lanes = <4>; + bus-range = <0x0 0xff>; + ranges = <0x81000000 0x0 0x00000000 0x28 0x00010000 0x0 0x00010000 /* downstream I/O */ + 0x82000000 0x0 0x40000000 0x28 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ + msi-parent = <&its>; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0000 0 0 1 &gic 0 0 0 114 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 2 &gic 0 0 0 115 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 3 &gic 0 0 0 116 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 4 &gic 0 0 0 117 IRQ_TYPE_LEVEL_HIGH>; + }; + + pcie at 3600000 { + compatible = "fsl,ls1088a-pcie", "snps,dw-pcie"; + reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */ + 0x30 0x00000000 0x0 0x00002000>; /* configuration space */ + reg-names = "regs", "config"; + interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */ + interrupt-names = "aer"; + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + dma-coherent; + num-lanes = <8>; + bus-range = <0x0 0xff>; + ranges = <0x81000000 0x0 0x00000000 0x30 0x00010000 0x0 0x00010000 /* downstream I/O */ + 0x82000000 0x0 0x40000000 0x30 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ + msi-parent = <&its>; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0000 0 0 1 &gic 0 0 0 119 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 2 &gic 0 0 0 120 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 3 &gic 0 0 0 121 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 4 &gic 0 0 0 122 IRQ_TYPE_LEVEL_HIGH>; + }; + }; };
Signature · 1 line
2.1.0.27.g96db324
v2 cover dts: add ls2088a and 1088a pcie DT nodes
In reply to Zhiqiang HouQuoted 9 lines · Zhiqiang Hou
From: Hou Zhiqiang <[email protected]>
Add GICv3 ITS DT node for ls1088a, because the PCIe nodes must have a msi-parent.
Hou Zhiqiang (3):
dts: ls2088a: add pcie support
dts: ls1088a: add gicv3 ITS DT node
dts: ls1088a: add PCIe controller DT nodes
Please have an additional 'arm64: ' prefix for these arm64 dts patches.
Shawn
Quoted 4 lines
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 81 ++++++++++++++++++++++++++ arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi | 4 ++ 2 files changed, 85 insertions(+)
v2 cover dts: add ls2088a and 1088a pcie DT nodes
Hi Shawn,
Thanks a lot for your comments!
Quoted 15 lines
-----Original Message-----
From: Shawn Guo [mailto:shawnguo at kernel.org]
Sent: 2017?8?5? 13:46
To: Z.q. Hou <[email protected]>
Cc: linux-arm-kernel at lists.infradead.org; devicetree at vger.kernel.org; robh+dt at kernel.org; mark.rutland at arm.com; catalin.marinas at arm.com; will.deacon at arm.com; Prabhakar Kushwaha <[email protected]>
Subject: Re: [PATCHv2 0/3] dts: add ls2088a and 1088a pcie DT nodesQuoted 5 lines · Zhiqiang Hou
From: Hou Zhiqiang <[email protected]>
Add GICv3 ITS DT node for ls1088a, because the PCIe nodes must have a msi-parent.
Quoted 6 lines
Quoted 4 lines
Hou Zhiqiang (3):
dts: ls2088a: add pcie support
dts: ls1088a: add gicv3 ITS DT node
dts: ls1088a: add PCIe controller DT nodesPlease have an additional 'arm64: ' prefix for these arm64 dts patches.
yes, will add next version.
Thanks,
Zhiqiang