Skip to content

Commit e0919bc

Browse files
Fabrice GasnierAlexandre Torgue
authored andcommitted
arm64: dts: st: add low-power timer nodes on stm32mp251
Add low-power timer (LPTimer) support on STM32MP25 SoC. The full feature set is implemented in LPTIM1/2/3/4. LPTIM5 supports a smaller set of features (no capture/compare) channel. Still, LPTIM5 can be used as single PWM, counter, trigger or timer. Signed-off-by: Fabrice Gasnier <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexandre Torgue <[email protected]>
1 parent 3cd55c7 commit e0919bc

File tree

1 file changed

+177
-0
lines changed

1 file changed

+177
-0
lines changed

arch/arm64/boot/dts/st/stm32mp251.dtsi

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,78 @@
292292
#access-controller-cells = <1>;
293293
ranges;
294294

295+
lptimer1: timer@40090000 {
296+
compatible = "st,stm32mp25-lptimer", "st,stm32-lptimer";
297+
reg = <0x40090000 0x400>;
298+
interrupts-extended = <&exti1 47 IRQ_TYPE_LEVEL_HIGH>;
299+
clocks = <&rcc CK_KER_LPTIM1>;
300+
clock-names = "mux";
301+
#address-cells = <1>;
302+
#size-cells = <0>;
303+
access-controllers = <&rifsc 17>;
304+
power-domains = <&RET_PD>;
305+
wakeup-source;
306+
status = "disabled";
307+
308+
counter {
309+
compatible = "st,stm32mp25-lptimer-counter", "st,stm32-lptimer-counter";
310+
status = "disabled";
311+
};
312+
313+
pwm {
314+
compatible = "st,stm32mp25-pwm-lp", "st,stm32-pwm-lp";
315+
#pwm-cells = <3>;
316+
status = "disabled";
317+
};
318+
319+
timer {
320+
compatible = "st,stm32mp25-lptimer-timer", "st,stm32-lptimer-timer";
321+
status = "disabled";
322+
};
323+
324+
trigger@0 {
325+
compatible = "st,stm32mp25-lptimer-trigger", "st,stm32-lptimer-trigger";
326+
reg = <0>;
327+
status = "disabled";
328+
};
329+
};
330+
331+
lptimer2: timer@400a0000 {
332+
compatible = "st,stm32mp25-lptimer", "st,stm32-lptimer";
333+
reg = <0x400a0000 0x400>;
334+
interrupts-extended = <&exti1 48 IRQ_TYPE_LEVEL_HIGH>;
335+
clocks = <&rcc CK_KER_LPTIM2>;
336+
clock-names = "mux";
337+
#address-cells = <1>;
338+
#size-cells = <0>;
339+
access-controllers = <&rifsc 18>;
340+
power-domains = <&RET_PD>;
341+
wakeup-source;
342+
status = "disabled";
343+
344+
counter {
345+
compatible = "st,stm32mp25-lptimer-counter", "st,stm32-lptimer-counter";
346+
status = "disabled";
347+
};
348+
349+
pwm {
350+
compatible = "st,stm32mp25-pwm-lp", "st,stm32-pwm-lp";
351+
#pwm-cells = <3>;
352+
status = "disabled";
353+
};
354+
355+
timer {
356+
compatible = "st,stm32mp25-lptimer-timer", "st,stm32-lptimer-timer";
357+
status = "disabled";
358+
};
359+
360+
trigger@1 {
361+
compatible = "st,stm32mp25-lptimer-trigger", "st,stm32-lptimer-trigger";
362+
reg = <1>;
363+
status = "disabled";
364+
};
365+
};
366+
295367
i2s2: audio-controller@400b0000 {
296368
compatible = "st,stm32mp25-i2s";
297369
reg = <0x400b0000 0x400>;
@@ -853,6 +925,111 @@
853925
status = "disabled";
854926
};
855927

