aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx
diff options
context:
space:
mode:
authorPeng Fan2022-04-07 15:55:55 +0800
committerStefano Babic2022-04-12 19:10:44 +0200
commit1166bd433ab83bf889764f572410ec6814e01e9d (patch)
treeeeb20fec04bec7c3e7b4e63a95545fcbb0bbfbbc /arch/arm/mach-imx
parent8325ef3d770b633573032f6e3211fe49b03f5cc9 (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.c27
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