aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bmips/dts
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2021-03-23 20:12:22 +0100
committerÁlvaro Fernández Rojas <noltari@gmail.com>2021-03-23 20:12:22 +0100
commit7f04d675170d255580edf77d4ff7c0adebb57609 (patch)
tree4cc1d76bc8d8497ef63c1a7b6ce68bd0d32eac9e /target/linux/bmips/dts
parent851dadc257b7223f879a3733507e83cfcaae1af1 (diff)
downloadupstream-7f04d675170d255580edf77d4ff7c0adebb57609.tar.gz
upstream-7f04d675170d255580edf77d4ff7c0adebb57609.tar.bz2
upstream-7f04d675170d255580edf77d4ff7c0adebb57609.zip
bmips: add experimental PCI/PCIe support
These PCI drivers are a bit hacky and definitely not suitable for upstreaming, but hopefully we can use them as a base for developing proper upstream PCI drivers. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bmips/dts')
-rw-r--r--target/linux/bmips/dts/bcm6318-comtrend-ar-5315u.dts4
-rw-r--r--target/linux/bmips/dts/bcm6318.dtsi35
-rw-r--r--target/linux/bmips/dts/bcm63268.dtsi39
-rw-r--r--target/linux/bmips/dts/bcm6328-comtrend-ar-5387un.dts4
-rw-r--r--target/linux/bmips/dts/bcm6328.dtsi39
-rw-r--r--target/linux/bmips/dts/bcm6358-huawei-hg556a-b.dts4
-rw-r--r--target/linux/bmips/dts/bcm6358.dtsi25
-rw-r--r--target/linux/bmips/dts/bcm6362-netgear-dgnd3700-v2.dts4
-rw-r--r--target/linux/bmips/dts/bcm6362.dtsi37
-rw-r--r--target/linux/bmips/dts/bcm6368-comtrend-vr-3025u.dts4
-rw-r--r--target/linux/bmips/dts/bcm6368.dtsi28
11 files changed, 223 insertions, 0 deletions
diff --git a/target/linux/bmips/dts/bcm6318-comtrend-ar-5315u.dts b/target/linux/bmips/dts/bcm6318-comtrend-ar-5315u.dts
index a5ae435a3a..5b44b05e70 100644
--- a/target/linux/bmips/dts/bcm6318-comtrend-ar-5315u.dts
+++ b/target/linux/bmips/dts/bcm6318-comtrend-ar-5315u.dts
@@ -164,6 +164,10 @@
status = "okay";
};
+&pcie {
+ status = "okay";
+};
+
&pinctrl {
pinctrl_leds: leds {
function = "led";
diff --git a/target/linux/bmips/dts/bcm6318.dtsi b/target/linux/bmips/dts/bcm6318.dtsi
index e7dc38e937..9067db952e 100644
--- a/target/linux/bmips/dts/bcm6318.dtsi
+++ b/target/linux/bmips/dts/bcm6318.dtsi
@@ -347,6 +347,41 @@
status = "disabled";
};
+ pcie: pcie@10010000 {
+ compatible = "brcm,bcm6318-pcie";
+ reg = <0x10010000 0x10000>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ bus-range = <0x00 0x01>;
+ ranges = <0x2000000 0 0x10200000 0x10200000 0 0x100000>;
+ linux,pci-probe-only = <1>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <BCM6318_IRQ_PCIE_RC>;
+
+ clocks = <&periph_clk BCM6318_CLK_PCIE>,
+ <&periph_clk BCM6318_CLK_PCIE25>,
+ <&ubus_clk BCM6318_UCLK_PCIE>;
+ clock-names = "pcie",
+ "pcie25",
+ "pcie-ubus";
+
+ resets = <&periph_rst BCM6318_RST_PCIE>,
+ <&periph_rst BCM6318_RST_PCIE_EXT>,
+ <&periph_rst BCM6318_RST_PCIE_CORE>,
+ <&periph_rst BCM6318_RST_PCIE_HARD>;
+ reset-names = "pcie",
+ "pcie-ext",
+ "pcie-core",
+ "pcie-hard";
+
+ power-domains = <&periph_pwr BCM6318_POWER_DOMAIN_PCIE>;
+
+ status = "disabled";
+ };
+
switch0: switch@10080000 {
#address-cells = <1>;
#size-cells = <0>;
diff --git a/target/linux/bmips/dts/bcm63268.dtsi b/target/linux/bmips/dts/bcm63268.dtsi
index 284d2c8ef0..32cbbd7200 100644
--- a/target/linux/bmips/dts/bcm63268.dtsi
+++ b/target/linux/bmips/dts/bcm63268.dtsi
@@ -371,6 +371,12 @@
status = "disabled";
};
+ serdes_cntl: syscon@10001804 {
+ compatible = "syscon";
+ reg = <0x10001804 0x4>;
+ native-endian;
+ };
+
periph_pwr: power-controller@1000184c {
compatible = "brcm,bcm63268-power-controller";
reg = <0x1000184c 0x4>;
@@ -468,6 +474,39 @@
status = "disabled";
};
+ pcie: pcie@106e0000 {
+ compatible = "brcm,bcm6328-pcie";
+ reg = <0x106e0000 0x10000>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ bus-range = <0x00 0x01>;
+ ranges = <0x2000000 0 0x11000000 0x11000000 0 0xf00000>;
+ linux,pci-probe-only = <1>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <BCM63268_IRQ_PCIE_RC>;
+
+ clocks = <&periph_clk BCM63268_CLK_PCIE>;
+ clock-names = "pcie";
+
+ resets = <&periph_rst BCM63268_RST_PCIE>,
+ <&periph_rst BCM63268_RST_PCIE_EXT>,
+ <&periph_rst BCM63268_RST_PCIE_CORE>,
+ <&periph_rst BCM63268_RST_PCIE_HARD>;
+ reset-names = "pcie",
+ "pcie-ext",
+ "pcie-core",
+ "pcie-hard";
+
+ power-domains = <&periph_pwr BCM63268_POWER_DOMAIN_PCIE>;
+
+ brcm,serdes = <&serdes_cntl>;
+
+ status = "disabled";
+ };
+
switch0: switch@10700000 {
#address-cells = <1>;
#size-cells = <0>;
diff --git a/target/linux/bmips/dts/bcm6328-comtrend-ar-5387un.dts b/target/linux/bmips/dts/bcm6328-comtrend-ar-5387un.dts
index 9ebd6c5c4d..261162454f 100644
--- a/target/linux/bmips/dts/bcm6328-comtrend-ar-5387un.dts
+++ b/target/linux/bmips/dts/bcm6328-comtrend-ar-5387un.dts
@@ -111,6 +111,10 @@
status = "okay";
};
+&pcie {
+ status = "okay";
+};
+
&pinctrl {
pinctrl_leds: leds {
function = "led";
diff --git a/target/linux/bmips/dts/bcm6328.dtsi b/target/linux/bmips/dts/bcm6328.dtsi
index 64fd04142c..76d7a257d4 100644
--- a/target/linux/bmips/dts/bcm6328.dtsi
+++ b/target/linux/bmips/dts/bcm6328.dtsi
@@ -317,6 +317,12 @@
status = "disabled";
};
+ serdes_cntl: syscon@10001800 {
+ compatible = "syscon";
+ reg = <0x10001800 0x4>;
+ native-endian;
+ };
+
periph_pwr: power-controller@10001848 {
compatible = "brcm,bcm6328-power-controller";
reg = <0x10001848 0x4>;
@@ -462,5 +468,38 @@
reg = <1>;
};
};
+
+ pcie: pcie@10e40000 {
+ compatible = "brcm,bcm6328-pcie";
+ reg = <0x10e40000 0x10000>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ bus-range = <0x00 0x01>;
+ ranges = <0x2000000 0 0x10f00000 0x10f00000 0 0x100000>;
+ linux,pci-probe-only = <1>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <BCM6328_IRQ_PCIE_RC>;
+
+ clocks = <&periph_clk BCM6328_CLK_PCIE>;
+ clock-names = "pcie";
+
+ resets = <&periph_rst BCM6328_RST_PCIE>,
+ <&periph_rst BCM6328_RST_PCIE_EXT>,
+ <&periph_rst BCM6328_RST_PCIE_CORE>,
+ <&periph_rst BCM6328_RST_PCIE_HARD>;
+ reset-names = "pcie",
+ "pcie-ext",
+ "pcie-core",
+ "pcie-hard";
+
+ power-domains = <&periph_pwr BCM6328_POWER_DOMAIN_PCIE>;
+
+ brcm,serdes = <&serdes_cntl>;
+
+ status = "disabled";
+ };
};
};
diff --git a/target/linux/bmips/dts/bcm6358-huawei-hg556a-b.dts b/target/linux/bmips/dts/bcm6358-huawei-hg556a-b.dts
index ba776caf78..0f21ca4a6b 100644
--- a/target/linux/bmips/dts/bcm6358-huawei-hg556a-b.dts
+++ b/target/linux/bmips/dts/bcm6358-huawei-hg556a-b.dts
@@ -129,6 +129,10 @@
status = "okay";
};
+&pci {
+ status = "okay";
+};
+
&pflash {
status = "okay";
diff --git a/target/linux/bmips/dts/bcm6358.dtsi b/target/linux/bmips/dts/bcm6358.dtsi
index c06001c62d..fee9850059 100644
--- a/target/linux/bmips/dts/bcm6358.dtsi
+++ b/target/linux/bmips/dts/bcm6358.dtsi
@@ -280,6 +280,31 @@
status = "disabled";
};
+ pci: pci@fffe1000 {
+ compatible = "brcm,bcm6348-pci";
+ reg = <0xfffe1000 0x200>,
+ <0x08000000 0x10000>;
+ reg-names = "pci",
+ "pci-io";
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ bus-range = <0x00 0x01>;
+ ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>;
+ linux,pci-probe-only = <1>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <BCM6358_IRQ_MPI>;
+
+ resets = <&periph_rst BCM6358_RST_MPI>;
+ reset-names = "pci";
+
+ brcm,remap;
+
+ status = "disabled";
+ };
+
ehci: usb@fffe1300 {
compatible = "brcm,bcm6358-ehci", "generic-ehci";
reg = <0xfffe1300 0x100>;
diff --git a/target/linux/bmips/dts/bcm6362-netgear-dgnd3700-v2.dts b/target/linux/bmips/dts/bcm6362-netgear-dgnd3700-v2.dts
index 0d88169184..3ad37fed71 100644
--- a/target/linux/bmips/dts/bcm6362-netgear-dgnd3700-v2.dts
+++ b/target/linux/bmips/dts/bcm6362-netgear-dgnd3700-v2.dts
@@ -209,6 +209,10 @@
status = "okay";
};
+&pcie {
+ status = "okay";
+};
+
&pinctrl {
pinctrl_leds: leds {
function = "led";
diff --git a/target/linux/bmips/dts/bcm6362.dtsi b/target/linux/bmips/dts/bcm6362.dtsi
index 9a3d9c1f66..1ae1522287 100644
--- a/target/linux/bmips/dts/bcm6362.dtsi
+++ b/target/linux/bmips/dts/bcm6362.dtsi
@@ -406,6 +406,12 @@
status = "disabled";
};
+ serdes_cntl: syscon@10001804 {
+ compatible = "syscon";
+ reg = <0x10001804 0x4>;
+ native-endian;
+ };
+
periph_pwr: power-controller@10001848 {
compatible = "brcm,bcm6362-power-controller";
reg = <0x10001848 0x4>;
@@ -559,5 +565,36 @@
reg = <1>;
};
};
+
+ pcie: pcie@10e40000 {
+ compatible = "brcm,bcm6328-pcie";
+ reg = <0x10e40000 0x10000>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ bus-range = <0x00 0x01>;
+ ranges = <0x2000000 0 0x10f00000 0x10f00000 0 0x100000>;
+ linux,pci-probe-only = <1>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <BCM6362_IRQ_PCIE_RC>;
+
+ clocks = <&periph_clk BCM6362_CLK_PCIE>;
+ clock-names = "pcie";
+
+ resets = <&periph_rst BCM6362_RST_PCIE>,
+ <&periph_rst BCM6362_RST_PCIE_EXT>,
+ <&periph_rst BCM6362_RST_PCIE_CORE>;
+ reset-names = "pcie",
+ "pcie-ext",
+ "pcie-core";
+
+ power-domains = <&periph_pwr BCM6362_POWER_DOMAIN_PCIE>;
+
+ brcm,serdes = <&serdes_cntl>;
+
+ status = "disabled";
+ };
};
};
diff --git a/target/linux/bmips/dts/bcm6368-comtrend-vr-3025u.dts b/target/linux/bmips/dts/bcm6368-comtrend-vr-3025u.dts
index b597a05f3a..c036b1cbec 100644
--- a/target/linux/bmips/dts/bcm6368-comtrend-vr-3025u.dts
+++ b/target/linux/bmips/dts/bcm6368-comtrend-vr-3025u.dts
@@ -69,6 +69,10 @@
status = "okay";
};
+&pci {
+ status = "okay";
+};
+
&pflash {
status = "okay";
diff --git a/target/linux/bmips/dts/bcm6368.dtsi b/target/linux/bmips/dts/bcm6368.dtsi
index 5b5064b29e..9f59182517 100644
--- a/target/linux/bmips/dts/bcm6368.dtsi
+++ b/target/linux/bmips/dts/bcm6368.dtsi
@@ -414,6 +414,34 @@
status = "disabled";
};
+ pci: pci@10001000 {
+ compatible = "brcm,bcm6348-pci";
+ reg = <0x10001000 0x200>,
+ <0x08000000 0x10000>;
+ reg-names = "pci",
+ "pci-io";
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ bus-range = <0x00 0x01>;
+ ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>;
+ linux,pci-probe-only = <1>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <BCM6368_IRQ_MPI>;
+
+ resets = <&periph_rst BCM6368_RST_MPI>;
+ reset-names = "pci";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pci>;
+
+ brcm,remap;
+
+ status = "disabled";
+ };
+
ehci: usb@10001500 {
compatible = "brcm,bcm6368-ehci", "generic-ehci";
reg = <0x10001500 0x100>;