mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-05 12:46:14 +02:00
arm: socfpga: agilex5: Refactor system manager driver initialization
Refactor system manager initialization by searching for system manager alias in Agilex5 device tree instead of manually passing node name to the device model calling function Signed-off-by: Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi@altera.com> Reviewed-by: Tien Fong Chee <tien.fong.chee@altera.com>
This commit is contained in:
parent
a44423e7e9
commit
5416a3a306
@ -596,4 +596,8 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
sysmgr = &sysmgr;
|
||||
};
|
||||
};
|
||||
|
||||
@ -52,7 +52,7 @@ bool is_periph_program_force(void);
|
||||
void set_regular_boot(unsigned int status);
|
||||
void socfpga_pl310_clear(void);
|
||||
void socfpga_get_managers_addr(void);
|
||||
void socfpga_get_sys_mgr_addr(const char *compat);
|
||||
void socfpga_get_sys_mgr_addr(void);
|
||||
int qspi_flash_software_reset(void);
|
||||
|
||||
#endif /* _SOCFPGA_MISC_H_ */
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
#include <hang.h>
|
||||
#include <watchdog.h>
|
||||
#include <fdtdec.h>
|
||||
#include <dm/ofnode.h>
|
||||
#include <linux/libfdt.h>
|
||||
#include <linux/printk.h>
|
||||
#include <miiphy.h>
|
||||
@ -274,17 +275,24 @@ void socfpga_get_managers_addr(void)
|
||||
hang();
|
||||
}
|
||||
|
||||
void socfpga_get_sys_mgr_addr(const char *compat)
|
||||
void socfpga_get_sys_mgr_addr(void)
|
||||
{
|
||||
int ret;
|
||||
struct udevice *sysmgr_dev;
|
||||
struct udevice *dev;
|
||||
|
||||
ret = uclass_get_device_by_name(UCLASS_NOP, compat, &sysmgr_dev);
|
||||
ofnode node = ofnode_get_aliases_node("sysmgr");
|
||||
|
||||
if (!ofnode_valid(node)) {
|
||||
printf("'sysmgr' alias not found in device tree\n");
|
||||
hang();
|
||||
}
|
||||
|
||||
ret = uclass_get_device_by_ofnode(UCLASS_NOP, node, &dev);
|
||||
if (ret) {
|
||||
printf("Altera system manager init failed: %d\n", ret);
|
||||
hang();
|
||||
} else {
|
||||
socfpga_sysmgr_base = (phys_addr_t)dev_read_addr(sysmgr_dev);
|
||||
socfpga_sysmgr_base = (phys_addr_t)dev_read_addr(dev);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ void board_init_f(ulong dummy)
|
||||
if (ret)
|
||||
hang();
|
||||
|
||||
socfpga_get_sys_mgr_addr("sysmgr@10d12000");
|
||||
socfpga_get_sys_mgr_addr();
|
||||
socfpga_get_managers_addr();
|
||||
|
||||
sysmgr_pinmux_init();
|
||||
|
||||
@ -7,6 +7,6 @@
|
||||
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
socfpga_get_sys_mgr_addr("sysmgr@10d12000");
|
||||
socfpga_get_sys_mgr_addr();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user