hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/arch/arm/boot/dts/dm816x.dtsi
....@@ -4,6 +4,8 @@
44 * kind, whether express or implied.
55 */
66
7
+#include <dt-bindings/bus/ti-sysc.h>
8
+#include <dt-bindings/clock/dm816.h>
79 #include <dt-bindings/gpio/gpio.h>
810 #include <dt-bindings/pinctrl/omap.h>
911
....@@ -138,13 +140,123 @@
138140 };
139141 };
140142
141
- edma: edma@49000000 {
142
- compatible = "ti,edma3";
143
- ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2", "tptc3";
144
- reg = <0x49000000 0x10000>,
145
- <0x44e10f90 0x40>;
146
- interrupts = <12 13 14>;
147
- #dma-cells = <1>;
143
+ target-module@49000000 {
144
+ compatible = "ti,sysc-omap4", "ti,sysc";
145
+ reg = <0x49000000 0x4>;
146
+ reg-names = "rev";
147
+ clocks = <&alwon_clkctrl DM816_TPCC_CLKCTRL 0>;
148
+ clock-names = "fck";
149
+ #address-cells = <1>;
150
+ #size-cells = <1>;
151
+ ranges = <0x0 0x49000000 0x10000>;
152
+
153
+ edma: dma@0 {
154
+ compatible = "ti,edma3-tpcc";
155
+ reg = <0 0x10000>;
156
+ reg-names = "edma3_cc";
157
+ interrupts = <12 13 14>;
158
+ interrupt-names = "edma3_ccint", "edma3_mperr",
159
+ "edma3_ccerrint";
160
+ dma-requests = <64>;
161
+ #dma-cells = <2>;
162
+
163
+ ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
164
+ <&edma_tptc2 3>, <&edma_tptc3 0>;
165
+
166
+ ti,edma-memcpy-channels = <20 21>;
167
+ };
168
+ };
169
+
170
+ target-module@49800000 {
171
+ compatible = "ti,sysc-omap4", "ti,sysc";
172
+ reg = <0x49800000 0x4>,
173
+ <0x49800010 0x4>;
174
+ reg-names = "rev", "sysc";
175
+ ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
176
+ ti,sysc-midle = <SYSC_IDLE_FORCE>;
177
+ ti,sysc-sidle = <SYSC_IDLE_FORCE>,
178
+ <SYSC_IDLE_SMART>;
179
+ clocks = <&alwon_clkctrl DM816_TPTC0_CLKCTRL 0>;
180
+ clock-names = "fck";
181
+ #address-cells = <1>;
182
+ #size-cells = <1>;
183
+ ranges = <0x0 0x49800000 0x100000>;
184
+
185
+ edma_tptc0: dma@0 {
186
+ compatible = "ti,edma3-tptc";
187
+ reg = <0 0x100000>;
188
+ interrupts = <112>;
189
+ interrupt-names = "edma3_tcerrint";
190
+ };
191
+ };
192
+
193
+ target-module@49900000 {
194
+ compatible = "ti,sysc-omap4", "ti,sysc";
195
+ reg = <0x49900000 0x4>,
196
+ <0x49900010 0x4>;
197
+ reg-names = "rev", "sysc";
198
+ ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
199
+ ti,sysc-midle = <SYSC_IDLE_FORCE>;
200
+ ti,sysc-sidle = <SYSC_IDLE_FORCE>,
201
+ <SYSC_IDLE_SMART>;
202
+ clocks = <&alwon_clkctrl DM816_TPTC1_CLKCTRL 0>;
203
+ clock-names = "fck";
204
+ #address-cells = <1>;
205
+ #size-cells = <1>;
206
+ ranges = <0x0 0x49900000 0x100000>;
207
+
208
+ edma_tptc1: dma@0 {
209
+ compatible = "ti,edma3-tptc";
210
+ reg = <0 0x100000>;
211
+ interrupts = <113>;
212
+ interrupt-names = "edma3_tcerrint";
213
+ };
214
+ };
215
+
216
+ target-module@49a00000 {
217
+ compatible = "ti,sysc-omap4", "ti,sysc";
218
+ reg = <0x49a00000 0x4>,
219
+ <0x49a00010 0x4>;
220
+ reg-names = "rev", "sysc";
221
+ ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
222
+ ti,sysc-midle = <SYSC_IDLE_FORCE>;
223
+ ti,sysc-sidle = <SYSC_IDLE_FORCE>,
224
+ <SYSC_IDLE_SMART>;
225
+ clocks = <&alwon_clkctrl DM816_TPTC2_CLKCTRL 0>;
226
+ clock-names = "fck";
227
+ #address-cells = <1>;
228
+ #size-cells = <1>;
229
+ ranges = <0x0 0x49a00000 0x100000>;
230
+
231
+ edma_tptc2: dma@0 {
232
+ compatible = "ti,edma3-tptc";
233
+ reg = <0 0x100000>;
234
+ interrupts = <114>;
235
+ interrupt-names = "edma3_tcerrint";
236
+ };
237
+ };
238
+
239
+ target-module@49b00000 {
240
+ compatible = "ti,sysc-omap4", "ti,sysc";
241
+ reg = <0x49b00000 0x4>,
242
+ <0x49b00010 0x4>;
243
+ reg-names = "rev", "sysc";
244
+ ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
245
+ ti,sysc-midle = <SYSC_IDLE_FORCE>;
246
+ ti,sysc-sidle = <SYSC_IDLE_FORCE>,
247
+ <SYSC_IDLE_SMART>;
248
+ clocks = <&alwon_clkctrl DM816_TPTC3_CLKCTRL 0>;
249
+ clock-names = "fck";
250
+ #address-cells = <1>;
251
+ #size-cells = <1>;
252
+ ranges = <0x0 0x49b00000 0x100000>;
253
+
254
+ edma_tptc3: dma@0 {
255
+ compatible = "ti,edma3-tptc";
256
+ reg = <0 0x100000>;
257
+ interrupts = <115>;
258
+ interrupt-names = "edma3_tcerrint";
259
+ };
148260 };
149261
150262 elm: elm@48080000 {
....@@ -185,7 +297,7 @@
185297 #address-cells = <2>;
186298 #size-cells = <1>;
187299 interrupts = <100>;
188
- dmas = <&edma 52>;
300
+ dmas = <&edma 52 0>;
189301 dma-names = "rxtx";
190302 gpmc,num-cs = <6>;
191303 gpmc,num-waitpins = <2>;
....@@ -202,7 +314,7 @@
202314 #address-cells = <1>;
203315 #size-cells = <0>;
204316 interrupts = <70>;
205
- dmas = <&edma 58 &edma 59>;
317
+ dmas = <&edma 58 0 &edma 59 0>;
206318 dma-names = "tx", "rx";
207319 };
208320
....@@ -213,7 +325,7 @@
213325 #address-cells = <1>;
214326 #size-cells = <0>;
215327 interrupts = <71>;
216
- dmas = <&edma 60 &edma 61>;
328
+ dmas = <&edma 60 0 &edma 61 0>;
217329 dma-names = "tx", "rx";
218330 };
219331
....@@ -239,7 +351,7 @@
239351 #mbox-cells = <1>;
240352 ti,mbox-num-users = <4>;
241353 ti,mbox-num-fifos = <12>;
242
- mbox_dsp: mbox_dsp {
354
+ mbox_dsp: mbox-dsp {
243355 ti,mbox-tx = <3 0 0>;
244356 ti,mbox-rx = <0 0 0>;
245357 };
....@@ -311,10 +423,10 @@
311423 interrupts = <65>;
312424 ti,spi-num-cs = <4>;
313425 ti,hwmods = "mcspi1";
314
- dmas = <&edma 16 &edma 17
315
- &edma 18 &edma 19
316
- &edma 20 &edma 21
317
- &edma 22 &edma 23>;
426
+ dmas = <&edma 16 0 &edma 17 0
427
+ &edma 18 0 &edma 19 0
428
+ &edma 20 0 &edma 21 0
429
+ &edma 22 0 &edma 23 0>;
318430 dma-names = "tx0", "rx0", "tx1", "rx1",
319431 "tx2", "rx2", "tx3", "rx3";
320432 };
....@@ -324,27 +436,59 @@
324436 reg = <0x48060000 0x11000>;
325437 ti,hwmods = "mmc1";
326438 interrupts = <64>;
327
- dmas = <&edma 24 &edma 25>;
439
+ dmas = <&edma 24 0 &edma 25 0>;
328440 dma-names = "tx", "rx";
329441 };
330442
331
- timer1: timer@4802e000 {
332
- compatible = "ti,dm816-timer";
333
- reg = <0x4802e000 0x2000>;
334
- interrupts = <67>;
335
- ti,hwmods = "timer1";
336
- ti,timer-alwon;
337
- clocks = <&timer1_fck>;
443
+ timer1_target: target-module@4802e000 {
444
+ compatible = "ti,sysc-omap4-timer", "ti,sysc";
445
+ reg = <0x4802e000 0x4>,
446
+ <0x4802e010 0x4>;
447
+ reg-names = "rev", "sysc";
448
+ ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
449
+ ti,sysc-sidle = <SYSC_IDLE_FORCE>,
450
+ <SYSC_IDLE_NO>,
451
+ <SYSC_IDLE_SMART>,
452
+ <SYSC_IDLE_SMART_WKUP>;
453
+ clocks = <&alwon_clkctrl DM816_TIMER1_CLKCTRL 0>;
338454 clock-names = "fck";
455
+ #address-cells = <1>;
456
+ #size-cells = <1>;
457
+ ranges = <0x0 0x4802e000 0x1000>;
458
+
459
+ timer1: timer@0 {
460
+ compatible = "ti,dm816-timer";
461
+ reg = <0 0x1000>;
462
+ interrupts = <67>;
463
+ ti,timer-alwon;
464
+ clocks = <&alwon_clkctrl DM816_TIMER1_CLKCTRL 0>;
465
+ clock-names = "fck";
466
+ };
339467 };
340468
341
- timer2: timer@48040000 {
342
- compatible = "ti,dm816-timer";
343
- reg = <0x48040000 0x2000>;
344
- interrupts = <68>;
345
- ti,hwmods = "timer2";
346
- clocks = <&timer2_fck>;
469
+ timer2_target: target-module@48040000 {
470
+ compatible = "ti,sysc-omap4-timer", "ti,sysc";
471
+ reg = <0x48040000 0x4>,
472
+ <0x48040010 0x4>;
473
+ reg-names = "rev", "sysc";
474
+ ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
475
+ ti,sysc-sidle = <SYSC_IDLE_FORCE>,
476
+ <SYSC_IDLE_NO>,
477
+ <SYSC_IDLE_SMART>,
478
+ <SYSC_IDLE_SMART_WKUP>;
479
+ clocks = <&alwon_clkctrl DM816_TIMER2_CLKCTRL 0>;
347480 clock-names = "fck";
481
+ #address-cells = <1>;
482
+ #size-cells = <1>;
483
+ ranges = <0x0 0x48040000 0x1000>;
484
+
485
+ timer2: timer@0 {
486
+ compatible = "ti,dm816-timer";
487
+ reg = <0 0x1000>;
488
+ interrupts = <68>;
489
+ clocks = <&alwon_clkctrl DM816_TIMER2_CLKCTRL 0>;
490
+ clock-names = "fck";
491
+ };
348492 };
349493
350494 timer3: timer@48042000 {
....@@ -392,7 +536,7 @@
392536 reg = <0x48020000 0x2000>;
393537 clock-frequency = <48000000>;
394538 interrupts = <72>;
395
- dmas = <&edma 26 &edma 27>;
539
+ dmas = <&edma 26 0 &edma 27 0>;
396540 dma-names = "tx", "rx";
397541 };
398542
....@@ -402,7 +546,7 @@
402546 reg = <0x48022000 0x2000>;
403547 clock-frequency = <48000000>;
404548 interrupts = <73>;
405
- dmas = <&edma 28 &edma 29>;
549
+ dmas = <&edma 28 0 &edma 29 0>;
406550 dma-names = "tx", "rx";
407551 };
408552
....@@ -412,7 +556,7 @@
412556 reg = <0x48024000 0x2000>;
413557 clock-frequency = <48000000>;
414558 interrupts = <74>;
415
- dmas = <&edma 30 &edma 31>;
559
+ dmas = <&edma 30 0 &edma 31 0>;
416560 dma-names = "tx", "rx";
417561 };
418562
....@@ -530,3 +674,23 @@
530674 };
531675
532676 #include "dm816x-clocks.dtsi"
677
+
678
+/* Preferred always-on timer for clocksource */
679
+&timer1_target {
680
+ ti,no-reset-on-init;
681
+ ti,no-idle;
682
+ timer@0 {
683
+ assigned-clocks = <&timer1_fck>;
684
+ assigned-clock-parents = <&sys_clkin_ck>;
685
+ };
686
+};
687
+
688
+/* Preferred timer for clockevent */
689
+&timer2_target {
690
+ ti,no-reset-on-init;
691
+ ti,no-idle;
692
+ timer@0 {
693
+ assigned-clocks = <&timer2_fck>;
694
+ assigned-clock-parents = <&sys_clkin_ck>;
695
+ };
696
+};