diff options
| author | Brian Ruley <brian.ruley@gehealthcare.com> | 2026-02-13 10:49:53 +0200 |
|---|---|---|
| committer | Fabio Estevam <festevam@gmail.com> | 2026-02-28 15:31:49 -0300 |
| commit | 07632c97a4c1b687f18250060802f04592a2707d (patch) | |
| tree | 313bff9be92b72ceab0bc94a0c6cf31784aab784 | |
| parent | b0cc723f46a4a883f3629d897735b35318cb049e (diff) | |
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: bfc778cb93a ("driver: pwm: pwm-imx: get and enable per/ipg
clock using dm")
Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
| -rw-r--r-- | drivers/pwm/pwm-imx.c | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c index bb37b39fa0e..fc5d2a3e5e3 100644 --- a/drivers/pwm/pwm-imx.c +++ b/drivers/pwm/pwm-imx.c @@ -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; - } - - ret = clk_get_by_name(dev, "ipg", &priv->ipg_clk); - if (ret) { - printf("Failed to get ipg_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; + } + } 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; - } - - ret = clk_enable(&priv->ipg_clk); - if (ret) { - printf("Failed to enable ipg_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; + } + } return 0; } |
