From: Sumit Garg <sumit.garg@kernel.org>
To: Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com>
Cc: u-boot@lists.denx.de, u-boot-qcom@groups.io,
Lukasz Majewski <lukma@denx.de>, Tom Rini <trini@konsulko.com>,
Casey Connolly <casey.connolly@linaro.org>,
Neil Armstrong <neil.armstrong@linaro.org>,
David Wronek <david.wronek@mainlining.org>,
Luca Weiss <luca.weiss@fairphone.com>,
Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com>,
Swathi Tamilselvan <swathi.tamilselvan@oss.qualcomm.com>,
Aswin Murugan <aswin.murugan@oss.qualcomm.com>,
Bhupesh Sharma <bhupesh.linux@gmail.com>,
Neha Malcom Francis <n-francis@ti.com>,
Marek Vasut <marek.vasut+renesas@mailbox.org>,
Julien Stephan <jstephan@baylibre.com>
Subject: Re: [PATCH 4/5] clk: qcom: sc7280: Add UFS clock support
Date: Tue, 24 Mar 2026 11:56:29 +0530 [thread overview]
Message-ID: <acIuld4tiNY2UlEG@sumit-xelite> (raw)
In-Reply-To: <20260319-ufs_probe_clk-v1-4-08c085d6b15d@oss.qualcomm.com>
On Thu, Mar 19, 2026 at 03:07:41PM +0530, Balaji Selvanathan wrote:
> Add UFS clock support for sc7280 including register definitions,
> rate configuration, and gate clocks.
>
> Signed-off-by: Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com>
> ---
> drivers/clk/qcom/clock-sc7280.c | 52 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 52 insertions(+)
Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
-Sumit
>
> diff --git a/drivers/clk/qcom/clock-sc7280.c b/drivers/clk/qcom/clock-sc7280.c
> index 7b6ed826023..2c73c26484f 100644
> --- a/drivers/clk/qcom/clock-sc7280.c
> +++ b/drivers/clk/qcom/clock-sc7280.c
> @@ -23,6 +23,10 @@
> #define PCIE_1_AUX_CLK_CMD_RCGR 0x8d058
> #define PCIE1_PHY_RCHNG_CMD_RCGR 0x8d03c
> #define PCIE_1_PIPE_CLK_PHY_MUX 0x8d054
> +#define UFS_PHY_AXI_CLK_CMD_RCGR 0x77024
> +#define UFS_PHY_ICE_CORE_CLK_CMD_RCGR 0x7706c
> +#define UFS_PHY_PHY_AUX_CLK_CMD_RCGR 0x770a0
> +#define UFS_PHY_UNIPRO_CORE_CLK_CMD_RCGR 0x77084
>
> static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
> F(66666667, CFG_CLK_SRC_GPLL0_EVEN, 4.5, 0, 0),
> @@ -54,6 +58,33 @@ static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s2_clk_src[] = {
> { }
> };
>
> +static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
> + F(25000000, CFG_CLK_SRC_GPLL0_EVEN, 12, 0, 0),
> + F(75000000, CFG_CLK_SRC_GPLL0_EVEN, 4, 0, 0),
> + F(150000000, CFG_CLK_SRC_GPLL0_EVEN, 2, 0, 0),
> + F(300000000, CFG_CLK_SRC_GPLL0_EVEN, 1, 0, 0),
> + { }
> +};
> +
> +static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
> + F(75000000, CFG_CLK_SRC_GPLL0_EVEN, 4, 0, 0),
> + F(150000000, CFG_CLK_SRC_GPLL0_EVEN, 2, 0, 0),
> + F(300000000, CFG_CLK_SRC_GPLL0_EVEN, 1, 0, 0),
> + { }
> +};
> +
> +static const struct freq_tbl ftbl_gcc_ufs_phy_phy_aux_clk_src[] = {
> + F(19200000, CFG_CLK_SRC_CXO, 1, 0, 0),
> + { }
> +};
> +
> +static const struct freq_tbl ftbl_gcc_ufs_phy_unipro_core_clk_src[] = {
> + F(75000000, CFG_CLK_SRC_GPLL0_EVEN, 4, 0, 0),
> + F(150000000, CFG_CLK_SRC_GPLL0_EVEN, 2, 0, 0),
> + F(300000000, CFG_CLK_SRC_GPLL0_EVEN, 1, 0, 0),
> + { }
> +};
> +
> static ulong sc7280_set_rate(struct clk *clk, ulong rate)
> {
> struct msm_clk_priv *priv = dev_get_priv(clk->dev);
> @@ -103,6 +134,26 @@ static ulong sc7280_set_rate(struct clk *clk, ulong rate)
> case GCC_PCIE1_PHY_RCHNG_CLK:
> clk_rcg_set_rate(priv->base, PCIE1_PHY_RCHNG_CMD_RCGR, 5, CFG_CLK_SRC_GPLL0_EVEN);
> return 100000000;
> + case GCC_UFS_PHY_AXI_CLK:
> + freq = qcom_find_freq(ftbl_gcc_ufs_phy_axi_clk_src, rate);
> + clk_rcg_set_rate_mnd(priv->base, UFS_PHY_AXI_CLK_CMD_RCGR,
> + freq->pre_div, freq->m, freq->n, freq->src, 8);
> + return freq->freq;
> + case GCC_UFS_PHY_ICE_CORE_CLK:
> + freq = qcom_find_freq(ftbl_gcc_ufs_phy_ice_core_clk_src, rate);
> + clk_rcg_set_rate_mnd(priv->base, UFS_PHY_ICE_CORE_CLK_CMD_RCGR,
> + freq->pre_div, freq->m, freq->n, freq->src, 8);
> + return freq->freq;
> + case GCC_UFS_PHY_PHY_AUX_CLK:
> + freq = qcom_find_freq(ftbl_gcc_ufs_phy_phy_aux_clk_src, rate);
> + clk_rcg_set_rate_mnd(priv->base, UFS_PHY_PHY_AUX_CLK_CMD_RCGR,
> + freq->pre_div, freq->m, freq->n, freq->src, 8);
> + return freq->freq;
> + case GCC_UFS_PHY_UNIPRO_CORE_CLK:
> + freq = qcom_find_freq(ftbl_gcc_ufs_phy_unipro_core_clk_src, rate);
> + clk_rcg_set_rate_mnd(priv->base, UFS_PHY_UNIPRO_CORE_CLK_CMD_RCGR,
> + freq->pre_div, freq->m, freq->n, freq->src, 8);
> + return freq->freq;
> default:
> return rate;
> }
> @@ -147,6 +198,7 @@ static const struct gate_clk sc7280_clks[] = {
> GATE_CLK(GCC_UFS_PHY_AXI_CLK, 0x77010, BIT(0)),
> GATE_CLK(GCC_AGGRE_UFS_PHY_AXI_CLK, 0x770cc, BIT(0)),
> GATE_CLK(GCC_UFS_PHY_AHB_CLK, 0x77018, BIT(0)),
> + GATE_CLK(GCC_UFS_PHY_ICE_CORE_CLK, 0x77064, BIT(0)),
> GATE_CLK(GCC_UFS_PHY_UNIPRO_CORE_CLK, 0x7705c, BIT(0)),
> GATE_CLK(GCC_UFS_PHY_PHY_AUX_CLK, 0x7709c, BIT(0)),
> GATE_CLK(GCC_UFS_PHY_TX_SYMBOL_0_CLK, 0x7701c, BIT(0)),
>
> --
> 2.34.1
>
next prev parent reply other threads:[~2026-03-24 6:26 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-19 9:37 [PATCH 0/5] Add UFS clock support for Qualcomm SoCs Balaji Selvanathan
2026-03-19 9:37 ` [PATCH 1/5] clk: qcom: clk-stub: Add compatibles for QCS615/SA8775P/SC7280 Balaji Selvanathan
2026-03-19 10:30 ` Julien Stephan
2026-03-19 9:37 ` [PATCH 2/5] clk: qcom: sa8775p: Add UFS clock support Balaji Selvanathan
2026-03-24 6:12 ` Sumit Garg
2026-03-19 9:37 ` [PATCH 3/5] clk: qcom: qcs615: " Balaji Selvanathan
2026-03-24 6:25 ` Sumit Garg
2026-03-19 9:37 ` [PATCH 4/5] clk: qcom: sc7280: " Balaji Selvanathan
2026-03-24 6:26 ` Sumit Garg [this message]
2026-03-19 9:37 ` [PATCH 5/5] drivers: ufs: qcom: Initialize and enable clocks before hardware access Balaji Selvanathan
2026-03-19 10:20 ` Julien Stephan
2026-03-24 6:49 ` Sumit Garg
2026-04-27 16:54 ` Balaji Selvanathan
2026-04-13 12:09 ` Casey Connolly
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=acIuld4tiNY2UlEG@sumit-xelite \
--to=sumit.garg@kernel.org \
--cc=aswin.murugan@oss.qualcomm.com \
--cc=balaji.selvanathan@oss.qualcomm.com \
--cc=bhupesh.linux@gmail.com \
--cc=casey.connolly@linaro.org \
--cc=david.wronek@mainlining.org \
--cc=jorge.ramirez@oss.qualcomm.com \
--cc=jstephan@baylibre.com \
--cc=luca.weiss@fairphone.com \
--cc=lukma@denx.de \
--cc=marek.vasut+renesas@mailbox.org \
--cc=n-francis@ti.com \
--cc=neil.armstrong@linaro.org \
--cc=swathi.tamilselvan@oss.qualcomm.com \
--cc=trini@konsulko.com \
--cc=u-boot-qcom@groups.io \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.