diff options
author | Peng Fan | 2022-04-07 15:55:55 +0800 |
---|---|---|
committer | Stefano Babic | 2022-04-12 19:10:44 +0200 |
commit | 1166bd433ab83bf889764f572410ec6814e01e9d (patch) | |
tree | eeb20fec04bec7c3e7b4e63a95545fcbb0bbfbbc /arch/arm/mach-imx | |
parent | 8325ef3d770b633573032f6e3211fe49b03f5cc9 (diff) |
imx8m: soc: drop phy-reset-gpios for fec
Need to drop phy-reset-gpios before booting linux, this property
is legacy property and replaced with reset-gpios.
If provide both, kernel would failed to request the same gpio twice
and cause fec not work.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/imx8m/soc.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c index d47638e8a91..0be47aa7688 100644 --- a/arch/arm/mach-imx/imx8m/soc.c +++ b/arch/arm/mach-imx/imx8m/soc.c @@ -1152,36 +1152,36 @@ static int disable_cpu_nodes(void *blob, u32 disabled_cores) return 0; } -#if defined(CONFIG_IMX8MM) static int cleanup_nodes_for_efi(void *blob) { - static const char * const usbotg_path[] = { - "/soc@0/bus@32c00000/usb@32e40000", - "/soc@0/bus@32c00000/usb@32e50000" - }; + static const char * const path[][2] = { + { "/soc@0/bus@32c00000/usb@32e40000", "extcon" }, + { "/soc@0/bus@32c00000/usb@32e50000", "extcon" }, + { "/soc@0/bus@30800000/ethernet@30be0000", "phy-reset-gpios" }, + { "/soc@0/bus@30800000/ethernet@30bf0000", "phy-reset-gpios" } + }; int nodeoff, i, rc; - for (i = 0; i < ARRAY_SIZE(usbotg_path); i++) { - nodeoff = fdt_path_offset(blob, usbotg_path[i]); + for (i = 0; i < ARRAY_SIZE(path); i++) { + nodeoff = fdt_path_offset(blob, path[i][0]); if (nodeoff < 0) continue; /* Not found, skip it */ - debug("Found %s node\n", usbotg_path[i]); + debug("Found %s node\n", path[i][0]); - rc = fdt_delprop(blob, nodeoff, "extcon"); + rc = fdt_delprop(blob, nodeoff, path[i][1]); if (rc == -FDT_ERR_NOTFOUND) continue; if (rc) { printf("Unable to update property %s:%s, err=%s\n", - usbotg_path[i], "extcon", fdt_strerror(rc)); + path[i][0], path[i][1], fdt_strerror(rc)); return rc; } - printf("Remove %s:%s\n", usbotg_path[i], "extcon"); + printf("Remove %s:%s\n", path[i][0], path[i][1]); } return 0; } -#endif int ft_system_setup(void *blob, struct bd_info *bd) { @@ -1277,8 +1277,6 @@ usb_modify_speed: else if (is_imx8mms() || is_imx8mmsl()) disable_cpu_nodes(blob, 3); - cleanup_nodes_for_efi(blob); - #elif defined(CONFIG_IMX8MN) if (is_imx8mnl() || is_imx8mndl() || is_imx8mnsl()) disable_gpu_nodes(blob); @@ -1326,6 +1324,7 @@ usb_modify_speed: disable_cpu_nodes(blob, 2); #endif + cleanup_nodes_for_efi(blob); return 0; } #endif |