Skip to content

Commit bec4646

Browse files
palimpe
authored andcommitted
powerpc: dts: turris1x.dts: Set lower priority for CPLD syscon-reboot
Due to CPLD firmware bugs, set CPLD syscon-reboot priority level to 64 (between rstcr and watchdog) to ensure that rstcr's global-utilities reset method which is preferred stay as default one, and to ensure that CPLD syscon-reboot is more preferred than watchdog reset method. Fixes: 0531a4a ("powerpc: dts: turris1x.dts: Add CPLD reboot node") Depends-on: e633329 ("power: reset: syscon-reboot: Add support for specifying priority") Signed-off-by: Pali Rohár <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 6f8675a commit bec4646

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

arch/powerpc/boot/dts/turris1x.dts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,11 +367,34 @@
367367
};
368368

369369
reboot@d {
370+
/*
371+
* CPLD firmware which manages system reset and
372+
* watchdog registers has bugs. It does not
373+
* autoclear system reset register after change
374+
* and watchdog ignores reset line on immediate
375+
* succeeding reset cycle triggered by watchdog.
376+
* These bugs have to be workarounded in U-Boot
377+
* bootloader. So use system reset via syscon as
378+
* a last resort because older U-Boot versions
379+
* do not have workaround for watchdog.
380+
*
381+
* Reset method via rstcr's global-utilities
382+
* (the preferred one) has priority level 128,
383+
* watchdog has priority level 0 and default
384+
* syscon-reboot priority level is 192.
385+
*
386+
* So define syscon-reboot with custom priority
387+
* level 64 (between rstcr and watchdog) because
388+
* rstcr should stay as default preferred reset
389+
* method and reset via watchdog is more broken
390+
* than system reset via syscon.
391+
*/
370392
compatible = "syscon-reboot";
371393
reg = <0x0d 0x01>;
372394
offset = <0x0d>;
373395
mask = <0x01>;
374396
value = <0x01>;
397+
priority = <64>;
375398
};
376399

377400
led-controller@13 {

0 commit comments

Comments
 (0)