summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi191
-rw-r--r--recipes-kernel/linux/ti-uio.inc15
2 files changed, 206 insertions, 0 deletions
diff --git a/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi b/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi
new file mode 100644
index 00000000..577603a5
--- /dev/null
+++ b/recipes-kernel/linux/files/dra7xx/am572x-pru-uio.dtsi
@@ -0,0 +1,191 @@
1/ {
2 ocp {
3 pruss2_eth {
4 status = "disabled";
5 };
6 uio_pruss1_mem: uio_pruss1_mem {
7 compatible = "ti,uio-module-drv";
8 ti,hwmods = "pruss1";
9 mem = <0x4b200000 0x2000>,
10 <0x4b202000 0x2000>,
11 <0x4b210000 0x8000>,
12 <0x4b220000 0x2000>,
13 <0x4b226000 0x2000>,
14 <0x4b22e000 0x31c>,
15 <0x4b232000 0x58>;
16 mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
17 "iep", "mii_rt";
18 status = "okay";
19 };
20 uio_pruss1_evt0: uio_pruss1_evt0 {
21 compatible = "ti,uio-module-drv";
22 interrupts = <GIC_SPI 186 IRQ_TYPE_EDGE_RISING>;
23 status = "okay";
24 };
25 uio_pruss1_evt1: uio_pruss1_evt1 {
26 compatible = "ti,uio-module-drv";
27 interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>;
28 status = "okay";
29 };
30 uio_pruss1_evt2: uio_pruss1_evt2 {
31 compatible = "ti,uio-module-drv";
32 interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>;
33 status = "okay";
34 };
35 uio_pruss1_evt3: uio_pruss1_evt3 {
36 compatible = "ti,uio-module-drv";
37 interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
38 status = "okay";
39 };
40 uio_pruss1_evt4: uio_pruss1_evt4 {
41 compatible = "ti,uio-module-drv";
42 interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
43 status = "okay";
44 };
45 uio_pruss1_evt5: uio_pruss1_evt5 {
46 compatible = "ti,uio-module-drv";
47 interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>;
48 status = "okay";
49 };
50 uio_pruss1_evt6: uio_pruss1_evt6 {
51 compatible = "ti,uio-module-drv";
52 interrupts = <GIC_SPI 192 IRQ_TYPE_EDGE_RISING>;
53 status = "okay";
54 };
55 uio_pruss1_evt7: uio_pruss1_evt7 {
56 compatible = "ti,uio-module-drv";
57 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
58 status = "okay";
59 };
60
61 uio_pruss1_0_mem: uio_pruss1_0_mem {
62 compatible = "ti,uio-module-drv";
63 mem = <0x4b234000 0x3000>,
64 <0x4b222000 0x400>,
65 <0x4b222400 0x100>;
66 mem-names = "iram", "control", "debug";
67 status = "okay";
68 };
69
70 uio_pruss1_1_mem: uio_pruss1_1_mem {
71 compatible = "ti,uio-module-drv";
72 mem = <0x4b238000 0x3000>,
73 <0x4b224000 0x400>,
74 <0x4b224400 0x100>;
75 mem-names = "iram", "control", "debug";
76 status = "okay";
77 };
78
79 uio_pruss1_mdio: uio_pruss1_mdio {
80 compatible = "ti,uio-module-drv";
81 mem = <0x4b232400 0x90>;
82 status = "okay";
83 };
84
85 uio_pruss2_mem: uio_pruss2_mem {
86 compatible = "ti,uio-module-drv";
87 ti,hwmods = "pruss2";
88 mem = <0x4b280000 0x2000>,
89 <0x4b282000 0x2000>,
90 <0x4b290000 0x8000>,
91 <0x4b2a0000 0x2000>,
92 <0x4b2a6000 0x2000>,
93 <0x4b2ae000 0x31c>,
94 <0x4b2b2000 0x58>;
95 mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
96 "iep", "mii_rt";
97 status = "okay";
98 };
99 uio_pruss2_evt0: uio_pruss2_evt0 {
100 compatible = "ti,uio-module-drv";
101 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
102 status = "okay";
103 };
104 uio_pruss2_evt1: uio_pruss2_evt1 {
105 compatible = "ti,uio-module-drv";
106 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
107 status = "okay";
108 };
109 uio_pruss2_evt2: uio_pruss2_evt2 {
110 compatible = "ti,uio-module-drv";
111 interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
112 status = "okay";
113 };
114 uio_pruss2_evt3: uio_pruss2_evt3 {
115 compatible = "ti,uio-module-drv";
116 interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
117 status = "okay";
118 };
119 uio_pruss2_evt4: uio_pruss2_evt4 {
120 compatible = "ti,uio-module-drv";
121 interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
122 status = "okay";
123 };
124 uio_pruss2_evt5: uio_pruss2_evt5 {
125 compatible = "ti,uio-module-drv";
126 interrupts = <GIC_SPI 201 IRQ_TYPE_EDGE_RISING>;
127 status = "okay";
128 };
129 uio_pruss2_evt6: uio_pruss2_evt6 {
130 compatible = "ti,uio-module-drv";
131 interrupts = <GIC_SPI 202 IRQ_TYPE_EDGE_RISING>;
132 status = "okay";
133 };
134 uio_pruss2_evt7: uio_pruss2_evt7 {
135 compatible = "ti,uio-module-drv";
136 interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
137 status = "okay";
138 };
139
140 uio_pruss2_0_mem: uio_pruss2_0_mem {
141 compatible = "ti,uio-module-drv";
142 mem = <0x4b2b4000 0x3000>,
143 <0x4b2a2000 0x400>,
144 <0x4b2a2400 0x100>;
145 mem-names = "iram", "control", "debug";
146 status = "okay";
147 };
148 uio_pruss2_1_mem: uio_pruss2_1_mem {
149 compatible = "ti,uio-module-drv";
150 mem = <0x4b2b8000 0x3000>,
151 <0x4b2a4000 0x400>,
152 <0x4b2a4400 0x100>;
153 mem-names = "iram", "control", "debug";
154 status = "okay";
155 };
156 uio_pruss2_mdio: uio_pruss2_mdio {
157 compatible = "ti,uio-module-drv";
158 mem = <0x4b2b2400 0x90>;
159 mem-names = "mdio";
160 status = "okay";
161 };
162 };
163};
164
165&pruss1 {
166 status = "disabled";
167};
168
169&pru1_0 {
170 status = "disabled";
171};
172
173&pru1_1 {
174 status = "disabled";
175};
176
177&pruss2 {
178 status = "disabled";
179};
180
181&pru2_0 {
182 status = "disabled";
183};
184
185&pru2_1 {
186 status = "disabled";
187};
188
189&pruss2_mdio {
190 status = "disabled";
191};
diff --git a/recipes-kernel/linux/ti-uio.inc b/recipes-kernel/linux/ti-uio.inc
index 776e4a43..f038bc8d 100644
--- a/recipes-kernel/linux/ti-uio.inc
+++ b/recipes-kernel/linux/ti-uio.inc
@@ -2,6 +2,7 @@ SRC_URI_append_keystone = " file://keystone-uio.dtsi"
2SRC_URI_append_k2hk-evm = " file://k2hk-uio.dtsi" 2SRC_URI_append_k2hk-evm = " 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-evm = " file://k2e-uio.dtsi" 4SRC_URI_append_k2e-evm = " file://k2e-uio.dtsi"
5SRC_URI_append_am57xx-evm = " file://am572x-pru-uio.dtsi"
5 6
6DTSI_LIST = "" 7DTSI_LIST = ""
7DTSI_LIST_append_keystone = " keystone-uio.dtsi" 8DTSI_LIST_append_keystone = " keystone-uio.dtsi"
@@ -9,6 +10,8 @@ DTSI_LIST_append_k2hk-evm = " k2hk-uio.dtsi"
9DTSI_LIST_append_k2l-evm = " k2l-uio.dtsi" 10DTSI_LIST_append_k2l-evm = " k2l-uio.dtsi"
10DTSI_LIST_append_k2e-evm = " k2e-uio.dtsi" 11DTSI_LIST_append_k2e-evm = " k2e-uio.dtsi"
11 12
13KERNEL_DEVICETREE_append_am57xx-evm = "${@base_conditional("ENABLE_TI_UIO_DEVICES", "1", " am572x-idk-pru-excl-uio.dtb", "", d)}"
14
12do_setup_uio() { 15do_setup_uio() {
13 if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ] 16 if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
14 then 17 then
@@ -24,4 +27,16 @@ do_setup_uio() {
24 fi 27 fi
25} 28}
26 29
30do_setup_uio_append_am57xx-evm() {
31
32 if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
33 then
34 dts="am572x-idk-pru-excl-uio.dts"
35 dtsi="am572x-pru-uio.dtsi"
36 cp ${S}/arch/arm/boot/dts/am572x-idk.dts ${S}/arch/arm/boot/dts/$dts
37 cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
38 echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
39 fi
40}
41
27do_patch[postfuncs] += "do_setup_uio" 42do_patch[postfuncs] += "do_setup_uio"