From 5aaf2f00bd63787f62ea16640fa62f2d62b3dc32 Mon Sep 17 00:00:00 2001 From: "yiting.deng" Date: Thu, 8 Jan 2026 06:25:13 +0000 Subject: [PATCH] clk: clk add ignore_unused flag [1/1] PD#SWPL-249010 Problem: sc2/s4 clk driver buildin, some clk need add CLK_IGNORE_UNUSED flag Solution: fix it Verify: ah212/ap222 Change-Id: I9154d3665e572e532ac81d970eda399b641a23b1 Signed-off-by: yiting.deng --- drivers/clk/meson/s4.c | 13 +++++++++---- drivers/clk/meson/sc2.c | 9 +++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/clk/meson/s4.c b/drivers/clk/meson/s4.c index d3eb94fd6..69e796fff 100644 --- a/drivers/clk/meson/s4.c +++ b/drivers/clk/meson/s4.c @@ -464,6 +464,7 @@ static struct clk_regmap hdmi_pll_dco = { .fw_name = "xtal", }, .num_parents = 1, + .flags = CLK_IGNORE_UNUSED, }, }; @@ -1314,7 +1315,7 @@ static struct clk_regmap rama_0 = { }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT | - CLK_SET_RATE_GATE, + CLK_SET_RATE_GATE | CLK_IGNORE_UNUSED, }, }; @@ -1363,7 +1364,7 @@ static struct clk_regmap rama_1 = { }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT | - CLK_SET_RATE_GATE, + CLK_SET_RATE_GATE | CLK_IGNORE_UNUSED, }, }; @@ -1383,8 +1384,12 @@ static struct clk_regmap rama = { .ops = &clk_regmap_mux_ops, .parent_data = rama_parent_data, .num_parents = ARRAY_SIZE(rama_parent_data), - .flags = CLK_SET_RATE_PARENT | - CLK_OPS_PARENT_ENABLE, + /** + * clk driver built-in loaded, critical clks cannot be + * disabled by clk_disable_unused(). for glitch-free clocks, + * CLK_OPS_PARENT_ENABLE flag needs to be removed. + */ + .flags = CLK_SET_RATE_PARENT, }, }; diff --git a/drivers/clk/meson/sc2.c b/drivers/clk/meson/sc2.c index f3c04bcf9..ab04b3a82 100644 --- a/drivers/clk/meson/sc2.c +++ b/drivers/clk/meson/sc2.c @@ -262,6 +262,7 @@ static struct clk_regmap hdmi_pll_dco = { .fw_name = "xtal", }, .num_parents = 1, + .flags = CLK_IGNORE_UNUSED, }, }; @@ -4106,7 +4107,7 @@ static struct clk_regmap pwm_g = { &pwm_g_div.hw, }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, }, }; @@ -4154,7 +4155,7 @@ static struct clk_regmap pwm_h = { &pwm_h_div.hw, }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, }, }; @@ -4202,7 +4203,7 @@ static struct clk_regmap pwm_i = { &pwm_i_div.hw, }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, }, }; @@ -4250,7 +4251,7 @@ static struct clk_regmap pwm_j = { &pwm_j_div.hw, }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, }, };