928+
lptimer3: timer@46050000 {
929+
compatible = "st,stm32mp25-lptimer", "st,stm32-lptimer";
930+
reg = <0x46050000 0x400>;
931+
interrupts-extended = <&exti2 29 IRQ_TYPE_LEVEL_HIGH>;
932+
clocks = <&rcc CK_KER_LPTIM3>;
933+
clock-names = "mux";
934+
#address-cells = <1>;
935+
#size-cells = <0>;
936+
access-controllers = <&rifsc 19>;
937+
wakeup-source;
938+
status = "disabled";
939+
940+
counter {
941+
compatible = "st,stm32mp25-lptimer-counter", "st,stm32-lptimer-counter";
942+
status = "disabled";
943+
};
944+
945+
pwm {
946+
compatible = "st,stm32mp25-pwm-lp", "st,stm32-pwm-lp";
947+
#pwm-cells = <3>;
948+
status = "disabled";
949+
};
950+
951+
timer {
952+
compatible = "st,stm32mp25-lptimer-timer", "st,stm32-lptimer-timer";
953+
status = "disabled";
954+
};
955+
956+
trigger@2 {
957+
compatible = "st,stm32mp25-lptimer-trigger", "st,stm32-lptimer-trigger";
958+
reg = <2>;
959+
status = "disabled";
960+
};
961+
};
962+
963+
lptimer4: timer@46060000 {
964+
compatible = "st,stm32mp25-lptimer", "st,stm32-lptimer";
965+
reg = <0x46060000 0x400>;
966+
interrupts-extended = <&exti2 30 IRQ_TYPE_LEVEL_HIGH>;
967+
clocks = <&rcc CK_KER_LPTIM4>;
968+
clock-names = "mux";
969+
#address-cells = <1>;
970+
#size-cells = <0>;
971+
access-controllers = <&rifsc 20>;
972+
wakeup-source;
973+
status = "disabled";
974+
975+
counter {
976+
compatible = "st,stm32mp25-lptimer-counter", "st,stm32-lptimer-counter";
977+
status = "disabled";
978+
};
979+
980+
pwm {
981+
compatible = "st,stm32mp25-pwm-lp", "st,stm32-pwm-lp";
982+
#pwm-cells = <3>;
983+
status = "disabled";
984+
};
985+
986+
timer {
987+
compatible = "st,stm32mp25-lptimer-timer", "st,stm32-lptimer-timer";
988+
status = "disabled";
989+
};
990+
991+
trigger@3 {
992+
compatible = "st,stm32mp25-lptimer-trigger", "st,stm32-lptimer-trigger";
993+
reg = <3>;
994+
status = "disabled";
995+
};
996+
};
997+
998+
lptimer5: timer@46070000 {
999+
compatible = "st,stm32mp25-lptimer", "st,stm32-lptimer";
1000+
reg = <0x46070000 0x400>;
1001+
interrupts-extended = <&exti2 31 IRQ_TYPE_LEVEL_HIGH>;
1002+
clocks = <&rcc CK_KER_LPTIM5>;
1003+
clock-names = "mux";
1004+
#address-cells = <1>;
1005+
#size-cells = <0>;
1006+
access-controllers = <&rifsc 21>;
1007+
wakeup-source;
1008+
status = "disabled";
1009+
1010+
counter {
1011+
compatible = "st,stm32mp25-lptimer-counter", "st,stm32-lptimer-counter";
1012+
status = "disabled";
1013+
};
1014+
1015+
pwm {
1016+
compatible = "st,stm32mp25-pwm-lp", "st,stm32-pwm-lp";
1017+
#pwm-cells = <3>;
1018+
status = "disabled";
1019+
};
1020+
1021+
timer {
1022+
compatible = "st,stm32mp25-lptimer-timer", "st,stm32-lptimer-timer";
1023+
status = "disabled";
1024+
};
1025+
1026+
trigger@4 {
1027+
compatible = "st,stm32mp25-lptimer-trigger", "st,stm32-lptimer-trigger";
1028+
reg = <4>;
1029+
status = "disabled";
1030+
};
1031+
};
1032+
8561033
csi: csi@48020000 {
8571034
compatible = "st,stm32mp25-csi";
8581035
reg = <0x48020000 0x2000>;

0 commit comments

Comments
 (0)