pwm: pwm-imx: enable ipg or per clks only if CONFIG_CLK enabled

This caused linker errors in cases where IPUv3 was enabled (which
defines its own clocks).

Fixes: bfc778cb93 ("driver: pwm: pwm-imx: get and enable per/ipg
                     clock using dm")
Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
This commit is contained in:
Brian Ruley
2026-02-13 10:49:53 +02:00
committed by Fabio Estevam
parent b0cc723f46
commit 07632c97a4

View File

@@ -232,17 +232,19 @@ static int imx_pwm_of_to_plat(struct udevice *dev)
priv->regs = dev_read_addr_ptr(dev);
ret = clk_get_by_name(dev, "per", &priv->per_clk);
if (ret) {
printf("Failed to get per_clk\n");
return ret;
}
if (CONFIG_IS_ENABLED(CLK)) {
ret = clk_get_by_name(dev, "per", &priv->per_clk);
if (ret) {
printf("Failed to get per_clk\n");
return ret;
}
ret = clk_get_by_name(dev, "ipg", &priv->ipg_clk);
if (ret) {
printf("Failed to get ipg_clk\n");
return ret;
}
ret = clk_get_by_name(dev, "ipg", &priv->ipg_clk);
if (ret) {
printf("Failed to get ipg_clk\n");
return ret;
}
}
return 0;
}
@@ -252,17 +254,19 @@ static int imx_pwm_probe(struct udevice *dev)
int ret;
struct imx_pwm_priv *priv = dev_get_priv(dev);
ret = clk_enable(&priv->per_clk);
if (ret) {
printf("Failed to enable per_clk\n");
return ret;
}
if (CONFIG_IS_ENABLED(CLK)) {
ret = clk_enable(&priv->per_clk);
if (ret) {
printf("Failed to enable per_clk\n");
return ret;
}
ret = clk_enable(&priv->ipg_clk);
if (ret) {
printf("Failed to enable ipg_clk\n");
return ret;
}
ret = clk_enable(&priv->ipg_clk);
if (ret) {
printf("Failed to enable ipg_clk\n");
return ret;
}
}
return 0;
}