[meta-ti] [PATCH] linux-ti-staging: include pru-uio device tree files for am571x and k2g

Hongmei Gou a0271529 at ti.com
Tue Sep 5 15:13:07 PDT 2017


* The pru-uio device tree file for am572x is also updated to support
  icss-emac-lld in Linux userspace.

* The new dtbs are added only if ENABLE_TI_UIO_DEVICES is enabled.

Signed-off-by: Hongmei Gou <a0271529 at ti.com>
---
 .../linux/files/dra7xx/am571x-pru-uio.dtsi         | 284 +++++++++++++++
 .../linux/files/dra7xx/am572x-pru-uio.dtsi         | 263 ++++++++------
 .../linux/files/k2g/keystone-k2g-pru-uio.dtsi      | 391 +++++++++++++++++++++
 recipes-kernel/linux/ti-uio.inc                    |  26 +-
 4 files changed, 859 insertions(+), 105 deletions(-)
 create mode 100644 recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi
 create mode 100644 recipes-kernel/linux/files/k2g/keystone-k2g-pru-uio.dtsi

diff --git a/recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi b/recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi
new file mode 100644
index 0000000..71e0516
--- /dev/null
+++ b/recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi
@@ -0,0 +1,284 @@
+&pruss_soc_bus1 {
+                uio_pruss1_mdio {
+                        status = "okay";
+
+                        compatible = "ti,davinci_mdio";
+                        #address-cells = <1>;
+                        #size-cells = <0>;
+                        clocks = <&dpll_gmac_h13x2_ck>;
+                        clock-names = "fck";
+                        bus_freq = <1000000>;
+                        reg = <0x4b232400 0x90>;
+
+                        reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
+                        reset-delay-us = <2>;   /* PHY datasheet states 1uS min */
+                        uio_pruss1_eth0_phy: uio_ethernet-phy at 0 {
+                            reg = <0>;
+                        };
+
+                        uio_pruss1_eth1_phy: uio_ethernet-phy at 1 {
+                            reg = <1>;
+                         };
+                };
+
+		uio_pruss1_mem: uio_pruss1_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x4b200000 0x2000>,
+			      <0x4b202000 0x2000>,
+			      <0x4b210000 0x8000>,
+			      <0x4b220000 0x5404>,
+			      <0x4b226000 0x474>,
+			      <0x4b22e000 0xc04>,
+			      <0x4b232000 0x154>;
+			mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+				    "iep", "mii_rt";
+			status = "okay";
+		};
+		uio_pruss1_mem2: uio_pruss1_mem2 {
+			compatible = "ti,uio-module-drv";
+			mem = <0x4b228000 0xd4>,
+			      <0x4b230000 0x174>,
+			      <0x4b232400 0x234>,
+			      <0x40300000 0x40000>;
+			mem-names = "uart", "ecap", "mdio", "ocmc";
+			status = "okay";
+		};
+		uio_pruss1_evt0: uio_pruss1_evt0 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss1_evt1: uio_pruss1_evt1 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss1_evt2: uio_pruss1_evt2 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss1_evt3: uio_pruss1_evt3 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss1_evt4: uio_pruss1_evt4 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss1_evt5: uio_pruss1_evt5 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss1_evt6: uio_pruss1_evt6 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss1_evt7: uio_pruss1_evt7 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+
+		uio_pruss1_0_mem: uio_pruss1_0_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x4b234000 0x3000>,
+			      <0x4b222000 0xb4>,
+			      <0x4b222400 0x3f4>;
+			mem-names = "iram", "control", "debug";
+			status = "okay";
+		};
+
+		uio_pruss1_1_mem: uio_pruss1_1_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x4b238000 0x3000>,
+			      <0x4b224000 0xb4>,
+			      <0x4b224400 0x3f4>;
+			mem-names = "iram", "control", "debug";
+			status = "okay";
+		};
+};
+
+&pruss_soc_bus2 {
+                uio_pruss2_mdio {
+                        compatible = "ti,davinci_mdio";
+                        #address-cells = <1>;
+                        #size-cells = <0>;
+                        clocks = <&dpll_gmac_h13x2_ck>;
+                        clock-names = "fck";
+                        bus_freq = <1000000>;
+                        reg = <0x4b2b2400 0x90>;
+                        status = "okay";
+
+                        reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+                        reset-delay-us = <2>;   /* PHY datasheet states 1uS min */
+
+                        uio_pruss2_eth0_phy: ethernet-phy at 0 {
+                           reg = <0>;
+                        };
+
+                        uio_pruss2_eth1_phy: ethernet-phy at 1 {
+                            reg = <1>;
+                         };
+                };
+
+		uio_pruss2_mem: uio_pruss2_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x4b280000 0x2000>,
+			      <0x4b282000 0x2000>,
+			      <0x4b290000 0x8000>,
+			      <0x4b2a0000 0x5404>,
+			      <0x4b2a6000 0x474>,
+			      <0x4b2ae000 0xc04>,
+			      <0x4b2b2000 0x154>;
+			mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+				    "iep", "mii_rt";
+			status = "okay";
+		};
+		uio_pruss2_mem2: uio_pruss2_mem2 {
+			compatible = "ti,uio-module-drv";
+			mem = <0x4b2a8000 0xd4>,
+			      <0x4b2b0000 0x174>,
+			      <0x4b2b2400 0x234>,
+			      <0x40340000 0x40000>;
+			mem-names = "uart", "ecap", "mdio", "ocmc";
+			status = "okay";
+		};
+		uio_pruss2_evt0: uio_pruss2_evt0 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss2_evt1: uio_pruss2_evt1 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss2_evt2: uio_pruss2_evt2 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss2_evt3: uio_pruss2_evt3 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss2_evt4: uio_pruss2_evt4 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss2_evt5: uio_pruss2_evt5 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss2_evt6: uio_pruss2_evt6 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+		uio_pruss2_evt7: uio_pruss2_evt7 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
+			status = "okay";
+		};
+
+		uio_pruss2_0_mem: uio_pruss2_0_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x4b2b4000 0x3000>,
+			      <0x4b2a2000 0xb4>,
+			      <0x4b2a2400 0x3f4>;
+			mem-names = "iram", "control", "debug";
+			status = "okay";
+		};
+		uio_pruss2_1_mem: uio_pruss2_1_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x4b2b8000 0x3000>,
+			      <0x4b2a4000 0xb4>,
+			      <0x4b2a4400 0x3f4>;
+			mem-names = "iram", "control", "debug";
+			status = "okay";
+		};
+	};
+
+&pruss1_eth {
+        status = "disabled";
+};
+
+&pruss1_emac0 {
+        status = "disabled";
+};
+
+&pruss1_emac1 {
+        status = "disabled";
+};
+
+&pruss2_emac0 {
+        status = "disabled";
+};
+
+&pruss2_emac1 {
+        status = "disabled";
+};
+
+&pruss1 {
+	status = "disabled";
+};
+
+&pru1_0 {
+        status = "disabled";
+};
+
+&pru1_1 {
+        status = "disabled";
+};
+
+&pruss1_intc {
+        status = "disabled";
+};
+
+&pruss1_mdio {
+        status = "disabled";
+};
+
+&pruss2 {
+	status = "disabled";
+};
+
+&pru2_0 {
+        status = "disabled";
+};
+
+&pru2_1 {
+        status = "disabled";
+};
+
+&pruss2_intc {
+        status = "disabled";
+};
+
+&pruss2_mdio {
+        status = "disabled";
+};
diff --git a/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi b/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi
index 828a0ce..f149cf1 100644
--- a/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi
+++ b/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi
@@ -1,92 +1,124 @@
-/ {
-	ocp {
-		pruss2_eth {
-		status = "disabled";
-		};
-		uio_pruss1_mem: uio_pruss1_mem {
-			compatible = "ti,uio-module-drv";
-			ti,hwmods = "pruss1";
-			mem = <0x4b200000 0x2000>,
-			      <0x4b202000 0x2000>,
-			      <0x4b210000 0x8000>,
-			      <0x4b220000 0x2000>,
-			      <0x4b226000 0x2000>,
-			      <0x4b22e000 0x31c>,
-			      <0x4b232000 0x58>;
-			mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
-				    "iep", "mii_rt";
-			status = "okay";
-		};
-		uio_pruss1_mem2: uio_pruss1_mem2 {
-			compatible = "ti,uio-module-drv";
-			mem = <0x4b228000 0x38>,
-			      <0x4b230000 0x60>,
-			      <0x4b232400 0x90>;
-			mem-names = "uart", "ecap", "mdio";
-			status = "okay";
-		};
-		uio_pruss1_evt0: uio_pruss1_evt0 {
-			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 186 IRQ_TYPE_EDGE_RISING>;
-			status = "okay";
-		};
-		uio_pruss1_evt1: uio_pruss1_evt1 {
-			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>;
-			status = "okay";
-		};
-		uio_pruss1_evt2: uio_pruss1_evt2 {
-			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>;
-			status = "okay";
-		};
-		uio_pruss1_evt3: uio_pruss1_evt3 {
-			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
-			status = "okay";
-		};
-		uio_pruss1_evt4: uio_pruss1_evt4 {
-			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
-			status = "okay";
-		};
-		uio_pruss1_evt5: uio_pruss1_evt5 {
-			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>;
-			status = "okay";
-		};
-		uio_pruss1_evt6: uio_pruss1_evt6 {
-			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 192 IRQ_TYPE_EDGE_RISING>;
-			status = "okay";
-		};
-		uio_pruss1_evt7: uio_pruss1_evt7 {
-			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
-			status = "okay";
-		};
+&pruss_soc_bus1 {
+                uio_pruss1_mem: uio_pruss1_mem {
+                        compatible = "ti,uio-module-drv";
+                        mem = <0x4b200000 0x2000>,
+                              <0x4b202000 0x2000>,
+                              <0x4b210000 0x8000>,
+                              <0x4b220000 0x2000>,
+                              <0x4b226000 0x2000>,
+                              <0x4b22e000 0x31c>,
+                              <0x4b232000 0x58>;
+                        mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+                                    "iep", "mii_rt";
+                        status = "okay";
+                };
+                uio_pruss1_mem2: uio_pruss1_mem2 {
+                        compatible = "ti,uio-module-drv";
+                        mem = <0x4b228000 0x38>,
+                              <0x4b230000 0x60>,
+                              <0x4b232400 0x90>,
+                              <0x40340000 0x40000>;
+                        mem-names = "uart", "ecap", "mdio", "ocmc";
+                        status = "okay";
+                };
+                uio_pruss1_evt0: uio_pruss1_evt0 {
+                        compatible = "ti,uio-module-drv";
+                        interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
+                        interrupt-mode = <1>;
+                        status = "okay";
+                };
+                uio_pruss1_evt1: uio_pruss1_evt1 {
+                        compatible = "ti,uio-module-drv";
+                        interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+                        interrupt-mode = <1>;
+                        status = "okay";
+                };
+                uio_pruss1_evt2: uio_pruss1_evt2 {
+                        compatible = "ti,uio-module-drv";
+                        interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+                        interrupt-mode = <1>;
+                        status = "okay";
+                };
+                uio_pruss1_evt3: uio_pruss1_evt3 {
+                        compatible = "ti,uio-module-drv";
+                        interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
+                        interrupt-mode = <1>;
+                        status = "okay";
+                };
+                uio_pruss1_evt4: uio_pruss1_evt4 {
+                        compatible = "ti,uio-module-drv";
+                        interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                        interrupt-mode = <1>;
+                        status = "okay";
+                };
+                uio_pruss1_evt5: uio_pruss1_evt5 {
+                        compatible = "ti,uio-module-drv";
+                        interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+                        interrupt-mode = <1>;
+                        status = "okay";
+                };
+                uio_pruss1_evt6: uio_pruss1_evt6 {
+                        compatible = "ti,uio-module-drv";
+                        interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+                        interrupt-mode = <1>;
+                        status = "okay";
+                };
+                uio_pruss1_evt7: uio_pruss1_evt7 {
+                        compatible = "ti,uio-module-drv";
+                        interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+                        interrupt-mode = <1>;
+                        status = "okay";
+                };
 
-		uio_pruss1_0_mem: uio_pruss1_0_mem {
-			compatible = "ti,uio-module-drv";
-			mem = <0x4b234000 0x3000>,
-			      <0x4b222000 0x400>,
-			      <0x4b222400 0x100>;
-			mem-names = "iram", "control", "debug";
-			status = "okay";
-		};
+                uio_pruss1_0_mem: uio_pruss1_0_mem {
+                        compatible = "ti,uio-module-drv";
+                        mem = <0x4b234000 0x3000>,
+                              <0x4b222000 0x400>,
+                              <0x4b222400 0x100>;
+                        mem-names = "iram", "control", "debug";
+                        status = "okay";
+                };
 
-		uio_pruss1_1_mem: uio_pruss1_1_mem {
-			compatible = "ti,uio-module-drv";
-			mem = <0x4b238000 0x3000>,
-			      <0x4b224000 0x400>,
-			      <0x4b224400 0x100>;
-			mem-names = "iram", "control", "debug";
-			status = "okay";
-		};
+                uio_pruss1_1_mem: uio_pruss1_1_mem {
+                        compatible = "ti,uio-module-drv";
+                        mem = <0x4b238000 0x3000>,
+                              <0x4b224000 0x400>,
+                              <0x4b224400 0x100>;
+                        mem-names = "iram", "control", "debug";
+                        status = "okay";
+                };
+};
+
+&pruss1 {
+        status = "disabled";
+};
+
+&pru1_0 {
+        status = "disabled";
+};
+
+&pru1_1 {
+        status = "disabled";
+};
+
+&pruss1_intc {
+        status = "disabled";
+};
+
+&pruss_soc_bus2 {
+                uio_pruss2_mdio: uio_pruss2_mdio {
+                    compatible = "ti,davinci_mdio";
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+                    clocks = <&dpll_gmac_h13x2_ck>;
+                    clock-names = "fck";
+                    bus_freq = <1000000>;
+                    reg = <0x4b2b2400 0x90>;
+                    status = "disabled";
+                };
 
 		uio_pruss2_mem: uio_pruss2_mem {
 			compatible = "ti,uio-module-drv";
-			ti,hwmods = "pruss2";
 			mem = <0x4b280000 0x2000>,
 			      <0x4b282000 0x2000>,
 			      <0x4b290000 0x8000>,
@@ -102,48 +134,57 @@
 			compatible = "ti,uio-module-drv";
 			mem = <0x4b2a8000 0x38>,
 			      <0x4b2b0000 0x60>,
-			      <0x4b2b2400 0x90>;
-			mem-names = "uart", "ecap", "mdio";
+			      <0x4b2b2400 0x90>,
+			      <0x40300000 0x40000>;
+			mem-names = "uart", "ecap", "mdio", "ocmc";
 			status = "okay";
 		};
 		uio_pruss2_evt0: uio_pruss2_evt0 {
 			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
 			status = "okay";
 		};
 		uio_pruss2_evt1: uio_pruss2_evt1 {
 			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
 			status = "okay";
 		};
 		uio_pruss2_evt2: uio_pruss2_evt2 {
 			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
 			status = "okay";
 		};
 		uio_pruss2_evt3: uio_pruss2_evt3 {
 			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
 			status = "okay";
 		};
 		uio_pruss2_evt4: uio_pruss2_evt4 {
 			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
 			status = "okay";
 		};
 		uio_pruss2_evt5: uio_pruss2_evt5 {
 			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 201 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
 			status = "okay";
 		};
 		uio_pruss2_evt6: uio_pruss2_evt6 {
 			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 202 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
 			status = "okay";
 		};
 		uio_pruss2_evt7: uio_pruss2_evt7 {
 			compatible = "ti,uio-module-drv";
-			interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-mode = <1>;
 			status = "okay";
 		};
 
@@ -163,23 +204,35 @@
 			mem-names = "iram", "control", "debug";
 			status = "okay";
 		};
-	};
 };
 
