Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: Add PCIe support for Airoha EN7523

This uses the MediaTek MT7622 PCIe driver, since the PCIe IP block is nearly
identical to the one in MT7622

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20220615125335.96089-3-nbd@nbd.name
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>

authored by

Felix Fietkau and committed by
Matthias Brugger
08a4aeb2 e0c5341a

+66
+8
arch/arm/boot/dts/en7523-evb.dts
··· 33 33 &gpio1 { 34 34 status = "okay"; 35 35 }; 36 + 37 + &pcie0 { 38 + status = "okay"; 39 + }; 40 + 41 + &pcie1 { 42 + status = "okay"; 43 + };
+58
arch/arm/boot/dts/en7523.dtsi
··· 143 143 gpio-controller; 144 144 #gpio-cells = <2>; 145 145 }; 146 + 147 + pcie0: pcie@1fa91000 { 148 + compatible = "airoha,en7523-pcie", "mediatek,mt7622-pcie"; 149 + device_type = "pci"; 150 + reg = <0x1fa91000 0x1000>; 151 + reg-names = "port0"; 152 + linux,pci-domain = <0>; 153 + #address-cells = <3>; 154 + #size-cells = <2>; 155 + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 156 + interrupt-names = "pcie_irq"; 157 + clocks = <&scu EN7523_CLK_PCIE>; 158 + clock-names = "sys_ck0"; 159 + bus-range = <0x00 0xff>; 160 + ranges = <0x82000000 0 0x20000000 0x20000000 0 0x8000000>; 161 + status = "disabled"; 162 + 163 + #interrupt-cells = <1>; 164 + interrupt-map-mask = <0 0 0 7>; 165 + interrupt-map = <0 0 0 1 &pcie_intc0 0>, 166 + <0 0 0 2 &pcie_intc0 1>, 167 + <0 0 0 3 &pcie_intc0 2>, 168 + <0 0 0 4 &pcie_intc0 3>; 169 + pcie_intc0: interrupt-controller { 170 + interrupt-controller; 171 + #address-cells = <0>; 172 + #interrupt-cells = <1>; 173 + }; 174 + }; 175 + 176 + pcie1: pcie@1fa92000 { 177 + compatible = "airoha,en7523-pcie", "mediatek,mt7622-pcie"; 178 + device_type = "pci"; 179 + reg = <0x1fa92000 0x1000>; 180 + reg-names = "port1"; 181 + linux,pci-domain = <1>; 182 + #address-cells = <3>; 183 + #size-cells = <2>; 184 + interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 185 + interrupt-names = "pcie_irq"; 186 + clocks = <&scu EN7523_CLK_PCIE>; 187 + clock-names = "sys_ck1"; 188 + bus-range = <0x00 0xff>; 189 + ranges = <0x82000000 0 0x28000000 0x28000000 0 0x8000000>; 190 + status = "disabled"; 191 + 192 + #interrupt-cells = <1>; 193 + interrupt-map-mask = <0 0 0 7>; 194 + interrupt-map = <0 0 0 1 &pcie_intc1 0>, 195 + <0 0 0 2 &pcie_intc1 1>, 196 + <0 0 0 3 &pcie_intc1 2>, 197 + <0 0 0 4 &pcie_intc1 3>; 198 + pcie_intc1: interrupt-controller { 199 + interrupt-controller; 200 + #address-cells = <0>; 201 + #interrupt-cells = <1>; 202 + }; 203 + }; 146 204 };