
Split imx_pinctrl_probe() into imx_pinctrl_probe_common() and imx_pinctrl_probe_mmio(). The former does the common setup, the later does the common setup and MMIO access configuration. The common setup can be used as-is for SCU based systems, update the pinctrl-imx8 to call only the common setup, update all the other pinctrl drivers to call imx_pinctrl_probe_mmio().
No functional change.
Signed-off-by: Marek Vasut marex@denx.de --- Cc: Alice Guo alice.guo@nxp.com Cc: Jesse Taube mr.bossman075@gmail.com Cc: Peng Fan peng.fan@nxp.com Cc: Peter Robinson pbrobinson@gmail.com Cc: Tim Harvey tharvey@gateworks.com Cc: Tom Rini trini@konsulko.com Cc: u-boot@lists.denx.de --- drivers/pinctrl/nxp/pinctrl-imx.c | 26 ++++++++++++++++++-------- drivers/pinctrl/nxp/pinctrl-imx.h | 3 ++- drivers/pinctrl/nxp/pinctrl-imx5.c | 2 +- drivers/pinctrl/nxp/pinctrl-imx6.c | 2 +- drivers/pinctrl/nxp/pinctrl-imx7.c | 2 +- drivers/pinctrl/nxp/pinctrl-imx7ulp.c | 2 +- drivers/pinctrl/nxp/pinctrl-imx8.c | 2 +- drivers/pinctrl/nxp/pinctrl-imx8m.c | 2 +- drivers/pinctrl/nxp/pinctrl-imx8ulp.c | 2 +- drivers/pinctrl/nxp/pinctrl-imx93.c | 2 +- drivers/pinctrl/nxp/pinctrl-imxrt.c | 2 +- drivers/pinctrl/nxp/pinctrl-vf610.c | 2 +- 12 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/drivers/pinctrl/nxp/pinctrl-imx.c b/drivers/pinctrl/nxp/pinctrl-imx.c index 2d142c3a8a9..e65e069ac54 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx.c +++ b/drivers/pinctrl/nxp/pinctrl-imx.c @@ -194,16 +194,11 @@ int imx_pinctrl_set_state(struct udevice *dev, struct udevice *config) return 0; }
-int imx_pinctrl_probe(struct udevice *dev) +int imx_pinctrl_probe_common(struct udevice *dev) { struct imx_pinctrl_soc_info *info = (struct imx_pinctrl_soc_info *)dev_get_driver_data(dev); struct imx_pinctrl_priv *priv = dev_get_priv(dev); - struct ofnode_phandle_args arg; - ofnode node = dev_ofnode(dev); - fdt_addr_t addr; - fdt_size_t size; - int ret;
if (!info) { dev_err(dev, "wrong pinctrl info\n"); @@ -213,8 +208,23 @@ int imx_pinctrl_probe(struct udevice *dev) priv->dev = dev; priv->info = info;
- if (info->flags & IMX8_USE_SCU) - return 0; + return 0; +} + +int imx_pinctrl_probe_mmio(struct udevice *dev) +{ + struct imx_pinctrl_soc_info *info = + (struct imx_pinctrl_soc_info *)dev_get_driver_data(dev); + struct imx_pinctrl_priv *priv = dev_get_priv(dev); + struct ofnode_phandle_args arg; + ofnode node = dev_ofnode(dev); + fdt_addr_t addr; + fdt_size_t size; + int ret; + + ret = imx_pinctrl_probe_common(dev); + if (ret) + return ret;
addr = ofnode_get_addr_size_index(node, 0, &size); if (addr == FDT_ADDR_T_NONE) diff --git a/drivers/pinctrl/nxp/pinctrl-imx.h b/drivers/pinctrl/nxp/pinctrl-imx.h index b25f7988f46..b9d50c0542e 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx.h +++ b/drivers/pinctrl/nxp/pinctrl-imx.h @@ -48,7 +48,8 @@ struct imx_pinctrl_priv {
#define IOMUXC_CONFIG_SION (0x1 << 4)
-int imx_pinctrl_probe(struct udevice *dev); +int imx_pinctrl_probe_common(struct udevice *dev); +int imx_pinctrl_probe_mmio(struct udevice *dev);
int imx_pinctrl_remove(struct udevice *dev);
diff --git a/drivers/pinctrl/nxp/pinctrl-imx5.c b/drivers/pinctrl/nxp/pinctrl-imx5.c index 544c5093336..814b088bdab 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx5.c +++ b/drivers/pinctrl/nxp/pinctrl-imx5.c @@ -31,7 +31,7 @@ U_BOOT_DRIVER(imx5_pinctrl) = { .name = "imx5-pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imx5_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imx5_pinctrl_ops, diff --git a/drivers/pinctrl/nxp/pinctrl-imx6.c b/drivers/pinctrl/nxp/pinctrl-imx6.c index ae16ce73755..495b6af79fb 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx6.c +++ b/drivers/pinctrl/nxp/pinctrl-imx6.c @@ -40,7 +40,7 @@ U_BOOT_DRIVER(fsl_imx6q_iomuxc) = { .name = "fsl_imx6q_iomuxc", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imx6_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imx6_pinctrl_ops, diff --git a/drivers/pinctrl/nxp/pinctrl-imx7.c b/drivers/pinctrl/nxp/pinctrl-imx7.c index 87a35835566..e1fa6d76a13 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx7.c +++ b/drivers/pinctrl/nxp/pinctrl-imx7.c @@ -28,7 +28,7 @@ U_BOOT_DRIVER(imx7_pinctrl) = { .name = "imx7-pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imx7_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imx7_pinctrl_ops, diff --git a/drivers/pinctrl/nxp/pinctrl-imx7ulp.c b/drivers/pinctrl/nxp/pinctrl-imx7ulp.c index 1f4fce455d6..9ca8ef2130d 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx7ulp.c +++ b/drivers/pinctrl/nxp/pinctrl-imx7ulp.c @@ -32,7 +32,7 @@ U_BOOT_DRIVER(imx7ulp_pinctrl) = { .name = "imx7ulp-pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imx7ulp_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imx7ulp_pinctrl_ops, diff --git a/drivers/pinctrl/nxp/pinctrl-imx8.c b/drivers/pinctrl/nxp/pinctrl-imx8.c index 40976a9b588..a48e1b56df1 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx8.c +++ b/drivers/pinctrl/nxp/pinctrl-imx8.c @@ -29,7 +29,7 @@ U_BOOT_DRIVER(imx8_pinctrl) = { .name = "imx8_pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imx8_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_common, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imx8_pinctrl_ops, .flags = DM_FLAG_PRE_RELOC, diff --git a/drivers/pinctrl/nxp/pinctrl-imx8m.c b/drivers/pinctrl/nxp/pinctrl-imx8m.c index b1dabaaae7a..f69e6d74329 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx8m.c +++ b/drivers/pinctrl/nxp/pinctrl-imx8m.c @@ -26,7 +26,7 @@ U_BOOT_DRIVER(imx8mq_pinctrl) = { .name = "imx8mq-pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imx8m_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imx8m_pinctrl_ops, diff --git a/drivers/pinctrl/nxp/pinctrl-imx8ulp.c b/drivers/pinctrl/nxp/pinctrl-imx8ulp.c index e482ad5536d..fed16b565a5 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx8ulp.c +++ b/drivers/pinctrl/nxp/pinctrl-imx8ulp.c @@ -31,7 +31,7 @@ U_BOOT_DRIVER(imx8ulp_pinctrl) = { .name = "imx8ulp-pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imx8ulp_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imx8ulp_pinctrl_ops, diff --git a/drivers/pinctrl/nxp/pinctrl-imx93.c b/drivers/pinctrl/nxp/pinctrl-imx93.c index d5736e21067..8a58e586610 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx93.c +++ b/drivers/pinctrl/nxp/pinctrl-imx93.c @@ -26,7 +26,7 @@ U_BOOT_DRIVER(imx93_pinctrl) = { .name = "imx93-pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imx93_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imx93_pinctrl_ops, diff --git a/drivers/pinctrl/nxp/pinctrl-imxrt.c b/drivers/pinctrl/nxp/pinctrl-imxrt.c index db523a9005a..a8db355534c 100644 --- a/drivers/pinctrl/nxp/pinctrl-imxrt.c +++ b/drivers/pinctrl/nxp/pinctrl-imxrt.c @@ -27,7 +27,7 @@ U_BOOT_DRIVER(imxrt_pinctrl) = { .name = "imxrt-pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(imxrt_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &imxrt_pinctrl_ops, diff --git a/drivers/pinctrl/nxp/pinctrl-vf610.c b/drivers/pinctrl/nxp/pinctrl-vf610.c index e56df6dde56..3c9396cadda 100644 --- a/drivers/pinctrl/nxp/pinctrl-vf610.c +++ b/drivers/pinctrl/nxp/pinctrl-vf610.c @@ -27,7 +27,7 @@ U_BOOT_DRIVER(vf610_pinctrl) = { .name = "vf610-pinctrl", .id = UCLASS_PINCTRL, .of_match = of_match_ptr(vf610_pinctrl_match), - .probe = imx_pinctrl_probe, + .probe = imx_pinctrl_probe_mmio, .remove = imx_pinctrl_remove, .priv_auto = sizeof(struct imx_pinctrl_priv), .ops = &vf610_pinctrl_ops,