summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHongmei Gou <a0271529@ti.com>2017-09-06 04:13:07 +0000
committerDenys Dmytriyenko <denys@ti.com>2017-09-26 13:38:42 -0400
commit12d00048d4eaad0a2370dce96bdc80011debd6db (patch)
tree799917345b7c6037fdeb383e6de95c8c7e150266
parentaa3824456f9013ff76811e9b594e64f9d6f8125d (diff)
downloadmeta-ti-12d00048d4eaad0a2370dce96bdc80011debd6db.tar.gz
linux-ti-staging: include pru-uio device tree files for am571x and k2g
* 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@ti.com> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
-rw-r--r--recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi284
-rw-r--r--recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi263
-rw-r--r--recipes-kernel/linux/files/k2g/keystone-k2g-pru-uio.dtsi391
-rw-r--r--recipes-kernel/linux/ti-uio.inc26
4 files changed, 859 insertions, 105 deletions
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 00000000..71e05162
--- /dev/null
+++ b/recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi
@@ -0,0 +1,284 @@
1&pruss_soc_bus1 {
2 uio_pruss1_mdio {
3 status = "okay";
4
5 compatible = "ti,davinci_mdio";
6 #address-cells = <1>;
7 #size-cells = <0>;
8 clocks = <&dpll_gmac_h13x2_ck>;
9 clock-names = "fck";
10 bus_freq = <1000000>;
11 reg = <0x4b232400 0x90>;
12
13 reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
14 reset-delay-us = <2>; /* PHY datasheet states 1uS min */
15 uio_pruss1_eth0_phy: uio_ethernet-phy@0 {
16 reg = <0>;
17 };
18
19 uio_pruss1_eth1_phy: uio_ethernet-phy@1 {
20 reg = <1>;
21 };
22 };
23
24 uio_pruss1_mem: uio_pruss1_mem {
25 compatible = "ti,uio-module-drv";
26 mem = <0x4b200000 0x2000>,
27 <0x4b202000 0x2000>,
28 <0x4b210000 0x8000>,
29 <0x4b220000 0x5404>,
30 <0x4b226000 0x474>,
31 <0x4b22e000 0xc04>,
32 <0x4b232000 0x154>;
33 mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
34 "iep", "mii_rt";
35 status = "okay";
36 };
37 uio_pruss1_mem2: uio_pruss1_mem2 {
38 compatible = "ti,uio-module-drv";
39 mem = <0x4b228000 0xd4>,
40 <0x4b230000 0x174>,
41 <0x4b232400 0x234>,
42 <0x40300000 0x40000>;
43 mem-names = "uart", "ecap", "mdio", "ocmc";
44 status = "okay";
45 };
46 uio_pruss1_evt0: uio_pruss1_evt0 {
47 compatible = "ti,uio-module-drv";
48 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
49 interrupt-mode = <1>;
50 status = "okay";
51 };
52 uio_pruss1_evt1: uio_pruss1_evt1 {
53 compatible = "ti,uio-module-drv";
54 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
55 interrupt-mode = <1>;
56 status = "okay";
57 };
58 uio_pruss1_evt2: uio_pruss1_evt2 {
59 compatible = "ti,uio-module-drv";
60 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
61 interrupt-mode = <1>;
62 status = "okay";
63 };
64 uio_pruss1_evt3: uio_pruss1_evt3 {
65 compatible = "ti,uio-module-drv";
66 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
67 interrupt-mode = <1>;
68 status = "okay";
69 };
70 uio_pruss1_evt4: uio_pruss1_evt4 {
71 compatible = "ti,uio-module-drv";
72 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
73 interrupt-mode = <1>;
74 status = "okay";
75 };
76 uio_pruss1_evt5: uio_pruss1_evt5 {
77 compatible = "ti,uio-module-drv";
78 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
79 interrupt-mode = <1>;
80 status = "okay";
81 };
82 uio_pruss1_evt6: uio_pruss1_evt6 {
83 compatible = "ti,uio-module-drv";
84 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
85 interrupt-mode = <1>;
86 status = "okay";
87 };
88 uio_pruss1_evt7: uio_pruss1_evt7 {
89 compatible = "ti,uio-module-drv";
90 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
91 interrupt-mode = <1>;
92 status = "okay";
93 };
94
95 uio_pruss1_0_mem: uio_pruss1_0_mem {
96 compatible = "ti,uio-module-drv";
97 mem = <0x4b234000 0x3000>,
98 <0x4b222000 0xb4>,
99 <0x4b222400 0x3f4>;
100 mem-names = "iram", "control", "debug";
101 status = "okay";
102 };
103
104 uio_pruss1_1_mem: uio_pruss1_1_mem {
105 compatible = "ti,uio-module-drv";
106 mem = <0x4b238000 0x3000>,
107 <0x4b224000 0xb4>,
108 <0x4b224400 0x3f4>;
109 mem-names = "iram", "control", "debug";
110 status = "okay";
111 };
112};
113
114&pruss_soc_bus2 {
115 uio_pruss2_mdio {
116 compatible = "ti,davinci_mdio";
117 #address-cells = <1>;
118 #size-cells = <0>;
119 clocks = <&dpll_gmac_h13x2_ck>;
120 clock-names = "fck";
121 bus_freq = <1000000>;
122 reg = <0x4b2b2400 0x90>;
123 status = "okay";
124
125 reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
126 reset-delay-us = <2>; /* PHY datasheet states 1uS min */
127
128 uio_pruss2_eth0_phy: ethernet-phy@0 {
129 reg = <0>;
130 };
131
132 uio_pruss2_eth1_phy: ethernet-phy@1 {
133 reg = <1>;
134 };
135 };
136
137 uio_pruss2_mem: uio_pruss2_mem {
138 compatible = "ti,uio-module-drv";
139 mem = <0x4b280000 0x2000>,
140 <0x4b282000 0x2000>,
141 <0x4b290000 0x8000>,
142 <0x4b2a0000 0x5404>,
143 <0x4b2a6000 0x474>,
144 <0x4b2ae000 0xc04>,
145 <0x4b2b2000 0x154>;
146 mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
147 "iep", "mii_rt";
148 status = "okay";
149 };
150 uio_pruss2_mem2: uio_pruss2_mem2 {
151 compatible = "ti,uio-module-drv";
152 mem = <0x4b2a8000 0xd4>,
153 <0x4b2b0000 0x174>,
154 <0x4b2b2400 0x234>,
155 <0x40340000 0x40000>;
156 mem-names = "uart", "ecap", "mdio", "ocmc";
157 status = "okay";
158 };
159 uio_pruss2_evt0: uio_pruss2_evt0 {
160 compatible = "ti,uio-module-drv";
161 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
162 interrupt-mode = <1>;
163 status = "okay";
164 };
165 uio_pruss2_evt1: uio_pruss2_evt1 {
166 compatible = "ti,uio-module-drv";
167 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
168 interrupt-mode = <1>;
169 status = "okay";
170 };
171 uio_pruss2_evt2: uio_pruss2_evt2 {
172 compatible = "ti,uio-module-drv";
173 interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
174 interrupt-mode = <1>;
175 status = "okay";
176 };
177 uio_pruss2_evt3: uio_pruss2_evt3 {
178 compatible = "ti,uio-module-drv";
179 interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
180 interrupt-mode = <1>;
181 status = "okay";
182 };
183 uio_pruss2_evt4: uio_pruss2_evt4 {
184 compatible = "ti,uio-module-drv";
185 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
186 interrupt-mode = <1>;
187 status = "okay";
188 };
189 uio_pruss2_evt5: uio_pruss2_evt5 {
190 compatible = "ti,uio-module-drv";
191 interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
192 interrupt-mode = <1>;
193 status = "okay";
194 };
195 uio_pruss2_evt6: uio_pruss2_evt6 {
196 compatible = "ti,uio-module-drv";
197 interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
198 interrupt-mode = <1>;
199 status = "okay";
200 };
201 uio_pruss2_evt7: uio_pruss2_evt7 {
202 compatible = "ti,uio-module-drv";
203 interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
204 interrupt-mode = <1>;
205 status = "okay";
206 };
207
208 uio_pruss2_0_mem: uio_pruss2_0_mem {
209 compatible = "ti,uio-module-drv";
210 mem = <0x4b2b4000 0x3000>,
211 <0x4b2a2000 0xb4>,
212 <0x4b2a2400 0x3f4>;
213 mem-names = "iram", "control", "debug";
214 status = "okay";
215 };
216 uio_pruss2_1_mem: uio_pruss2_1_mem {
217 compatible = "ti,uio-module-drv";
218 mem = <0x4b2b8000 0x3000>,
219 <0x4b2a4000 0xb4>,
220 <0x4b2a4400 0x3f4>;
221 mem-names = "iram", "control", "debug";
222 status = "okay";
223 };
224 };
225
226&pruss1_eth {
227 status = "disabled";
228};
229
230&pruss1_emac0 {
231 status = "disabled";
232};
233
234&pruss1_emac1 {
235 status = "disabled";
236};
237
238&pruss2_emac0 {
239 status = "disabled";
240};
241
242&pruss2_emac1 {
243 status = "disabled";
244};
245
246&pruss1 {
247 status = "disabled";
248};
249
250&pru1_0 {
251 status = "disabled";
252};
253
254&pru1_1 {
255 status = "disabled";
256};
257
258&pruss1_intc {
259 status = "disabled";
260};
261
262&pruss1_mdio {
263 status = "disabled";
264};
265
266&pruss2 {
267 status = "disabled";
268};
269
270&pru2_0 {
271 status = "disabled";
272};
273
274&pru2_1 {
275 status = "disabled";
276};
277
278&pruss2_intc {
279 status = "disabled";
280};
281
282&pruss2_mdio {
283 status = "disabled";
284};
diff --git a/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi b/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi
index 828a0cee..f149cf1c 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 @@
1/ { 1&pruss_soc_bus1 {
2 ocp { 2 uio_pruss1_mem: uio_pruss1_mem {
3 pruss2_eth { 3 compatible = "ti,uio-module-drv";
4 status = "disabled"; 4 mem = <0x4b200000 0x2000>,
5 }; 5 <0x4b202000 0x2000>,
6 uio_pruss1_mem: uio_pruss1_mem { 6 <0x4b210000 0x8000>,
7 compatible = "ti,uio-module-drv"; 7 <0x4b220000 0x2000>,
8 ti,hwmods = "pruss1"; 8 <0x4b226000 0x2000>,
9 mem = <0x4b200000 0x2000>, 9 <0x4b22e000 0x31c>,
10 <0x4b202000 0x2000>, 10 <0x4b232000 0x58>;
11 <0x4b210000 0x8000>, 11 mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
12 <0x4b220000 0x2000>, 12 "iep", "mii_rt";
13 <0x4b226000 0x2000>, 13 status = "okay";
14 <0x4b22e000 0x31c>, 14 };
15 <0x4b232000 0x58>; 15 uio_pruss1_mem2: uio_pruss1_mem2 {
16 mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg", 16 compatible = "ti,uio-module-drv";
17 "iep", "mii_rt"; 17 mem = <0x4b228000 0x38>,
18 status = "okay"; 18 <0x4b230000 0x60>,
19 }; 19 <0x4b232400 0x90>,
20 uio_pruss1_mem2: uio_pruss1_mem2 { 20 <0x40340000 0x40000>;
21 compatible = "ti,uio-module-drv"; 21 mem-names = "uart", "ecap", "mdio", "ocmc";
22 mem = <0x4b228000 0x38>, 22 status = "okay";
23 <0x4b230000 0x60>, 23 };
24 <0x4b232400 0x90>; 24 uio_pruss1_evt0: uio_pruss1_evt0 {
25 mem-names = "uart", "ecap", "mdio"; 25 compatible = "ti,uio-module-drv";
26 status = "okay"; 26 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
27 }; 27 interrupt-mode = <1>;
28 uio_pruss1_evt0: uio_pruss1_evt0 { 28 status = "okay";
29 compatible = "ti,uio-module-drv"; 29 };
30 interrupts = <GIC_SPI 186 IRQ_TYPE_EDGE_RISING>; 30 uio_pruss1_evt1: uio_pruss1_evt1 {
31 status = "okay"; 31 compatible = "ti,uio-module-drv";
32 }; 32 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
33 uio_pruss1_evt1: uio_pruss1_evt1 { 33 interrupt-mode = <1>;
34 compatible = "ti,uio-module-drv"; 34 status = "okay";
35 interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>; 35 };
36 status = "okay"; 36 uio_pruss1_evt2: uio_pruss1_evt2 {
37 }; 37 compatible = "ti,uio-module-drv";
38 uio_pruss1_evt2: uio_pruss1_evt2 { 38 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
39 compatible = "ti,uio-module-drv"; 39 interrupt-mode = <1>;
40 interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>; 40 status = "okay";
41 status = "okay"; 41 };
42 }; 42 uio_pruss1_evt3: uio_pruss1_evt3 {
43 uio_pruss1_evt3: uio_pruss1_evt3 { 43 compatible = "ti,uio-module-drv";
44 compatible = "ti,uio-module-drv"; 44 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
45 interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; 45 interrupt-mode = <1>;
46 status = "okay"; 46 status = "okay";
47 }; 47 };
48 uio_pruss1_evt4: uio_pruss1_evt4 { 48 uio_pruss1_evt4: uio_pruss1_evt4 {
49 compatible = "ti,uio-module-drv"; 49 compatible = "ti,uio-module-drv";
50 interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; 50 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
51 status = "okay"; 51 interrupt-mode = <1>;
52 }; 52 status = "okay";
53 uio_pruss1_evt5: uio_pruss1_evt5 { 53 };
54 compatible = "ti,uio-module-drv"; 54 uio_pruss1_evt5: uio_pruss1_evt5 {
55 interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; 55 compatible = "ti,uio-module-drv";
56 status = "okay"; 56 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
57 }; 57 interrupt-mode = <1>;
58 uio_pruss1_evt6: uio_pruss1_evt6 { 58 status = "okay";
59 compatible = "ti,uio-module-drv"; 59 };
60 interrupts = <GIC_SPI 192 IRQ_TYPE_EDGE_RISING>; 60 uio_pruss1_evt6: uio_pruss1_evt6 {
61 status = "okay"; 61 compatible = "ti,uio-module-drv";
62 }; 62 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
63 uio_pruss1_evt7: uio_pruss1_evt7 { 63 interrupt-mode = <1>;
64 compatible = "ti,uio-module-drv"; 64 status = "okay";
65 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; 65 };
66 status = "okay"; 66 uio_pruss1_evt7: uio_pruss1_evt7 {
67 }; 67 compatible = "ti,uio-module-drv";
68 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
69 interrupt-mode = <1>;
70 status = "okay";
71 };
68 72
69 uio_pruss1_0_mem: uio_pruss1_0_mem { 73 uio_pruss1_0_mem: uio_pruss1_0_mem {
70 compatible = "ti,uio-module-drv"; 74 compatible = "ti,uio-module-drv";
71 mem = <0x4b234000 0x3000>, 75 mem = <0x4b234000 0x3000>,
72 <0x4b222000 0x400>, 76 <0x4b222000 0x400>,
73 <0x4b222400 0x100>; 77 <0x4b222400 0x100>;
74 mem-names = "iram", "control", "debug"; 78 mem-names = "iram", "control", "debug";
75 status = "okay"; 79 status = "okay";
76 }; 80 };
77 81
78 uio_pruss1_1_mem: uio_pruss1_1_mem { 82 uio_pruss1_1_mem: uio_pruss1_1_mem {
79 compatible = "ti,uio-module-drv"; 83 compatible = "ti,uio-module-drv";
80 mem = <0x4b238000 0x3000>, 84 mem = <0x4b238000 0x3000>,
81 <0x4b224000 0x400>, 85 <0x4b224000 0x400>,
82 <0x4b224400 0x100>; 86 <0x4b224400 0x100>;
83 mem-names = "iram", "control", "debug"; 87 mem-names = "iram", "control", "debug";
84 status = "okay"; 88 status = "okay";
85 }; 89 };
90};
91
92&pruss1 {
93 status = "disabled";
94};
95
96&pru1_0 {
97 status = "disabled";
98};
99
100&pru1_1 {
101 status = "disabled";
102};
103
104&pruss1_intc {
105 status = "disabled";
106};
107
108&pruss_soc_bus2 {
109 uio_pruss2_mdio: uio_pruss2_mdio {
110 compatible = "ti,davinci_mdio";
111 #address-cells = <1>;
112 #size-cells = <0>;
113 clocks = <&dpll_gmac_h13x2_ck>;
114 clock-names = "fck";
115 bus_freq = <1000000>;
116 reg = <0x4b2b2400 0x90>;
117 status = "disabled";
118 };
86 119
87 uio_pruss2_mem: uio_pruss2_mem { 120 uio_pruss2_mem: uio_pruss2_mem {
88 compatible = "ti,uio-module-drv"; 121 compatible = "ti,uio-module-drv";
89 ti,hwmods = "pruss2";
90 mem = <0x4b280000 0x2000>, 122 mem = <0x4b280000 0x2000>,
91 <0x4b282000 0x2000>, 123 <0x4b282000 0x2000>,
92 <0x4b290000 0x8000>, 124 <0x4b290000 0x8000>,
@@ -102,48 +134,57 @@
102 compatible = "ti,uio-module-drv"; 134 compatible = "ti,uio-module-drv";
103 mem = <0x4b2a8000 0x38>, 135 mem = <0x4b2a8000 0x38>,
104 <0x4b2b0000 0x60>, 136 <0x4b2b0000 0x60>,
105 <0x4b2b2400 0x90>; 137 <0x4b2b2400 0x90>,
106 mem-names = "uart", "ecap", "mdio"; 138 <0x40300000 0x40000>;
139 mem-names = "uart", "ecap", "mdio", "ocmc";
107 status = "okay"; 140 status = "okay";
108 }; 141 };
109 uio_pruss2_evt0: uio_pruss2_evt0 { 142 uio_pruss2_evt0: uio_pruss2_evt0 {
110 compatible = "ti,uio-module-drv"; 143 compatible = "ti,uio-module-drv";
111 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>; 144 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
145 interrupt-mode = <1>;
112 status = "okay"; 146 status = "okay";
113 }; 147 };
114 uio_pruss2_evt1: uio_pruss2_evt1 { 148 uio_pruss2_evt1: uio_pruss2_evt1 {
115 compatible = "ti,uio-module-drv"; 149 compatible = "ti,uio-module-drv";
116 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; 150 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
151 interrupt-mode = <1>;
117 status = "okay"; 152 status = "okay";
118 }; 153 };
119 uio_pruss2_evt2: uio_pruss2_evt2 { 154 uio_pruss2_evt2: uio_pruss2_evt2 {
120 compatible = "ti,uio-module-drv"; 155 compatible = "ti,uio-module-drv";
121 interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>; 156 interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
157 interrupt-mode = <1>;
122 status = "okay"; 158 status = "okay";
123 }; 159 };
124 uio_pruss2_evt3: uio_pruss2_evt3 { 160 uio_pruss2_evt3: uio_pruss2_evt3 {
125 compatible = "ti,uio-module-drv"; 161 compatible = "ti,uio-module-drv";
126 interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>; 162 interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
163 interrupt-mode = <1>;
127 status = "okay"; 164 status = "okay";
128 }; 165 };
129 uio_pruss2_evt4: uio_pruss2_evt4 { 166 uio_pruss2_evt4: uio_pruss2_evt4 {
130 compatible = "ti,uio-module-drv"; 167 compatible = "ti,uio-module-drv";
131 interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>; 168 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
169 interrupt-mode = <1>;
132 status = "okay"; 170 status = "okay";
133 }; 171 };
134 uio_pruss2_evt5: uio_pruss2_evt5 { 172 uio_pruss2_evt5: uio_pruss2_evt5 {
135 compatible = "ti,uio-module-drv"; 173 compatible = "ti,uio-module-drv";
136 interrupts = <GIC_SPI 201 IRQ_TYPE_EDGE_RISING>; 174 interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
175 interrupt-mode = <1>;
137 status = "okay"; 176 status = "okay";
138 }; 177 };
139 uio_pruss2_evt6: uio_pruss2_evt6 { 178 uio_pruss2_evt6: uio_pruss2_evt6 {
140 compatible = "ti,uio-module-drv"; 179 compatible = "ti,uio-module-drv";
141 interrupts = <GIC_SPI 202 IRQ_TYPE_EDGE_RISING>; 180 interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
181 interrupt-mode = <1>;
142 status = "okay"; 182 status = "okay";
143 }; 183 };
144 uio_pruss2_evt7: uio_pruss2_evt7 { 184 uio_pruss2_evt7: uio_pruss2_evt7 {
145 compatible = "ti,uio-module-drv"; 185 compatible = "ti,uio-module-drv";
146 interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>; 186 interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
187 interrupt-mode = <1>;
147 status = "okay"; 188 status = "okay";
148 }; 189 };
149 190
@@ -163,23 +204,35 @@
163 mem-names = "iram", "control", "debug"; 204 mem-names = "iram", "control", "debug";
164 status = "okay"; 205 status = "okay";
165 }; 206 };
166 };
167}; 207};
168 208
169&pruss1 { 209&uio_pruss2_mdio {
170 status = "disabled"; 210 reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>,
211 <&gpio5 9 GPIO_ACTIVE_LOW>;
212 reset-delay-us = <2>; /* PHY datasheet states 1uS min */
171}; 213};
172 214
173&pru1_0 { 215&uio_pruss2_mdio {
174 status = "disabled"; 216 status = "okay";
217 uio_pruss2_eth0_phy: uio_pruss2_eth0_phy@0 {
218 reg = <0>;
219 };
220
221 uio_pruss2_eth1_phy: uio_pruss2_eth1_phy@1 {
222 reg = <1>;
223 };
175}; 224};
176 225
177&pru1_1 { 226&pruss2_emac0 {
178 status = "disabled"; 227 status = "disabled";
228};
229
230&pruss2_emac1 {
231 status = "disabled";
179}; 232};
180 233
181&pruss2 { 234&pruss2 {
182 status = "disabled"; 235 status = "disabled";
183}; 236};
184 237
185&pru2_0 { 238&pru2_0 {
@@ -190,6 +243,10 @@
190 status = "disabled"; 243 status = "disabled";
191}; 244};
192 245
246&pruss2_intc {
247 status = "disabled";
248};
249
193&pruss2_mdio { 250&pruss2_mdio {
194 status = "disabled"; 251 status = "disabled";
195}; 252};
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 00000000..69955a44
--- /dev/null
+++ b/recipes-kernel/linux/files/k2g/keystone-k2g-pru-uio.dtsi
@@ -0,0 +1,391 @@
1&pruss_soc_bus0 {
2 uio_pruss1_mdio: uio_mdio@20ab2400 {
3 compatible = "ti,davinci_mdio";
4 reg = <0x20ab2400 0x90>;
5 clocks = <&k2g_clks K2G_DEV_ICSS0 K2G_DEV_ICSS_CORE_CLK>;
6 clock-names = "fck";
7 #address-cells = <1>;
8 #size-cells = <0>;
9 bus_freq = <2500000>;
10 status = "disabled";
11 };
12
13 uio_pruss1_mem: uio_pruss1_mem {
14 compatible = "ti,uio-module-drv";
15 mem = <0x20a80000 0x2000>,
16 <0x20a82000 0x2000>,
17 <0x20a90000 0x10000>,
18 <0x20aa0000 0x2000>,
19 <0x20aa6000 0x2000>,
20 <0x20aae000 0x31c>,
21 <0x20ab2000 0x70>;
22 mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
23 "iep", "mii_rt";
24 status = "okay";
25 };
26 uio_pruss1_mem2: uio_pruss1_mem2 {
27 compatible = "ti,uio-module-drv";
28 mem = <0x20aa8000 0x38>,
29 <0x20ab0000 0x60>,
30 <0x20ab2400 0x90>,
31 <0x0c080000 0xe000>;
32 mem-names = "uart", "ecap", "mdio", "ocmc";
33 status = "okay";
34 };
35 uio_pruss1_evt0: uio_pruss1_evt0 {
36 compatible = "ti,uio-module-drv";
37 interrupts = <GIC_SPI 224 0xf01>;
38 interrupt-mode = <0>;
39 status = "okay";
40 };
41 uio_pruss1_evt1: uio_pruss1_evt1 {
42 compatible = "ti,uio-module-drv";
43 interrupts = <GIC_SPI 225 0xf01>;
44 interrupt-mode = <0>;
45 status = "okay";
46 };
47 uio_pruss1_evt2: uio_pruss1_evt2 {
48 compatible = "ti,uio-module-drv";
49 interrupts = <GIC_SPI 226 0xf01>;
50 interrupt-mode = <0>;
51 status = "okay";
52 };
53 uio_pruss1_evt3: uio_pruss1_evt3 {
54 compatible = "ti,uio-module-drv";
55 interrupts = <GIC_SPI 227 0xf01>;
56 interrupt-mode = <0>;
57 status = "okay";
58 };
59 uio_pruss1_evt4: uio_pruss1_evt4 {
60 compatible = "ti,uio-module-drv";
61 interrupts = <GIC_SPI 228 0xf01>;
62 interrupt-mode = <0>;
63 status = "okay";
64 };
65 uio_pruss1_evt6: uio_pruss1_evt6 {
66 compatible = "ti,uio-module-drv";
67 interrupts = <GIC_SPI 230 0xf01>;
68 interrupt-mode = <0>;
69 status = "okay";
70 };
71 uio_pruss1_evt7: uio_pruss1_evt7 {
72 compatible = "ti,uio-module-drv";
73 interrupts = <GIC_SPI 231 0xf01>;
74 interrupt-mode = <0>;
75 status = "okay";
76 };
77
78 uio_pruss1_0_mem: uio_pruss1_0_mem {
79 compatible = "ti,uio-module-drv";
80 mem = <0x20ab4000 0x3000>,
81 <0x20aa2000 0x400>,
82 <0x20aa2400 0x100>;
83 mem-names = "iram", "control", "debug";
84 status = "okay";
85 };
86
87 uio_pruss1_1_mem: uio_pruss1_1_mem {
88 compatible = "ti,uio-module-drv";
89 mem = <0x20ab8000 0x3000>,
90 <0x20aa4000 0x400>,
91 <0x20aa4400 0x100>;
92 mem-names = "iram", "control", "debug";
93 status = "okay";
94 };
95};
96
97&pruss_soc_bus1 {
98 uio_pruss2_mdio: uio_mdio@20af2400 {
99 compatible = "ti,davinci_mdio";
100 reg = <0x20af2400 0x90>;
101 clocks = <&k2g_clks K2G_DEV_ICSS1 K2G_DEV_ICSS_CORE_CLK>;
102 clock-names = "fck";
103 #address-cells = <1>;
104 #size-cells = <0>;
105 bus_freq = <2500000>;
106 status = "disabled";
107 };
108
109 uio_pruss2_mem: uio_pruss2_mem {
110 compatible = "ti,uio-module-drv";
111 mem = <0x20ac0000 0x2000>,
112 <0x20ac2000 0x2000>,
113 <0x20ad0000 0x10000>,
114 <0x20ae0000 0x2000>,
115 <0x20ae6000 0x2000>,
116 <0x20aee000 0x31c>,
117 <0x20af2000 0x70>;
118 mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
119 "iep", "mii_rt";
120 status = "okay";
121 };
122 uio_pruss2_mem2: uio_pruss2_mem2 {
123 compatible = "ti,uio-module-drv";
124 mem = <0x20ae8000 0x38>,
125 <0x20af0000 0x60>,
126 <0x20af2400 0x90>,
127 <0x0c08e000 0xe000>;
128 mem-names = "uart", "ecap", "mdio", "ocmc";
129 status = "okay";
130 };
131 uio_pruss2_evt0: uio_pruss2_evt0 {
132 compatible = "ti,uio-module-drv";
133 interrupts = <GIC_SPI 232 0xf01>;
134 interrupt-mode = <0>;
135 status = "okay";
136 };
137 uio_pruss2_evt1: uio_pruss2_evt1 {
138 compatible = "ti,uio-module-drv";
139 interrupts = <GIC_SPI 233 0xf01>;
140 interrupt-mode = <0>;
141 status = "okay";
142 };
143 uio_pruss2_evt2: uio_pruss2_evt2 {
144 compatible = "ti,uio-module-drv";
145 interrupts = <GIC_SPI 234 0xf01>;
146 interrupt-mode = <0>;
147 status = "okay";
148 };
149 uio_pruss2_evt3: uio_pruss2_evt3 {
150 compatible = "ti,uio-module-drv";
151 interrupts = <GIC_SPI 235 0xf01>;
152 interrupt-mode = <0>;
153 status = "okay";
154 };
155 uio_pruss2_evt4: uio_pruss2_evt4 {
156 compatible = "ti,uio-module-drv";
157 interrupts = <GIC_SPI 236 0xf01>;
158 interrupt-mode = <0>;
159 status = "okay";
160 };
161 uio_pruss2_evt6: uio_pruss2_evt6 {
162 compatible = "ti,uio-module-drv";
163 interrupts = <GIC_SPI 238 0xf01>;
164 interrupt-mode = <0>;
165 status = "okay";
166 };
167 uio_pruss2_evt7: uio_pruss2_evt7 {
168 compatible = "ti,uio-module-drv";
169 interrupts = <GIC_SPI 239 0xf01>;
170 interrupt-mode = <0>;
171 status = "okay";
172 };
173
174 uio_pruss2_0_mem: uio_pruss2_0_mem {
175 compatible = "ti,uio-module-drv";
176 mem = <0x20af4000 0x3000>,
177 <0x20ae2000 0x400>,
178 <0x20ae2400 0x100>;
179 mem-names = "iram", "control", "debug";
180 status = "okay";
181 };
182 uio_pruss2_1_mem: uio_pruss2_1_mem {
183 compatible = "ti,uio-module-drv";
184 mem = <0x20af8000 0x3000>,
185 <0x20ae4000 0x400>,
186 <0x20ae4400 0x100>;
187 mem-names = "iram", "control", "debug";
188 status = "okay";
189 };
190};
191
192&k2g_pinctrl {
193 uio_pruss1_mdio_eth_default: uio_pruss1_mdio_eth_default {
194 pinctrl-single,pins = <
195 K2G_CORE_IOPAD(0x12cc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* pr0_mdio_data.pr0_mdio_data */
196 K2G_CORE_IOPAD(0x12d0) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE0) /* pr0_mdio_mdclk.pr0_mdio_mdclk */
197 K2G_CORE_IOPAD(0x105c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE3) /* gpmc_wait1.gpio0_23 (pr0_mii0_resetn) */
198 K2G_CORE_IOPAD(0x1070) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3) /* gpmc_csn2.gpio0_28 (pr0_mii0_intn) */
199 K2G_CORE_IOPAD(0x1054) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE3) /* gpmc_be1n.gpio0_21 (pr0_mii1_resetn) */
200 K2G_CORE_IOPAD(0x1074) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3) /* gpmc_csn3.gpio0_29 (pr0_mii1_intn) */
201
202 /* PRUSS0 External Mux routing */
203 K2G_CORE_IOPAD(0x11d4) (BUFFER_CLASS_B | MUX_MODE3) /* uart0_ctsn.gpio0_106 */
204 K2G_CORE_IOPAD(0x11d8) (BUFFER_CLASS_B | MUX_MODE3) /* uart0_rtsn.gpio0_107 */
205 K2G_CORE_IOPAD(0x11fc) (BUFFER_CLASS_B | MUX_MODE3) /* dcan0_rx.gpio1_57 */
206 K2G_CORE_IOPAD(0x1200) (BUFFER_CLASS_B | MUX_MODE3) /* dcan0_tx.gpio1_56 */
207 K2G_CORE_IOPAD(0x1224) (BUFFER_CLASS_B | MUX_MODE3) /* qspi_csn2.gpio1_66 */
208 K2G_CORE_IOPAD(0x1228) (BUFFER_CLASS_B | MUX_MODE3) /* qspi_csn3.gpio1_67 */
209
210 /* PRUSS0 PRU0 Ethernet */
211 K2G_CORE_IOPAD(0x122c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru0_gpo0.pr0_pru0_gpi0 (pr0_mii0_rxd0) */
212 K2G_CORE_IOPAD(0x1230) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru0_gpo1.pr0_pru0_gpi1 (pr0_mii0_rxd1) */
213 K2G_CORE_IOPAD(0x1234) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru0_gpo2.pr0_pru0_gpi2 (pr0_mii0_rxd2) */
214 K2G_CORE_IOPAD(0x1238) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru0_gpo3.pr0_pru0_gpi3 (pr0_mii0_rxd3) */
215 K2G_CORE_IOPAD(0x123c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru0_gpo4.pr0_pru0_gpi4 (pr0_mii0_rxdv) */
216 K2G_CORE_IOPAD(0x1240) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru0_gpo5.pr0_pru0_gpi5 (pr0_mii0_rxer) */
217 K2G_CORE_IOPAD(0x1244) (BUFFER_CLASS_B | MUX_MODE1) /* pr0_pru0_gpo6.pr0_pru0_gpi6 (pr0_mii_mr0_clk) */
218
219 K2G_CORE_IOPAD(0x124c) (BUFFER_CLASS_B | MUX_MODE1) /* pr0_pru0_gpo8.pr0_pru0_gpi8 (pr0_mii0_rxlink) */
220 K2G_CORE_IOPAD(0x1250) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru0_gpo9.pr0_pru0_gpi9 (pr0_mii0_col) */
221 K2G_CORE_IOPAD(0x1254) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru0_gpo10.pr0_pru0_gpi10 (pr0_mii0_crs) */
222
223 K2G_CORE_IOPAD(0x12a8) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru1_gpo11.pr0_pru1_gpo11 (pr0_mii0_txd0) */
224 K2G_CORE_IOPAD(0x12ac) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru1_gpo12.pr0_pru1_gpo12 (pr0_mii0_txd1) */
225 K2G_CORE_IOPAD(0x12b0) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru1_gpo13.pr0_pru1_gpo13 (pr0_mii0_txd2) */
226 K2G_CORE_IOPAD(0x12b4) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru1_gpo14.pr0_pru1_gpo14 (pr0_mii0_txd3) */
227 K2G_CORE_IOPAD(0x12b8) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru1_gpo15.pr0_pru1_gpo15 (pr0_mii0_txen) */
228 K2G_CORE_IOPAD(0x12bc) (BUFFER_CLASS_B | MUX_MODE1) /* pr0_pru1_gpo16.pr0_pru1_gpo16 (pr0_mii_mt0_clk) */
229
230 /* PRUSS0 PRU1 Ethernet */
231 K2G_CORE_IOPAD(0x127c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru1_gpo0.pr0_pru1_gpi0 (pr0_mii1_rxd0) */
232 K2G_CORE_IOPAD(0x1280) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru1_gpo1.pr0_pru1_gpi1 (pr0_mii1_rxd1) */
233 K2G_CORE_IOPAD(0x1284) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru1_gpo2.pr0_pru1_gpi2 (pr0_mii1_rxd2) */
234 K2G_CORE_IOPAD(0x1288) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru1_gpo3.pr0_pru1_gpi3 (pr0_mii1_rxd3) */
235 K2G_CORE_IOPAD(0x128c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru1_gpo4.pr0_pru1_gpi4 (pr0_mii1_rxdv) */
236 K2G_CORE_IOPAD(0x1290) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru1_gpo5.pr0_pru1_gpi5 (pr0_mii1_rxer) */
237 K2G_CORE_IOPAD(0x1294) (BUFFER_CLASS_B | MUX_MODE1) /* pr0_pru1_gpo6.pr0_pru1_gpi6 (pr0_mii_mr1_clk) */
238
239 K2G_CORE_IOPAD(0x129c) (BUFFER_CLASS_B | MUX_MODE1) /* pr0_pru1_gpo8.pr0_pru1_gpi8 (pr0_mii1_rxlink) */
240 K2G_CORE_IOPAD(0x12a0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru1_gpo9.pr0_pru1_gpi9 (pr0_mii1_col) */
241 K2G_CORE_IOPAD(0x12a4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr0_pru1_gpo10.pr0_pru1_gpi10 (pr0_mii1_crs) */
242
243 K2G_CORE_IOPAD(0x1258) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru0_gpo11.pr0_pru0_gpo11 (pr0_mii1_txd0) */
244 K2G_CORE_IOPAD(0x125c) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru0_gpo12.pr0_pru0_gpo12 (pr0_mii1_txd1) */
245 K2G_CORE_IOPAD(0x1260) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru0_gpo13.pr0_pru0_gpo13 (pr0_mii1_txd2) */
246 K2G_CORE_IOPAD(0x1264) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru0_gpo14.pr0_pru0_gpo14 (pr0_mii1_txd3) */
247 K2G_CORE_IOPAD(0x1268) (BUFFER_CLASS_B | MUX_MODE0) /* pr0_pru0_gpo15.pr0_pru0_gpo15 (pr0_mii1_txen) */
248 K2G_CORE_IOPAD(0x126c) (BUFFER_CLASS_B | MUX_MODE1) /* pr0_pru0_gpo16.pr0_pru0_gpo16 (pr0_mii_mt1_clk) */
249 >;
250 };
251
252 uio_pruss2_mdio_eth_default: uio_pruss2_mdio_eth_default {
253 pinctrl-single,pins = <
254 K2G_CORE_IOPAD(0x1374) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* pr1_mdio_data.pr1_mdio_data */
255 K2G_CORE_IOPAD(0x1378) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE0) /* pr1_mdio_mdclk.pr1_mdio_mdclk */
256 K2G_CORE_IOPAD(0x1050) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE3) /* gpmc_be0ncle.gpio0_20 (pr1_mii0_resetn) */
257 K2G_CORE_IOPAD(0x1044) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3) /* gpmc_advnale.gpio0_17 (pr1_mii0_intn) */
258 K2G_CORE_IOPAD(0x1060) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE3) /* gpmc_wpn.gpio0_24 (pr1_mii1_resetn) */
259 K2G_CORE_IOPAD(0x1088) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3) /* gpmc_wait0.gpio0_22 (pr1_mii1_intn) */
260
261 /* PRUSS1 PRU0 Ethernet */
262 K2G_CORE_IOPAD(0x12d4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru0_gpo0.pr1_pru0_gpi0 (pr1_mii0_rxd0) */
263 K2G_CORE_IOPAD(0x12d8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru0_gpo1.pr1_pru0_gpi1 (pr1_mii0_rxd1) */
264 K2G_CORE_IOPAD(0x12dc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru0_gpo2.pr1_pru0_gpi2 (pr1_mii0_rxd2) */
265 K2G_CORE_IOPAD(0x12e0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru0_gpo3.pr1_pru0_gpi3 (pr1_mii0_rxd3) */
266 K2G_CORE_IOPAD(0x12e4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru0_gpo4.pr1_pru0_gpi4 (pr1_mii0_rxdv) */
267 K2G_CORE_IOPAD(0x12e8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru0_gpo5.pr1_pru0_gpi5 (pr1_mii0_rxer) */
268 K2G_CORE_IOPAD(0x12ec) (BUFFER_CLASS_B | MUX_MODE1) /* pr1_pru0_gpo6.pr1_pru0_gpi6 (pr1_mii_mr0_clk) */
269
270 K2G_CORE_IOPAD(0x12f4) (BUFFER_CLASS_B | MUX_MODE1) /* pr1_pru0_gpo8.pr1_pru0_gpi8 (pr1_mii0_rxlink) */
271 K2G_CORE_IOPAD(0x12f8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru0_gpo9.pr1_pru0_gpi9 (pr1_mii0_col) */
272 K2G_CORE_IOPAD(0x12fc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru0_gpo10.pr1_pru0_gpi10 (pr1_mii0_crs) */
273
274 K2G_CORE_IOPAD(0x1350) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru1_gpo11.pr1_pru1_gpo11 (pr1_mii0_txd0) */
275 K2G_CORE_IOPAD(0x1354) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru1_gpo12.pr1_pru1_gpo12 (pr1_mii0_txd1) */
276 K2G_CORE_IOPAD(0x1358) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru1_gpo13.pr1_pru1_gpo13 (pr1_mii0_txd2) */
277 K2G_CORE_IOPAD(0x135c) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru1_gpo14.pr1_pru1_gpo14 (pr1_mii0_txd3) */
278 K2G_CORE_IOPAD(0x1360) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru1_gpo15.pr1_pru1_gpo15 (pr1_mii0_txen) */
279 K2G_CORE_IOPAD(0x1364) (BUFFER_CLASS_B | MUX_MODE1) /* pr1_pru1_gpo16.pr1_pru1_gpo16 (pr1_mii_mt0_clk) */
280
281 /* PRUSS1 PRU1 Ethernet */
282 K2G_CORE_IOPAD(0x1324) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru1_gpo0.pr1_pru1_gpi0 (pr1_mii1_rxd0) */
283 K2G_CORE_IOPAD(0x132c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru1_gpo2.pr1_pru1_gpi2 (pr1_mii1_rxd2) */
284 K2G_CORE_IOPAD(0x1330) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru1_gpo3.pr1_pru1_gpi3 (pr1_mii1_rxd3) */
285 K2G_CORE_IOPAD(0x1334) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru1_gpo4.pr1_pru1_gpi4 (pr1_mii1_rxdv) */
286 K2G_CORE_IOPAD(0x1338) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru1_gpo5.pr1_pru1_gpi5 (pr1_mii1_rxer) */
287 K2G_CORE_IOPAD(0x133c) (BUFFER_CLASS_B | MUX_MODE1) /* pr1_pru1_gpo6.pr1_pru1_gpi6 (pr1_mii_mr1_clk) */
288
289 K2G_CORE_IOPAD(0x1344) (BUFFER_CLASS_B | MUX_MODE1) /* pr1_pru1_gpo8.pr1_pru1_gpi8 (pr1_mii1_rxlink) */
290 K2G_CORE_IOPAD(0x1348) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru1_gpo9.pr1_pru1_gpi9 (pr1_mii1_col) */
291 K2G_CORE_IOPAD(0x134c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1) /* pr1_pru1_gpo10.pr1_pru1_gpi10 (pr1_mii1_crs) */
292
293 K2G_CORE_IOPAD(0x1300) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru0_gpo11.pr1_pru0_gpo11 (pr1_mii1_txd0) */
294 K2G_CORE_IOPAD(0x1304) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru0_gpo12.pr1_pru0_gpo12 (pr1_mii1_txd1) */
295 K2G_CORE_IOPAD(0x1308) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru0_gpo13.pr1_pru0_gpo13 (pr1_mii1_txd2) */
296 K2G_CORE_IOPAD(0x130c) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru0_gpo14.pr1_pru0_gpo14 (pr1_mii1_txd3) */
297 K2G_CORE_IOPAD(0x1310) (BUFFER_CLASS_B | MUX_MODE0) /* pr1_pru0_gpo15.pr1_pru0_gpo15 (pr1_mii1_txen) */
298 K2G_CORE_IOPAD(0x1314) (BUFFER_CLASS_B | MUX_MODE1) /* pr1_pru0_gpo16.pr1_pru0_gpo16 (pr1_mii_mt1_clk) */
299 >;
300 };
301};
302
303&uio_pruss1_mdio {
304 status = "okay";
305 pinctrl-0 = <&uio_pruss1_mdio_eth_default>;
306 pinctrl-names = "default";
307 reset-gpios = <&gpio0 23 GPIO_ACTIVE_LOW>,
308 <&gpio0 21 GPIO_ACTIVE_LOW>;
309 reset-delay-us = <20>;
310
311 uio_pruss1_eth0_phy: uio-ethernet-phy@0 {
312 reg = <0>;
313 };
314
315 uio_pruss1_eth1_phy: uio-ethernet-phy@1 {
316 reg = <1>;
317 };
318};
319
320&uio_pruss2_mdio {
321 status = "okay";
322 pinctrl-0 = <&uio_pruss2_mdio_eth_default>;
323 pinctrl-names = "default";
324 reset-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>,
325 <&gpio0 24 GPIO_ACTIVE_LOW>;
326 reset-delay-us = <20>;
327
328 uio_pruss2_eth0_phy: uio-ethernet-phy@2 {
329 reg = <2>;
330 };
331
332 uio_pruss2_eth1_phy: uio-ethernet-phy@3 {
333 reg = <3>;
334 };
335};
336
337&pruss0 {
338 status = "disabled";
339};
340
341&pru0_0 {
342 status = "disabled";
343};
344
345&pru0_1 {
346 status = "disabled";
347};
348
349&pruss0_intc {
350 status = "disabled";
351};
352
353&pruss0_mdio {
354 status = "disabled";
355};
356
357&pruss1 {
358 status = "disabled";
359};
360
361&pru1_0 {
362 status = "disabled";
363};
364
365&pru1_1 {
366 status = "disabled";
367};
368
369&pruss1_intc {
370 status = "disabled";
371};
372
373&pruss1_mdio {
374 status = "disabled";
375};
376
377&pruss0_emac0 {
378 status = "disabled";
379};
380
381&pruss0_emac1 {
382 status = "disabled";
383};
384
385&pruss1_emac0 {
386 status = "disabled";
387};
388
389&pruss1_emac1 {
390 status = "disabled";
391};
diff --git a/recipes-kernel/linux/ti-uio.inc b/recipes-kernel/linux/ti-uio.inc
index 5c436376..13cf53e2 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"
2SRC_URI_append_k2hk = " file://k2hk-uio.dtsi" 2SRC_URI_append_k2hk = " file://k2hk-uio.dtsi"
3SRC_URI_append_k2l-evm = " file://k2l-uio.dtsi" 3SRC_URI_append_k2l-evm = " file://k2l-uio.dtsi"
4SRC_URI_append_k2e = " file://k2e-uio.dtsi" 4SRC_URI_append_k2e = " file://k2e-uio.dtsi"
5SRC_URI_append_am57xx-evm = " file://am572x-pru-uio.dtsi" 5SRC_URI_append_k2g = " file://keystone-k2g-pru-uio.dtsi"
6SRC_URI_append_am57xx-evm = " file://am572x-pru-uio.dtsi \
7 file://am571x-pru-uio.dtsi \
8"
6SRC_URI_append_ti33x = " file://am335x-pru-uio.dtsi" 9SRC_URI_append_ti33x = " file://am335x-pru-uio.dtsi"
7SRC_URI_append_ti43x = " file://am437x-pru-uio.dtsi" 10SRC_URI_append_ti43x = " file://am437x-pru-uio.dtsi"
8 11
@@ -12,9 +15,10 @@ DTSI_LIST_append_k2hk = " k2hk-uio.dtsi"
12DTSI_LIST_append_k2l-evm = " k2l-uio.dtsi" 15DTSI_LIST_append_k2l-evm = " k2l-uio.dtsi"
13DTSI_LIST_append_k2e = " k2e-uio.dtsi" 16DTSI_LIST_append_k2e = " k2e-uio.dtsi"
14 17
15KERNEL_DEVICETREE_append_am57xx-evm = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am572x-idk-pru-excl-uio.dtb", "", d)}" 18KERNEL_DEVICETREE_append_am57xx-evm = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am572x-idk-pru-excl-uio.dtb am571x-idk-pru-excl-uio.dtb", "", d)}"
16KERNEL_DEVICETREE_append_ti33x = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am335x-icev2-pru-excl-uio.dtb", "", d)}" 19KERNEL_DEVICETREE_append_ti33x = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am335x-icev2-pru-excl-uio.dtb", "", d)}"
17KERNEL_DEVICETREE_append_ti43x = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am437x-idk-pru-excl-uio.dtb", "", d)}" 20KERNEL_DEVICETREE_append_ti43x = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am437x-idk-pru-excl-uio.dtb", "", d)}"
21KERNEL_DEVICETREE_append_k2g = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " keystone-k2g-ice-pru-excl-uio.dtb", "", d)}"
18 22
19do_setup_uio() { 23do_setup_uio() {
20 if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ] 24 if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
@@ -40,6 +44,12 @@ do_setup_uio_append_am57xx-evm() {
40 cp ${S}/arch/arm/boot/dts/am572x-idk.dts ${S}/arch/arm/boot/dts/$dts 44 cp ${S}/arch/arm/boot/dts/am572x-idk.dts ${S}/arch/arm/boot/dts/$dts
41 cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/ 45 cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
42 echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts 46 echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
47
48 dts="am571x-idk-pru-excl-uio.dts"
49 dtsi="am571x-pru-uio.dtsi"
50 cp ${S}/arch/arm/boot/dts/am571x-idk.dts ${S}/arch/arm/boot/dts/$dts
51 cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
52 echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
43 fi 53 fi
44} 54}
45 55
@@ -67,4 +77,16 @@ do_setup_uio_append_ti43x() {
67 fi 77 fi
68} 78}
69 79
80do_setup_uio_append_k2g() {
81
82 if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
83 then
84 dts="keystone-k2g-ice-pru-excl-uio.dts"
85 dtsi="keystone-k2g-pru-uio.dtsi"
86 cp ${S}/arch/arm/boot/dts/keystone-k2g-ice.dts ${S}/arch/arm/boot/dts/$dts
87 cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
88 echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
89 fi
90}
91
70do_patch[postfuncs] += "do_setup_uio" 92do_patch[postfuncs] += "do_setup_uio"