forked from Mirrors/opensbi
lib: utils/reset: Use fdt_driver for initialization
The reset driver subsystem does not need any extra data, so it can use `struct fdt_driver` directly. The generic fdt_reset_init() performs a best-effort initialization of all matching DT nodes. Platform-specific logic expects exactly one DT node to match a single driver. This is accomplished by using fdt_driver_init_one() with a local list containing that one driver. Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:

committed by
Anup Patel

parent
1f8db2f18f
commit
6d9ad492db
@@ -227,11 +227,16 @@ static const struct fdt_match pm_reset_match[] = {
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct fdt_reset fdt_reset_pmic = {
|
||||
static const struct fdt_driver fdt_reset_pmic = {
|
||||
.match_table = pm_reset_match,
|
||||
.init = pm_reset_init,
|
||||
};
|
||||
|
||||
static const struct fdt_driver *const starfive_jh7110_reset_drivers[] = {
|
||||
&fdt_reset_pmic,
|
||||
NULL
|
||||
};
|
||||
|
||||
static int starfive_jh7110_inst_init(const void *fdt)
|
||||
{
|
||||
int noff, rc = 0;
|
||||
@@ -281,7 +286,7 @@ static int starfive_jh7110_final_init(bool cold_boot, void *fdt,
|
||||
const struct fdt_match *match)
|
||||
{
|
||||
if (cold_boot) {
|
||||
fdt_reset_driver_init(fdt, &fdt_reset_pmic);
|
||||
fdt_driver_init_one(fdt, starfive_jh7110_reset_drivers);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user