summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Nelson <sam.nelson@ti.com>2016-05-17 17:54:12 +0000
committerDenys Dmytriyenko <denys@ti.com>2016-05-18 16:50:38 -0400
commit2a8d94c1fa963dfc8c1aa77d9869ad2315fac7db (patch)
tree3dfa661cf9918eef9135ff76aba044399d433f66
parent8166221b76b223768a005af3992d3edcc452dc82 (diff)
downloadmeta-ti-2a8d94c1fa963dfc8c1aa77d9869ad2315fac7db.tar.gz
linux-ti-staging: Add new device tree target am572x-idk-pru-excl-uio.dtb
This new device tree file is to support pruss with uio based drivers alone. Adds uio entries for pruss susbsystem and disables other drivers controlling the same. New dtb is added only if ENABLE_TI_UIO_DEVICES is enabled. Signed-off-by: Sam Nelson <sam.nelson@ti.com> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
-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"