]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: mach-k3: am642: Fix reset for workaround errata ID i2331
authorAndrew Davis <afd@ti.com>
Thu, 18 Apr 2024 17:58:28 +0000 (12:58 -0500)
committerTom Rini <trini@konsulko.com>
Mon, 29 Apr 2024 16:53:56 +0000 (10:53 -0600)
To workaround an issue in AM642 we reset the SoC in early boot. For that
we first probed the sysreset driver by calling uclass_get_device(). The
ti-sci sysreset driver is now probed during the ti-sci firmware probe.
Update this call to probe the firmware driver which will then probe
the sysreset driver allowing do_reset() to again function as expected.

Reported-by: Jonathan Humphreys <j-humphreys@ti.com>
Fixes: fc5d40283483 ("firmware: ti_sci: Bind sysreset driver when enabled")
Signed-off-by: Andrew Davis <afd@ti.com>
Tested-by: Wadim Egorov <w.egorov@phytec.de>
Tested-by: Kamlesh Gurudasani <kamlesh@ti.com>
arch/arm/mach-k3/am642_init.c

index ddf47ef0a9bc038d933772b9700356393d9c760b..80c3cb3479f7bb1fc7b90e5d0735570070000107 100644 (file)
@@ -226,7 +226,7 @@ void board_init_f(ulong dummy)
         * The warm reset realigns internal clocks and prevents the lockup from
         * happening.
         */
-       ret = uclass_first_device_err(UCLASS_SYSRESET, &dev);
+       ret = uclass_get_device_by_driver(UCLASS_FIRMWARE, DM_DRIVER_GET(ti_sci), &dev);
        if (ret)
                printf("\n%s:uclass device error [%d]\n",__func__,ret);