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