diff options
author | Taniya Das <tdas@codeaurora.org> | 2014-04-29 19:16:58 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-05-18 23:01:27 -0700 |
commit | 9b412a97b1292ecb278d743f1894ee29d4f3f6d1 (patch) | |
tree | ce71639e91f90956189276952676c9aa5673c234 | |
parent | 81637e292108f686cf9053699ed14ef4c1c004e7 (diff) |
clk: qcom: clock-gcc-8936: Add crypto lookup for secure pil
Crypto clocks are needed for SCM communication with TZ.
SCM driver turns on crypto clocks prior to SCM call.
Change-Id: I073178a911b0a5b11e3905dc20cf5737da0fb8b6
Signed-off-by: Taniya Das <tdas@codeaurora.org>
-rw-r--r-- | drivers/clk/qcom/clock-gcc-8936.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/clk/qcom/clock-gcc-8936.c b/drivers/clk/qcom/clock-gcc-8936.c index 873b9093e504..1d1c8ebf0d53 100644 --- a/drivers/clk/qcom/clock-gcc-8936.c +++ b/drivers/clk/qcom/clock-gcc-8936.c @@ -2856,7 +2856,6 @@ static struct clk_lookup msm_clocks_lookup[] = { /* RCGs */ CLK_LIST(apss_ahb_clk_src), CLK_LIST(camss_top_ahb_clk_src), - CLK_LIST(crypto_clk_src), CLK_LIST(csi0_clk_src), CLK_LIST(csi1_clk_src), CLK_LIST(csi2_clk_src), @@ -2908,9 +2907,6 @@ static struct clk_lookup msm_clocks_lookup[] = { /* Voteable Clocks */ CLK_LIST(gcc_blsp1_ahb_clk), CLK_LIST(gcc_boot_rom_ahb_clk), - CLK_LIST(gcc_crypto_ahb_clk), - CLK_LIST(gcc_crypto_axi_clk), - CLK_LIST(gcc_crypto_clk), CLK_LIST(gcc_prng_ahb_clk), CLK_LIST(gcc_apss_tcu_clk), CLK_LIST(gcc_gfx_tbu_clk), @@ -3014,6 +3010,14 @@ static struct clk_lookup msm_clocks_lookup[] = { CLK_LIST(wcnss_m_clk), }; +static struct clk_lookup msm_clocks_gcc_8936_crypto[] = { + /* Crypto clocks */ + CLK_LOOKUP_OF("core_clk", gcc_crypto_clk, "scm"), + CLK_LOOKUP_OF("iface_clk", gcc_crypto_ahb_clk, "scm"), + CLK_LOOKUP_OF("bus_clk", gcc_crypto_axi_clk, "scm"), + CLK_LOOKUP_OF("core_clk_src", crypto_clk_src, "scm"), +}; + static int msm_gcc_probe(struct platform_device *pdev) { struct resource *res; @@ -3070,6 +3074,12 @@ static int msm_gcc_probe(struct platform_device *pdev) if (ret) return ret; + ret = of_msm_clock_register(pdev->dev.of_node, + msm_clocks_gcc_8936_crypto, + ARRAY_SIZE(msm_clocks_gcc_8936_crypto)); + if (ret) + return ret; + clk_set_rate(&apss_ahb_clk_src.c, 19200000); clk_prepare_enable(&apss_ahb_clk_src.c); |