diff options
| author | Brian Ruley <[email protected]> | 2026-02-13 10:49:53 +0200 |
|---|---|---|
| committer | Fabio Estevam <[email protected]> | 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 <[email protected]>
| -rw-r--r-- | drivers/pwm/pwm-imx.c | 44 |
1 files changed, 24 insertions, 20 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; - } + 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; } |
