162306a36Sopenharmony_ci* Marvell EBU PCIe interfaces
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciMandatory properties:
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci- compatible: one of the following values:
662306a36Sopenharmony_ci    marvell,armada-370-pcie
762306a36Sopenharmony_ci    marvell,armada-xp-pcie
862306a36Sopenharmony_ci    marvell,dove-pcie
962306a36Sopenharmony_ci    marvell,kirkwood-pcie
1062306a36Sopenharmony_ci- #address-cells, set to <3>
1162306a36Sopenharmony_ci- #size-cells, set to <2>
1262306a36Sopenharmony_ci- #interrupt-cells, set to <1>
1362306a36Sopenharmony_ci- bus-range: PCI bus numbers covered
1462306a36Sopenharmony_ci- device_type, set to "pci"
1562306a36Sopenharmony_ci- ranges: ranges describing the MMIO registers to control the PCIe
1662306a36Sopenharmony_ci  interfaces, and ranges describing the MBus windows needed to access
1762306a36Sopenharmony_ci  the memory and I/O regions of each PCIe interface.
1862306a36Sopenharmony_ci- msi-parent: Link to the hardware entity that serves as the Message
1962306a36Sopenharmony_ci  Signaled Interrupt controller for this PCI controller.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciThe ranges describing the MMIO registers have the following layout:
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci    0x82000000 0 r MBUS_ID(0xf0, 0x01) r 0 s
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciwhere:
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  * r is a 32-bits value that gives the offset of the MMIO
2862306a36Sopenharmony_ci  registers of this PCIe interface, from the base of the internal
2962306a36Sopenharmony_ci  registers.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  * s is a 32-bits value that give the size of this MMIO
3262306a36Sopenharmony_ci  registers area. This range entry translates the '0x82000000 0 r' PCI
3362306a36Sopenharmony_ci  address into the 'MBUS_ID(0xf0, 0x01) r' CPU address, which is part
3462306a36Sopenharmony_ci  of the internal register window (as identified by MBUS_ID(0xf0,
3562306a36Sopenharmony_ci  0x01)).
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciThe ranges describing the MBus windows have the following layout:
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci    0x8t000000 s 0     MBUS_ID(w, a) 0 1 0
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciwhere:
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci   * t is the type of the MBus window (as defined by the standard PCI DT
4462306a36Sopenharmony_ci   bindings), 1 for I/O and 2 for memory.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci   * s is the PCI slot that corresponds to this PCIe interface
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci   * w is the 'target ID' value for the MBus window
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci   * a the 'attribute' value for the MBus window.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciSince the location and size of the different MBus windows is not fixed in
5362306a36Sopenharmony_cihardware, and only determined in runtime, those ranges cover the full first
5462306a36Sopenharmony_ci4 GB of the physical address space, and do not translate into a valid CPU
5562306a36Sopenharmony_ciaddress.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciIn addition, the device tree node must have sub-nodes describing each
5862306a36Sopenharmony_ciPCIe interface, having the following mandatory properties:
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci- reg: used only for interrupt mapping, so only the first four bytes
6162306a36Sopenharmony_ci  are used to refer to the correct bus number and device number.
6262306a36Sopenharmony_ci- assigned-addresses: reference to the MMIO registers used to control
6362306a36Sopenharmony_ci  this PCIe interface.
6462306a36Sopenharmony_ci- clocks: the clock associated to this PCIe interface
6562306a36Sopenharmony_ci- marvell,pcie-port: the physical PCIe port number
6662306a36Sopenharmony_ci- status: either "disabled" or "okay"
6762306a36Sopenharmony_ci- device_type, set to "pci"
6862306a36Sopenharmony_ci- #address-cells, set to <3>
6962306a36Sopenharmony_ci- #size-cells, set to <2>
7062306a36Sopenharmony_ci- #interrupt-cells, set to <1>
7162306a36Sopenharmony_ci- ranges, translating the MBus windows ranges of the parent node into
7262306a36Sopenharmony_ci  standard PCI addresses.
7362306a36Sopenharmony_ci- interrupt-map-mask and interrupt-map, standard PCI properties to
7462306a36Sopenharmony_ci  define the mapping of the PCIe interface to interrupt numbers.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ciand the following optional properties:
7762306a36Sopenharmony_ci- marvell,pcie-lane: the physical PCIe lane number, for ports having
7862306a36Sopenharmony_ci  multiple lanes. If this property is not found, we assume that the
7962306a36Sopenharmony_ci  value is 0.
8062306a36Sopenharmony_ci- num-lanes: number of SerDes PCIe lanes for this link (1 or 4)
8162306a36Sopenharmony_ci- reset-gpios: optional GPIO to PERST#
8262306a36Sopenharmony_ci- reset-delay-us: delay in us to wait after reset de-assertion, if not
8362306a36Sopenharmony_ci  specified will default to 100ms, as required by the PCIe specification.
8462306a36Sopenharmony_ci- interrupt-names: list of interrupt names, supported are:
8562306a36Sopenharmony_ci   - "intx" - interrupt line triggered by one of the legacy interrupt
8662306a36Sopenharmony_ci- interrupts or interrupts-extended: List of the interrupt sources which
8762306a36Sopenharmony_ci  corresponding to the "interrupt-names". If non-empty then also additional
8862306a36Sopenharmony_ci  'interrupt-controller' subnode must be defined.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciExample:
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_cipcie-controller {
9362306a36Sopenharmony_ci	compatible = "marvell,armada-xp-pcie";
9462306a36Sopenharmony_ci	device_type = "pci";
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	#address-cells = <3>;
9762306a36Sopenharmony_ci	#size-cells = <2>;
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	bus-range = <0x00 0xff>;
10062306a36Sopenharmony_ci	msi-parent = <&mpic>;
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci	ranges =
10362306a36Sopenharmony_ci	       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000	/* Port 0.0 registers */
10462306a36Sopenharmony_ci		0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000	/* Port 2.0 registers */
10562306a36Sopenharmony_ci		0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000	/* Port 0.1 registers */
10662306a36Sopenharmony_ci		0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000	/* Port 0.2 registers */
10762306a36Sopenharmony_ci		0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000	/* Port 0.3 registers */
10862306a36Sopenharmony_ci		0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000	/* Port 1.0 registers */
10962306a36Sopenharmony_ci		0x82000000 0 0x82000 MBUS_ID(0xf0, 0x01) 0x82000 0 0x00002000	/* Port 3.0 registers */
11062306a36Sopenharmony_ci		0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000	/* Port 1.1 registers */
11162306a36Sopenharmony_ci		0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000	/* Port 1.2 registers */
11262306a36Sopenharmony_ci		0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000	/* Port 1.3 registers */
11362306a36Sopenharmony_ci		0x82000000 0x1 0     MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
11462306a36Sopenharmony_ci		0x81000000 0x1 0     MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO  */
11562306a36Sopenharmony_ci		0x82000000 0x2 0     MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
11662306a36Sopenharmony_ci		0x81000000 0x2 0     MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO  */
11762306a36Sopenharmony_ci		0x82000000 0x3 0     MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */
11862306a36Sopenharmony_ci		0x81000000 0x3 0     MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO  */
11962306a36Sopenharmony_ci		0x82000000 0x4 0     MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
12062306a36Sopenharmony_ci		0x81000000 0x4 0     MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO  */
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci		0x82000000 0x5 0     MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
12362306a36Sopenharmony_ci		0x81000000 0x5 0     MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO  */
12462306a36Sopenharmony_ci		0x82000000 0x6 0     MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */
12562306a36Sopenharmony_ci		0x81000000 0x6 0     MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO  */
12662306a36Sopenharmony_ci		0x82000000 0x7 0     MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */
12762306a36Sopenharmony_ci		0x81000000 0x7 0     MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO  */
12862306a36Sopenharmony_ci		0x82000000 0x8 0     MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */
12962306a36Sopenharmony_ci		0x81000000 0x8 0     MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO  */
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci		0x82000000 0x9 0     MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
13262306a36Sopenharmony_ci		0x81000000 0x9 0     MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO  */
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci		0x82000000 0xa 0     MBUS_ID(0x08, 0xf8) 0 1 0 /* Port 3.0 MEM */
13562306a36Sopenharmony_ci		0x81000000 0xa 0     MBUS_ID(0x08, 0xf0) 0 1 0 /* Port 3.0 IO  */>;
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci	pcie@1,0 {
13862306a36Sopenharmony_ci		device_type = "pci";
13962306a36Sopenharmony_ci		assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
14062306a36Sopenharmony_ci		reg = <0x0800 0 0 0 0>;
14162306a36Sopenharmony_ci		#address-cells = <3>;
14262306a36Sopenharmony_ci		#size-cells = <2>;
14362306a36Sopenharmony_ci		#interrupt-cells = <1>;
14462306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
14562306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x1 0 1 0>;
14662306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
14762306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 58>;
14862306a36Sopenharmony_ci		marvell,pcie-port = <0>;
14962306a36Sopenharmony_ci		marvell,pcie-lane = <0>;
15062306a36Sopenharmony_ci		num-lanes = <1>;
15162306a36Sopenharmony_ci		/* low-active PERST# reset on GPIO 25 */
15262306a36Sopenharmony_ci		reset-gpios = <&gpio0 25 1>;
15362306a36Sopenharmony_ci		/* wait 20ms for device settle after reset deassertion */
15462306a36Sopenharmony_ci		reset-delay-us = <20000>;
15562306a36Sopenharmony_ci		clocks = <&gateclk 5>;
15662306a36Sopenharmony_ci	};
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci	pcie@2,0 {
15962306a36Sopenharmony_ci		device_type = "pci";
16062306a36Sopenharmony_ci		assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
16162306a36Sopenharmony_ci		reg = <0x1000 0 0 0 0>;
16262306a36Sopenharmony_ci		#address-cells = <3>;
16362306a36Sopenharmony_ci		#size-cells = <2>;
16462306a36Sopenharmony_ci		#interrupt-cells = <1>;
16562306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
16662306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x2 0 1 0>;
16762306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
16862306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 59>;
16962306a36Sopenharmony_ci		marvell,pcie-port = <0>;
17062306a36Sopenharmony_ci		marvell,pcie-lane = <1>;
17162306a36Sopenharmony_ci		num-lanes = <1>;
17262306a36Sopenharmony_ci		clocks = <&gateclk 6>;
17362306a36Sopenharmony_ci	};
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci	pcie@3,0 {
17662306a36Sopenharmony_ci		device_type = "pci";
17762306a36Sopenharmony_ci		assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
17862306a36Sopenharmony_ci		reg = <0x1800 0 0 0 0>;
17962306a36Sopenharmony_ci		#address-cells = <3>;
18062306a36Sopenharmony_ci		#size-cells = <2>;
18162306a36Sopenharmony_ci		#interrupt-cells = <1>;
18262306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
18362306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x3 0 1 0>;
18462306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
18562306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 60>;
18662306a36Sopenharmony_ci		marvell,pcie-port = <0>;
18762306a36Sopenharmony_ci		marvell,pcie-lane = <2>;
18862306a36Sopenharmony_ci		num-lanes = <1>;
18962306a36Sopenharmony_ci		clocks = <&gateclk 7>;
19062306a36Sopenharmony_ci	};
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci	pcie@4,0 {
19362306a36Sopenharmony_ci		device_type = "pci";
19462306a36Sopenharmony_ci		assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
19562306a36Sopenharmony_ci		reg = <0x2000 0 0 0 0>;
19662306a36Sopenharmony_ci		#address-cells = <3>;
19762306a36Sopenharmony_ci		#size-cells = <2>;
19862306a36Sopenharmony_ci		#interrupt-cells = <1>;
19962306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
20062306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x4 0 1 0>;
20162306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
20262306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 61>;
20362306a36Sopenharmony_ci		marvell,pcie-port = <0>;
20462306a36Sopenharmony_ci		marvell,pcie-lane = <3>;
20562306a36Sopenharmony_ci		num-lanes = <1>;
20662306a36Sopenharmony_ci		clocks = <&gateclk 8>;
20762306a36Sopenharmony_ci	};
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci	pcie@5,0 {
21062306a36Sopenharmony_ci		device_type = "pci";
21162306a36Sopenharmony_ci		assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
21262306a36Sopenharmony_ci		reg = <0x2800 0 0 0 0>;
21362306a36Sopenharmony_ci		#address-cells = <3>;
21462306a36Sopenharmony_ci		#size-cells = <2>;
21562306a36Sopenharmony_ci		#interrupt-cells = <1>;
21662306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
21762306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x5 0 1 0>;
21862306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
21962306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 62>;
22062306a36Sopenharmony_ci		marvell,pcie-port = <1>;
22162306a36Sopenharmony_ci		marvell,pcie-lane = <0>;
22262306a36Sopenharmony_ci		num-lanes = <1>;
22362306a36Sopenharmony_ci		clocks = <&gateclk 9>;
22462306a36Sopenharmony_ci	};
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ci	pcie@6,0 {
22762306a36Sopenharmony_ci		device_type = "pci";
22862306a36Sopenharmony_ci		assigned-addresses = <0x82003000 0 0x84000 0 0x2000>;
22962306a36Sopenharmony_ci		reg = <0x3000 0 0 0 0>;
23062306a36Sopenharmony_ci		#address-cells = <3>;
23162306a36Sopenharmony_ci		#size-cells = <2>;
23262306a36Sopenharmony_ci		#interrupt-cells = <1>;
23362306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0
23462306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x6 0 1 0>;
23562306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
23662306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 63>;
23762306a36Sopenharmony_ci		marvell,pcie-port = <1>;
23862306a36Sopenharmony_ci		marvell,pcie-lane = <1>;
23962306a36Sopenharmony_ci		num-lanes = <1>;
24062306a36Sopenharmony_ci		clocks = <&gateclk 10>;
24162306a36Sopenharmony_ci	};
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ci	pcie@7,0 {
24462306a36Sopenharmony_ci		device_type = "pci";
24562306a36Sopenharmony_ci		assigned-addresses = <0x82003800 0 0x88000 0 0x2000>;
24662306a36Sopenharmony_ci		reg = <0x3800 0 0 0 0>;
24762306a36Sopenharmony_ci		#address-cells = <3>;
24862306a36Sopenharmony_ci		#size-cells = <2>;
24962306a36Sopenharmony_ci		#interrupt-cells = <1>;
25062306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0
25162306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x7 0 1 0>;
25262306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
25362306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 64>;
25462306a36Sopenharmony_ci		marvell,pcie-port = <1>;
25562306a36Sopenharmony_ci		marvell,pcie-lane = <2>;
25662306a36Sopenharmony_ci		num-lanes = <1>;
25762306a36Sopenharmony_ci		clocks = <&gateclk 11>;
25862306a36Sopenharmony_ci	};
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ci	pcie@8,0 {
26162306a36Sopenharmony_ci		device_type = "pci";
26262306a36Sopenharmony_ci		assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>;
26362306a36Sopenharmony_ci		reg = <0x4000 0 0 0 0>;
26462306a36Sopenharmony_ci		#address-cells = <3>;
26562306a36Sopenharmony_ci		#size-cells = <2>;
26662306a36Sopenharmony_ci		#interrupt-cells = <1>;
26762306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0
26862306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x8 0 1 0>;
26962306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
27062306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 65>;
27162306a36Sopenharmony_ci		marvell,pcie-port = <1>;
27262306a36Sopenharmony_ci		marvell,pcie-lane = <3>;
27362306a36Sopenharmony_ci		num-lanes = <1>;
27462306a36Sopenharmony_ci		clocks = <&gateclk 12>;
27562306a36Sopenharmony_ci	};
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci	pcie@9,0 {
27862306a36Sopenharmony_ci		device_type = "pci";
27962306a36Sopenharmony_ci		assigned-addresses = <0x82004800 0 0x42000 0 0x2000>;
28062306a36Sopenharmony_ci		reg = <0x4800 0 0 0 0>;
28162306a36Sopenharmony_ci		#address-cells = <3>;
28262306a36Sopenharmony_ci		#size-cells = <2>;
28362306a36Sopenharmony_ci		#interrupt-cells = <1>;
28462306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
28562306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0x9 0 1 0>;
28662306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
28762306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 99>;
28862306a36Sopenharmony_ci		marvell,pcie-port = <2>;
28962306a36Sopenharmony_ci		marvell,pcie-lane = <0>;
29062306a36Sopenharmony_ci		num-lanes = <1>;
29162306a36Sopenharmony_ci		clocks = <&gateclk 26>;
29262306a36Sopenharmony_ci	};
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ci	pcie@a,0 {
29562306a36Sopenharmony_ci		device_type = "pci";
29662306a36Sopenharmony_ci		assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;
29762306a36Sopenharmony_ci		reg = <0x5000 0 0 0 0>;
29862306a36Sopenharmony_ci		#address-cells = <3>;
29962306a36Sopenharmony_ci		#size-cells = <2>;
30062306a36Sopenharmony_ci		#interrupt-cells = <1>;
30162306a36Sopenharmony_ci		ranges = <0x82000000 0 0 0x82000000 0xa 0 1 0
30262306a36Sopenharmony_ci			  0x81000000 0 0 0x81000000 0xa 0 1 0>;
30362306a36Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
30462306a36Sopenharmony_ci		interrupt-map = <0 0 0 0 &mpic 103>;
30562306a36Sopenharmony_ci		marvell,pcie-port = <3>;
30662306a36Sopenharmony_ci		marvell,pcie-lane = <0>;
30762306a36Sopenharmony_ci		num-lanes = <1>;
30862306a36Sopenharmony_ci		clocks = <&gateclk 27>;
30962306a36Sopenharmony_ci	};
31062306a36Sopenharmony_ci};
311