-&pruss1 {
-	status = "disabled";
+&uio_pruss2_mdio {
+        reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>,
+                      <&gpio5 9 GPIO_ACTIVE_LOW>;
+        reset-delay-us = <2>;   /* PHY datasheet states 1uS min */
 };
 
-&pru1_0 {
-	status = "disabled";
+&uio_pruss2_mdio {
+         status = "okay";
+         uio_pruss2_eth0_phy: uio_pruss2_eth0_phy at 0 {
+             reg = <0>;
+         };
+
+         uio_pruss2_eth1_phy: uio_pruss2_eth1_phy at 1 {
+              reg = <1>;
+          };
 };
 
-&pru1_1 {
-	status = "disabled";
+&pruss2_emac0 {
+        status = "disabled";
+};
+
+&pruss2_emac1 {
+        status = "disabled";
 };
 
 &pruss2 {
-	status = "disabled";
+        status = "disabled";
 };
 
 &pru2_0 {
@@ -190,6 +243,10 @@
 	status = "disabled";
 };
 
+&pruss2_intc {
+        status = "disabled";
+};
+
 &pruss2_mdio {
-	status = "disabled";
+        status = "disabled";
 };
diff --git a/recipes-kernel/linux/files/k2g/keystone-k2g-pru-uio.dtsi b/recipes-kernel/linux/files/k2g/keystone-k2g-pru-uio.dtsi
new file mode 100644
index 0000000..69955a4
--- /dev/null
+++ b/recipes-kernel/linux/files/k2g/keystone-k2g-pru-uio.dtsi
@@ -0,0 +1,391 @@
+&pruss_soc_bus0 {
+		uio_pruss1_mdio: uio_mdio at 20ab2400 {
+			compatible = "ti,davinci_mdio";
+			reg = <0x20ab2400 0x90>;
+			clocks = <&k2g_clks K2G_DEV_ICSS0 K2G_DEV_ICSS_CORE_CLK>;
+			clock-names = "fck";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			bus_freq = <2500000>;
+			status = "disabled";
+		};
+
+		uio_pruss1_mem: uio_pruss1_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x20a80000 0x2000>,
+			      <0x20a82000 0x2000>,
+			      <0x20a90000 0x10000>,
+			      <0x20aa0000 0x2000>,
+			      <0x20aa6000 0x2000>,
+			      <0x20aae000 0x31c>,
+			      <0x20ab2000 0x70>;
+			mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+				    "iep", "mii_rt";
+			status = "okay";
+		};
+		uio_pruss1_mem2: uio_pruss1_mem2 {
+			compatible = "ti,uio-module-drv";
+			mem = <0x20aa8000 0x38>,
+			      <0x20ab0000 0x60>,
+			      <0x20ab2400 0x90>,
+			      <0x0c080000 0xe000>;
+			mem-names = "uart", "ecap", "mdio", "ocmc";
+			status = "okay";
+		};
+		uio_pruss1_evt0: uio_pruss1_evt0 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 224 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss1_evt1: uio_pruss1_evt1 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 225 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss1_evt2: uio_pruss1_evt2 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 226 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss1_evt3: uio_pruss1_evt3 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 227 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss1_evt4: uio_pruss1_evt4 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 228 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss1_evt6: uio_pruss1_evt6 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 230 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss1_evt7: uio_pruss1_evt7 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 231 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+
+		uio_pruss1_0_mem: uio_pruss1_0_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x20ab4000 0x3000>,
+			      <0x20aa2000 0x400>,
+			      <0x20aa2400 0x100>;
+			mem-names = "iram", "control", "debug";
+			status = "okay";
+		};
+
+		uio_pruss1_1_mem: uio_pruss1_1_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x20ab8000 0x3000>,
+			      <0x20aa4000 0x400>,
+			      <0x20aa4400 0x100>;
+			mem-names = "iram", "control", "debug";
+			status = "okay";
+		};
+};
+
+&pruss_soc_bus1 {
+		uio_pruss2_mdio: uio_mdio at 20af2400 {
+			compatible = "ti,davinci_mdio";
+			reg = <0x20af2400 0x90>;
+			clocks = <&k2g_clks K2G_DEV_ICSS1 K2G_DEV_ICSS_CORE_CLK>;
+			clock-names = "fck";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			bus_freq = <2500000>;
+			status = "disabled";
+		};
+
+		uio_pruss2_mem: uio_pruss2_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x20ac0000 0x2000>,
+			      <0x20ac2000 0x2000>,
+			      <0x20ad0000 0x10000>,
+			      <0x20ae0000 0x2000>,
+			      <0x20ae6000 0x2000>,
+			      <0x20aee000 0x31c>,
+			      <0x20af2000 0x70>;
+			mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+				    "iep", "mii_rt";
+			status = "okay";
+		};
+		uio_pruss2_mem2: uio_pruss2_mem2 {
+			compatible = "ti,uio-module-drv";
+			mem = <0x20ae8000 0x38>,
+			      <0x20af0000 0x60>,
+			      <0x20af2400 0x90>,
+			      <0x0c08e000 0xe000>;
+			mem-names = "uart", "ecap", "mdio", "ocmc";
+			status = "okay";
+		};
+		uio_pruss2_evt0: uio_pruss2_evt0 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 232 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss2_evt1: uio_pruss2_evt1 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 233 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss2_evt2: uio_pruss2_evt2 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 234 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss2_evt3: uio_pruss2_evt3 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 235 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss2_evt4: uio_pruss2_evt4 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 236 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss2_evt6: uio_pruss2_evt6 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 238 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+		uio_pruss2_evt7: uio_pruss2_evt7 {
+			compatible = "ti,uio-module-drv";
+			interrupts = <GIC_SPI 239 0xf01>;
+			interrupt-mode = <0>;
+			status = "okay";
+		};
+
+		uio_pruss2_0_mem: uio_pruss2_0_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x20af4000 0x3000>,
+			      <0x20ae2000 0x400>,
+			      <0x20ae2400 0x100>;
+			mem-names = "iram", "control", "debug";
+			status = "okay";
+		};
+		uio_pruss2_1_mem: uio_pruss2_1_mem {
+			compatible = "ti,uio-module-drv";
+			mem = <0x20af8000 0x3000>,
+			      <0x20ae4000 0x400>,
+			      <0x20ae4400 0x100>;
+			mem-names = "iram", "control", "debug";
+			status = "okay";
+		};
+};
+
+&k2g_pinctrl {
+	uio_pruss1_mdio_eth_default: uio_pruss1_mdio_eth_default {
+		pinctrl-single,pins = <
+                        K2G_CORE_IOPAD(0x12cc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)      /* pr0_mdio_data.pr0_mdio_data */
+                        K2G_CORE_IOPAD(0x12d0) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE0)      /* pr0_mdio_mdclk.pr0_mdio_mdclk */
+                        K2G_CORE_IOPAD(0x105c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE3)      /* gpmc_wait1.gpio0_23 (pr0_mii0_resetn) */
+                        K2G_CORE_IOPAD(0x1070) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3)        /* gpmc_csn2.gpio0_28 (pr0_mii0_intn) */
+                        K2G_CORE_IOPAD(0x1054) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE3)      /* gpmc_be1n.gpio0_21 (pr0_mii1_resetn) */
+                        K2G_CORE_IOPAD(0x1074) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3)        /* gpmc_csn3.gpio0_29 (pr0_mii1_intn) */
+
+                        /* PRUSS0 External Mux routing */
+                        K2G_CORE_IOPAD(0x11d4) (BUFFER_CLASS_B | MUX_MODE3)                     /* uart0_ctsn.gpio0_106 */
+                        K2G_CORE_IOPAD(0x11d8) (BUFFER_CLASS_B | MUX_MODE3)                     /* uart0_rtsn.gpio0_107 */
+                        K2G_CORE_IOPAD(0x11fc) (BUFFER_CLASS_B | MUX_MODE3)                     /* dcan0_rx.gpio1_57 */
+                        K2G_CORE_IOPAD(0x1200) (BUFFER_CLASS_B | MUX_MODE3)                     /* dcan0_tx.gpio1_56 */
+                        K2G_CORE_IOPAD(0x1224) (BUFFER_CLASS_B | MUX_MODE3)                     /* qspi_csn2.gpio1_66 */
+                        K2G_CORE_IOPAD(0x1228) (BUFFER_CLASS_B | MUX_MODE3)                     /* qspi_csn3.gpio1_67 */
+
+                        /* PRUSS0 PRU0 Ethernet */
+                        K2G_CORE_IOPAD(0x122c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru0_gpo0.pr0_pru0_gpi0 (pr0_mii0_rxd0) */
+                        K2G_CORE_IOPAD(0x1230) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru0_gpo1.pr0_pru0_gpi1 (pr0_mii0_rxd1) */
+                        K2G_CORE_IOPAD(0x1234) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru0_gpo2.pr0_pru0_gpi2 (pr0_mii0_rxd2) */
+                        K2G_CORE_IOPAD(0x1238) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru0_gpo3.pr0_pru0_gpi3 (pr0_mii0_rxd3) */
+                        K2G_CORE_IOPAD(0x123c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru0_gpo4.pr0_pru0_gpi4 (pr0_mii0_rxdv) */
+                        K2G_CORE_IOPAD(0x1240) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru0_gpo5.pr0_pru0_gpi5 (pr0_mii0_rxer) */
+                        K2G_CORE_IOPAD(0x1244) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr0_pru0_gpo6.pr0_pru0_gpi6 (pr0_mii_mr0_clk) */
+
+                        K2G_CORE_IOPAD(0x124c) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr0_pru0_gpo8.pr0_pru0_gpi8 (pr0_mii0_rxlink) */
+                        K2G_CORE_IOPAD(0x1250) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru0_gpo9.pr0_pru0_gpi9 (pr0_mii0_col) */
+                        K2G_CORE_IOPAD(0x1254) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru0_gpo10.pr0_pru0_gpi10 (pr0_mii0_crs) */
+
+                        K2G_CORE_IOPAD(0x12a8) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru1_gpo11.pr0_pru1_gpo11 (pr0_mii0_txd0) */
+                        K2G_CORE_IOPAD(0x12ac) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru1_gpo12.pr0_pru1_gpo12 (pr0_mii0_txd1) */
+                        K2G_CORE_IOPAD(0x12b0) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru1_gpo13.pr0_pru1_gpo13 (pr0_mii0_txd2) */
+                        K2G_CORE_IOPAD(0x12b4) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru1_gpo14.pr0_pru1_gpo14 (pr0_mii0_txd3) */
+                        K2G_CORE_IOPAD(0x12b8) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru1_gpo15.pr0_pru1_gpo15 (pr0_mii0_txen) */
+                        K2G_CORE_IOPAD(0x12bc) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr0_pru1_gpo16.pr0_pru1_gpo16 (pr0_mii_mt0_clk) */
+
+                        /* PRUSS0 PRU1 Ethernet */
+                        K2G_CORE_IOPAD(0x127c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru1_gpo0.pr0_pru1_gpi0 (pr0_mii1_rxd0) */
+                        K2G_CORE_IOPAD(0x1280) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru1_gpo1.pr0_pru1_gpi1 (pr0_mii1_rxd1) */
+                        K2G_CORE_IOPAD(0x1284) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru1_gpo2.pr0_pru1_gpi2 (pr0_mii1_rxd2) */
+                        K2G_CORE_IOPAD(0x1288) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru1_gpo3.pr0_pru1_gpi3 (pr0_mii1_rxd3) */
+                        K2G_CORE_IOPAD(0x128c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru1_gpo4.pr0_pru1_gpi4 (pr0_mii1_rxdv) */
+                        K2G_CORE_IOPAD(0x1290) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru1_gpo5.pr0_pru1_gpi5 (pr0_mii1_rxer) */
+                        K2G_CORE_IOPAD(0x1294) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr0_pru1_gpo6.pr0_pru1_gpi6 (pr0_mii_mr1_clk) */
+
+                        K2G_CORE_IOPAD(0x129c) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr0_pru1_gpo8.pr0_pru1_gpi8 (pr0_mii1_rxlink) */
+                        K2G_CORE_IOPAD(0x12a0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru1_gpo9.pr0_pru1_gpi9 (pr0_mii1_col) */
+                        K2G_CORE_IOPAD(0x12a4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr0_pru1_gpo10.pr0_pru1_gpi10 (pr0_mii1_crs) */
+
+                        K2G_CORE_IOPAD(0x1258) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru0_gpo11.pr0_pru0_gpo11 (pr0_mii1_txd0) */
+                        K2G_CORE_IOPAD(0x125c) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru0_gpo12.pr0_pru0_gpo12 (pr0_mii1_txd1) */
+                        K2G_CORE_IOPAD(0x1260) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru0_gpo13.pr0_pru0_gpo13 (pr0_mii1_txd2) */
+                        K2G_CORE_IOPAD(0x1264) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru0_gpo14.pr0_pru0_gpo14 (pr0_mii1_txd3) */
+                        K2G_CORE_IOPAD(0x1268) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr0_pru0_gpo15.pr0_pru0_gpo15 (pr0_mii1_txen) */
+                        K2G_CORE_IOPAD(0x126c) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr0_pru0_gpo16.pr0_pru0_gpo16 (pr0_mii_mt1_clk) */
+		>;
+	};
+
+	uio_pruss2_mdio_eth_default: uio_pruss2_mdio_eth_default {
+		pinctrl-single,pins = <
+                        K2G_CORE_IOPAD(0x1374) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)      /* pr1_mdio_data.pr1_mdio_data */
+                        K2G_CORE_IOPAD(0x1378) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE0)      /* pr1_mdio_mdclk.pr1_mdio_mdclk */
+                        K2G_CORE_IOPAD(0x1050) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE3)      /* gpmc_be0ncle.gpio0_20 (pr1_mii0_resetn) */
+                        K2G_CORE_IOPAD(0x1044) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3)        /* gpmc_advnale.gpio0_17 (pr1_mii0_intn) */
+                        K2G_CORE_IOPAD(0x1060) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE3)      /* gpmc_wpn.gpio0_24 (pr1_mii1_resetn) */
+                        K2G_CORE_IOPAD(0x1088) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3)        /* gpmc_wait0.gpio0_22 (pr1_mii1_intn) */
+
+                        /* PRUSS1 PRU0 Ethernet */
+                        K2G_CORE_IOPAD(0x12d4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru0_gpo0.pr1_pru0_gpi0 (pr1_mii0_rxd0) */
+                        K2G_CORE_IOPAD(0x12d8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru0_gpo1.pr1_pru0_gpi1 (pr1_mii0_rxd1) */
+                        K2G_CORE_IOPAD(0x12dc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru0_gpo2.pr1_pru0_gpi2 (pr1_mii0_rxd2) */
+                        K2G_CORE_IOPAD(0x12e0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru0_gpo3.pr1_pru0_gpi3 (pr1_mii0_rxd3) */
+                        K2G_CORE_IOPAD(0x12e4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru0_gpo4.pr1_pru0_gpi4 (pr1_mii0_rxdv) */
+                        K2G_CORE_IOPAD(0x12e8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru0_gpo5.pr1_pru0_gpi5 (pr1_mii0_rxer) */
+                        K2G_CORE_IOPAD(0x12ec) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr1_pru0_gpo6.pr1_pru0_gpi6 (pr1_mii_mr0_clk) */
+
+                        K2G_CORE_IOPAD(0x12f4) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr1_pru0_gpo8.pr1_pru0_gpi8 (pr1_mii0_rxlink) */
+                        K2G_CORE_IOPAD(0x12f8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru0_gpo9.pr1_pru0_gpi9 (pr1_mii0_col) */
+                        K2G_CORE_IOPAD(0x12fc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru0_gpo10.pr1_pru0_gpi10 (pr1_mii0_crs) */
+
+                        K2G_CORE_IOPAD(0x1350) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru1_gpo11.pr1_pru1_gpo11 (pr1_mii0_txd0) */
+                        K2G_CORE_IOPAD(0x1354) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru1_gpo12.pr1_pru1_gpo12 (pr1_mii0_txd1) */
+                        K2G_CORE_IOPAD(0x1358) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru1_gpo13.pr1_pru1_gpo13 (pr1_mii0_txd2) */
+                        K2G_CORE_IOPAD(0x135c) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru1_gpo14.pr1_pru1_gpo14 (pr1_mii0_txd3) */
+                        K2G_CORE_IOPAD(0x1360) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru1_gpo15.pr1_pru1_gpo15 (pr1_mii0_txen) */
+                        K2G_CORE_IOPAD(0x1364) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr1_pru1_gpo16.pr1_pru1_gpo16 (pr1_mii_mt0_clk) */
+
+                        /* PRUSS1 PRU1 Ethernet */
+                        K2G_CORE_IOPAD(0x1324) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru1_gpo0.pr1_pru1_gpi0 (pr1_mii1_rxd0) */
+                        K2G_CORE_IOPAD(0x132c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru1_gpo2.pr1_pru1_gpi2 (pr1_mii1_rxd2) */
+                        K2G_CORE_IOPAD(0x1330) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru1_gpo3.pr1_pru1_gpi3 (pr1_mii1_rxd3) */
+                        K2G_CORE_IOPAD(0x1334) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru1_gpo4.pr1_pru1_gpi4 (pr1_mii1_rxdv) */
+                        K2G_CORE_IOPAD(0x1338) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru1_gpo5.pr1_pru1_gpi5 (pr1_mii1_rxer) */
+                        K2G_CORE_IOPAD(0x133c) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr1_pru1_gpo6.pr1_pru1_gpi6 (pr1_mii_mr1_clk) */
+
+                        K2G_CORE_IOPAD(0x1344) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr1_pru1_gpo8.pr1_pru1_gpi8 (pr1_mii1_rxlink) */
+                        K2G_CORE_IOPAD(0x1348) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru1_gpo9.pr1_pru1_gpi9 (pr1_mii1_col) */
+                        K2G_CORE_IOPAD(0x134c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)      /* pr1_pru1_gpo10.pr1_pru1_gpi10 (pr1_mii1_crs) */
+
+                        K2G_CORE_IOPAD(0x1300) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru0_gpo11.pr1_pru0_gpo11 (pr1_mii1_txd0) */
+                        K2G_CORE_IOPAD(0x1304) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru0_gpo12.pr1_pru0_gpo12 (pr1_mii1_txd1) */
+                        K2G_CORE_IOPAD(0x1308) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru0_gpo13.pr1_pru0_gpo13 (pr1_mii1_txd2) */
+                        K2G_CORE_IOPAD(0x130c) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru0_gpo14.pr1_pru0_gpo14 (pr1_mii1_txd3) */
+                        K2G_CORE_IOPAD(0x1310) (BUFFER_CLASS_B | MUX_MODE0)                     /* pr1_pru0_gpo15.pr1_pru0_gpo15 (pr1_mii1_txen) */
+                        K2G_CORE_IOPAD(0x1314) (BUFFER_CLASS_B | MUX_MODE1)                     /* pr1_pru0_gpo16.pr1_pru0_gpo16 (pr1_mii_mt1_clk) */
+		>;
+	};
+};
+
+&uio_pruss1_mdio {
+        status = "okay";
+        pinctrl-0 = <&uio_pruss1_mdio_eth_default>;
+        pinctrl-names = "default";
+        reset-gpios = <&gpio0 23 GPIO_ACTIVE_LOW>,
+                      <&gpio0 21 GPIO_ACTIVE_LOW>;
+        reset-delay-us = <20>;
+
+        uio_pruss1_eth0_phy: uio-ethernet-phy at 0 {
+                reg = <0>;
+        };
+
+        uio_pruss1_eth1_phy: uio-ethernet-phy at 1 {
+                reg = <1>;
+        };
+};
+
+&uio_pruss2_mdio {
+        status = "okay";
+        pinctrl-0 = <&uio_pruss2_mdio_eth_default>;
+        pinctrl-names = "default";
+        reset-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>,
+                      <&gpio0 24 GPIO_ACTIVE_LOW>;
+        reset-delay-us = <20>;
+
+        uio_pruss2_eth0_phy: uio-ethernet-phy at 2 {
+                reg = <2>;
+        };
+
+        uio_pruss2_eth1_phy: uio-ethernet-phy at 3 {
+                reg = <3>;
+        };
+};
+
+&pruss0 {
+	status = "disabled";
+};
+
+&pru0_0 {
+	status = "disabled";
+};
+
+&pru0_1 {
+	status = "disabled";
+};
+
+&pruss0_intc {
+	status = "disabled";
+};
+
+&pruss0_mdio {
+	status = "disabled";
+};
+
+&pruss1 {
+	status = "disabled";
+};
+
+&pru1_0 {
+	status = "disabled";
+};
+
+&pru1_1 {
+	status = "disabled";
+};
+
+&pruss1_intc {
+	status = "disabled";
+};
+
+&pruss1_mdio {
+	status = "disabled";
+};
+
+&pruss0_emac0 {
+	status = "disabled";
+};
+
+&pruss0_emac1 {
+	status = "disabled";
+};
+
+&pruss1_emac0 {
+	status = "disabled";
+};
+
+&pruss1_emac1 {
+	status = "disabled";
+};
diff --git a/recipes-kernel/linux/ti-uio.inc b/recipes-kernel/linux/ti-uio.inc
index 5c43637..13cf53e 100644
--- a/recipes-kernel/linux/ti-uio.inc
+++ b/recipes-kernel/linux/ti-uio.inc
@@ -2,7 +2,10 @@ SRC_URI_append_keystone = " file://keystone-uio.dtsi"
 SRC_URI_append_k2hk = " file://k2hk-uio.dtsi"
 SRC_URI_append_k2l-evm = " file://k2l-uio.dtsi"
 SRC_URI_append_k2e = " file://k2e-uio.dtsi"
-SRC_URI_append_am57xx-evm = " file://am572x-pru-uio.dtsi"
+SRC_URI_append_k2g = " file://keystone-k2g-pru-uio.dtsi"
+SRC_URI_append_am57xx-evm = " file://am572x-pru-uio.dtsi \
+                              file://am571x-pru-uio.dtsi \
+"
 SRC_URI_append_ti33x = " file://am335x-pru-uio.dtsi"
 SRC_URI_append_ti43x = " file://am437x-pru-uio.dtsi"
 
@@ -12,9 +15,10 @@ DTSI_LIST_append_k2hk = " k2hk-uio.dtsi"
 DTSI_LIST_append_k2l-evm = " k2l-uio.dtsi"
 DTSI_LIST_append_k2e = " k2e-uio.dtsi"
 
-KERNEL_DEVICETREE_append_am57xx-evm = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am572x-idk-pru-excl-uio.dtb", "", d)}"
+KERNEL_DEVICETREE_append_am57xx-evm = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am572x-idk-pru-excl-uio.dtb am571x-idk-pru-excl-uio.dtb", "", d)}"
 KERNEL_DEVICETREE_append_ti33x = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am335x-icev2-pru-excl-uio.dtb", "", d)}"
 KERNEL_DEVICETREE_append_ti43x = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am437x-idk-pru-excl-uio.dtb", "", d)}"
+KERNEL_DEVICETREE_append_k2g = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " keystone-k2g-ice-pru-excl-uio.dtb", "", d)}"
 
 do_setup_uio() {
     if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
@@ -40,6 +44,12 @@ do_setup_uio_append_am57xx-evm() {
         cp ${S}/arch/arm/boot/dts/am572x-idk.dts ${S}/arch/arm/boot/dts/$dts
         cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
         echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
+
+        dts="am571x-idk-pru-excl-uio.dts"
+        dtsi="am571x-pru-uio.dtsi"
+        cp ${S}/arch/arm/boot/dts/am571x-idk.dts ${S}/arch/arm/boot/dts/$dts
+        cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
+        echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
     fi
 }
 
@@ -67,4 +77,16 @@ do_setup_uio_append_ti43x() {
     fi
 }
 
+do_setup_uio_append_k2g() {
+
+    if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
+    then
+        dts="keystone-k2g-ice-pru-excl-uio.dts"
+        dtsi="keystone-k2g-pru-uio.dtsi"
+        cp ${S}/arch/arm/boot/dts/keystone-k2g-ice.dts ${S}/arch/arm/boot/dts/$dts
+        cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
+        echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
+    fi
+}
+
 do_patch[postfuncs] += "do_setup_uio"
-- 
1.9.1



More information about the meta-ti mailing list