aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/302-dts-0074-arm64-dts-fsl-ls1028a-Add-Felix-switch-port-DT-node.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/302-dts-0074-arm64-dts-fsl-ls1028a-Add-Felix-switch-port-DT-node.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/302-dts-0074-arm64-dts-fsl-ls1028a-Add-Felix-switch-port-DT-node.patch102
1 files changed, 102 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/302-dts-0074-arm64-dts-fsl-ls1028a-Add-Felix-switch-port-DT-node.patch b/target/linux/layerscape/patches-5.4/302-dts-0074-arm64-dts-fsl-ls1028a-Add-Felix-switch-port-DT-node.patch
new file mode 100644
index 0000000000..7a1aa87cf2
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/302-dts-0074-arm64-dts-fsl-ls1028a-Add-Felix-switch-port-DT-node.patch
@@ -0,0 +1,102 @@
+From f5f011742b6ec9ad1db54de9e8296f1d5a3ede8a Mon Sep 17 00:00:00 2001
+From: Claudiu Manoil <claudiu.manoil@nxp.com>
+Date: Fri, 14 Jun 2019 19:24:27 +0300
+Subject: [PATCH] arm64: dts: fsl: ls1028a: Add Felix switch port DT node
+
+Add the switch device node, available on PF5, so that the
+switch port sub-nodes (net devices) can be linked to
+corresponding board specific phy nodes (external ports) or
+have their link mode defined (internal ports).
+The switch device features 6 ports, 4 with external links
+and 2 internally facing to the ls1028a SoC and connected via
+fixed links to 2 internal enetc ethernet contoller ports.
+Add the corresponding enetc internal port device nodes,
+mapped to PF2 and PF6 PCIe functions.
+And don't forget to enable the 4MB BAR4 in the root complex
+ECAM space, where the switch registers are mapped.
+
+Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
+---
+ arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 58 +++++++++++++++++++++++++-
+ 1 file changed, 57 insertions(+), 1 deletion(-)
+
+--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
++++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
+@@ -750,7 +750,9 @@
+ /* PF1: VF0-1 BAR0 - non-prefetchable memory */
+ 0x82000000 0x0 0x00000000 0x1 0xf8210000 0x0 0x020000
+ /* PF1: VF0-1 BAR2 - prefetchable memory */
+- 0xc2000000 0x0 0x00000000 0x1 0xf8230000 0x0 0x020000>;
++ 0xc2000000 0x0 0x00000000 0x1 0xf8230000 0x0 0x020000
++ /* BAR4 (PF5) - non-prefetchable memory */
++ 0x82000000 0x0 0x00000000 0x1 0xfc000000 0x0 0x400000>;
+
+ enetc_port0: ethernet@0,0 {
+ compatible = "fsl,enetc";
+@@ -766,12 +768,66 @@
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
++ ethernet@0,2 {
++ compatible = "fsl,enetc";
++ reg = <0x000200 0 0 0 0>;
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
+ ethernet@0,4 {
+ compatible = "fsl,enetc-ptp";
+ reg = <0x000400 0 0 0 0>;
+ clocks = <&clockgen 4 0>;
+ little-endian;
+ };
++ switch@0,5 {
++ compatible = "mscc,felix-switch";
++ reg = <0x000500 0 0 0 0>;
++
++ ports {
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ /* external ports */
++ switch_port0: port@0 {
++ reg = <0>;
++ };
++ switch_port1: port@1 {
++ reg = <1>;
++ };
++ switch_port2: port@2 {
++ reg = <2>;
++ };
++ switch_port3: port@3 {
++ reg = <3>;
++ };
++ /* internal to-cpu ports */
++ port@4 {
++ reg = <4>;
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
++ port@5 {
++ reg = <5>;
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
++ };
++ };
++ ethernet@0,6 {
++ compatible = "fsl,enetc";
++ reg = <0x000600 0 0 0 0>;
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
+ };
+
+ rcpm: rcpm@1e34040 {