summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlif Zakuan Yuslaimi <[email protected]>2026-02-02 23:59:24 -0800
committerTom Rini <[email protected]>2026-02-14 11:06:46 -0600
commit22aac1c5b466da72095ccf3464660eae47579e2e (patch)
tree3106b98141bbff1219c50c1f4d8ff54e5904a5ee
parentad642af8093b35f61b5a144d6f6b094a83ff4b5a (diff)
clk: altera: agilex: Exclude AGILEX_L4_SYS_FREE_CLK from enable/disable operations
AGILEX_L4_SYS_FREE_CLK is a free-running clock with no gate control in hardware, therefore attempting to enable or disable it is not applicable. Update the clock driver to explicitly exclude this clock ID from enable/disable operations by returning -EOPNOTSUPP in bitmask_from_clk_id() and treating this as a no-op in the socfpga_clk_enable() and socfpga_clk_disable() functions. This prevents unnecessary register access for clocks that cannot be gated and ensures clean handling when the clock is present in the device tree. Signed-off-by: Alif Zakuan Yuslaimi <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
-rw-r--r--drivers/clk/altera/clk-agilex.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/clk/altera/clk-agilex.c b/drivers/clk/altera/clk-agilex.c
index f1e2fded7d4..e5be43b6317 100644
--- a/drivers/clk/altera/clk-agilex.c
+++ b/drivers/clk/altera/clk-agilex.c
@@ -729,6 +729,8 @@ static int bitmask_from_clk_id(struct clk *clk)
plat->pllgrp = CLKMGR_PERPLL_EN;
plat->bitmask = CLKMGR_PERPLLGRP_EN_NANDCLK_MASK;
break;
+ case AGILEX_L4_SYS_FREE_CLK:
+ return -EOPNOTSUPP;
default:
return -ENXIO;
}
@@ -743,6 +745,9 @@ static int socfpga_clk_enable(struct clk *clk)
int ret;
ret = bitmask_from_clk_id(clk);
+ if (ret == -EOPNOTSUPP)
+ return 0;
+
if (ret)
return ret;
@@ -758,6 +763,9 @@ static int socfpga_clk_disable(struct clk *clk)
int ret;
ret = bitmask_from_clk_id(clk);
+ if (ret == -EOPNOTSUPP)
+ return 0;
+
if (ret)
return ret;