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