aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2017-07-17 08:39:21 -0400
committerSylwester Nawrocki <s.nawrocki@samsung.com>2017-08-09 11:17:04 -0400
commit7df45a532c5ee3efe106e8a9042a3524b0b587b1 (patch)
tree138b08398b57f7cb900eb5f85ceaf0f66aa03c2a
parent41097f25e9b2091d5d0a309cceb788704f21e1d2 (diff)
clk: samsung: Add CLK_SET_RATE_PARENT to some AUDSS CLK CON clocks
This allows clk rate propagation up to the clock tree so EPLL can be reprogrammed indirectly when setting rate of the Audio Subsystem clocks. The advantage is that sound machine driver can operate only on the leaf clocks rather than explicitly re-configuring the root clock (EPLL). Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
-rw-r--r--drivers/clk/samsung/clk-exynos-audss.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/clk/samsung/clk-exynos-audss.c b/drivers/clk/samsung/clk-exynos-audss.c
index 1fab56f396d4..b117783ed404 100644
--- a/drivers/clk/samsung/clk-exynos-audss.c
+++ b/drivers/clk/samsung/clk-exynos-audss.c
@@ -180,7 +180,7 @@ static int exynos_audss_clk_probe(struct platform_device *pdev)
180 } 180 }
181 clk_table[EXYNOS_MOUT_AUDSS] = clk_hw_register_mux(NULL, "mout_audss", 181 clk_table[EXYNOS_MOUT_AUDSS] = clk_hw_register_mux(NULL, "mout_audss",
182 mout_audss_p, ARRAY_SIZE(mout_audss_p), 182 mout_audss_p, ARRAY_SIZE(mout_audss_p),
183 CLK_SET_RATE_NO_REPARENT, 183 CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT,
184 reg_base + ASS_CLK_SRC, 0, 1, 0, &lock); 184 reg_base + ASS_CLK_SRC, 0, 1, 0, &lock);
185 185
186 cdclk = devm_clk_get(&pdev->dev, "cdclk"); 186 cdclk = devm_clk_get(&pdev->dev, "cdclk");
@@ -195,11 +195,11 @@ static int exynos_audss_clk_probe(struct platform_device *pdev)
195 reg_base + ASS_CLK_SRC, 2, 2, 0, &lock); 195 reg_base + ASS_CLK_SRC, 2, 2, 0, &lock);
196 196
197 clk_table[EXYNOS_DOUT_SRP] = clk_hw_register_divider(NULL, "dout_srp", 197 clk_table[EXYNOS_DOUT_SRP] = clk_hw_register_divider(NULL, "dout_srp",
198 "mout_audss", 0, reg_base + ASS_CLK_DIV, 0, 4, 198 "mout_audss", CLK_SET_RATE_PARENT,
199 0, &lock); 199 reg_base + ASS_CLK_DIV, 0, 4, 0, &lock);
200 200
201 clk_table[EXYNOS_DOUT_AUD_BUS] = clk_hw_register_divider(NULL, 201 clk_table[EXYNOS_DOUT_AUD_BUS] = clk_hw_register_divider(NULL,
202 "dout_aud_bus", "dout_srp", 0, 202 "dout_aud_bus", "dout_srp", CLK_SET_RATE_PARENT,
203 reg_base + ASS_CLK_DIV, 4, 4, 0, &lock); 203 reg_base + ASS_CLK_DIV, 4, 4, 0, &lock);
204 204
205 clk_table[EXYNOS_DOUT_I2S] = clk_hw_register_divider(NULL, "dout_i2s", 205 clk_table[EXYNOS_DOUT_I2S] = clk_hw_register_divider(NULL, "dout_i2s",