Skip to content

Commit 3fade94

Browse files
vinodkoulbebarino
authored andcommitted
clk: qcom: gcc-sm8350: add gdsc
Add the GDSC found in GCC for SM8350 SoC Signed-off-by: Vinod Koul <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Stephen Boyd <[email protected]>
1 parent e16831b commit 3fade94

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

drivers/clk/qcom/gcc-sm8350.c

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "clk-regmap.h"
1717
#include "clk-regmap-divider.h"
1818
#include "clk-regmap-mux.h"
19+
#include "gdsc.h"
1920
#include "reset.h"
2021

2122
enum {
@@ -3452,6 +3453,90 @@ static struct clk_branch gcc_video_axi1_clk = {
34523453
},
34533454
};
34543455

3456+
static struct gdsc pcie_0_gdsc = {
3457+
.gdscr = 0x6b004,
3458+
.pd = {
3459+
.name = "pcie_0_gdsc",
3460+
},
3461+
.pwrsts = PWRSTS_OFF_ON,
3462+
};
3463+
3464+
static struct gdsc pcie_1_gdsc = {
3465+
.gdscr = 0x8d004,
3466+
.pd = {
3467+
.name = "pcie_1_gdsc",
3468+
},
3469+
.pwrsts = PWRSTS_OFF_ON,
3470+
};
3471+
3472+
static struct gdsc ufs_card_gdsc = {
3473+
.gdscr = 0x75004,
3474+
.pd = {
3475+
.name = "ufs_card_gdsc",
3476+
},
3477+
.pwrsts = PWRSTS_OFF_ON,
3478+
};
3479+
3480+
static struct gdsc ufs_phy_gdsc = {
3481+
.gdscr = 0x77004,
3482+
.pd = {
3483+
.name = "ufs_phy_gdsc",
3484+
},
3485+
.pwrsts = PWRSTS_OFF_ON,
3486+
};
3487+
3488+
static struct gdsc usb30_prim_gdsc = {
3489+
.gdscr = 0xf004,
3490+
.pd = {
3491+
.name = "usb30_prim_gdsc",
3492+
},
3493+
.pwrsts = PWRSTS_OFF_ON,
3494+
};
3495+
3496+
static struct gdsc usb30_sec_gdsc = {
3497+
.gdscr = 0x10004,
3498+
.pd = {
3499+
.name = "usb30_sec_gdsc",
3500+
},
3501+
.pwrsts = PWRSTS_OFF_ON,
3502+
};
3503+
3504+
static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
3505+
.gdscr = 0x7d050,
3506+
.pd = {
3507+
.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
3508+
},
3509+
.pwrsts = PWRSTS_OFF_ON,
3510+
.flags = VOTABLE,
3511+
};
3512+
3513+
static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
3514+
.gdscr = 0x7d058,
3515+
.pd = {
3516+
.name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
3517+
},
3518+
.pwrsts = PWRSTS_OFF_ON,
3519+
.flags = VOTABLE,
3520+
};
3521+
3522+
static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc = {
3523+
.gdscr = 0x7d054,
3524+
.pd = {
3525+
.name = "hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc",
3526+
},
3527+
.pwrsts = PWRSTS_OFF_ON,
3528+
.flags = VOTABLE,
3529+
};
3530+
3531+
static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc = {
3532+
.gdscr = 0x7d06c,
3533+
.pd = {
3534+
.name = "hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc",
3535+
},
3536+
.pwrsts = PWRSTS_OFF_ON,
3537+
.flags = VOTABLE,
3538+
};
3539+
34553540
static struct clk_regmap *gcc_sm8350_clocks[] = {
34563541
[GCC_AGGRE_NOC_PCIE_0_AXI_CLK] = &gcc_aggre_noc_pcie_0_axi_clk.clkr,
34573542
[GCC_AGGRE_NOC_PCIE_1_AXI_CLK] = &gcc_aggre_noc_pcie_1_axi_clk.clkr,
@@ -3646,6 +3731,19 @@ static struct clk_regmap *gcc_sm8350_clocks[] = {
36463731
[GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
36473732
};
36483733

3734+
static struct gdsc *gcc_sm8350_gdscs[] = {
3735+
[PCIE_0_GDSC] = &pcie_0_gdsc,
3736+
[PCIE_1_GDSC] = &pcie_1_gdsc,
3737+
[UFS_CARD_GDSC] = &ufs_card_gdsc,
3738+
[UFS_PHY_GDSC] = &ufs_phy_gdsc,
3739+
[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
3740+
[USB30_SEC_GDSC] = &usb30_sec_gdsc,
3741+
[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
3742+
[HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc,
3743+
[HLOS1_VOTE_MMNOC_MMU_TBU_SF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc,
3744+
[HLOS1_VOTE_MMNOC_MMU_TBU_SF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc,
3745+
};
3746+
36493747
static const struct qcom_reset_map gcc_sm8350_resets[] = {
36503748
[GCC_CAMERA_BCR] = { 0x26000 },
36513749
[GCC_DISPLAY_BCR] = { 0x27000 },
@@ -3724,6 +3822,8 @@ static const struct qcom_cc_desc gcc_sm8350_desc = {
37243822
.num_clks = ARRAY_SIZE(gcc_sm8350_clocks),
37253823
.resets = gcc_sm8350_resets,
37263824
.num_resets = ARRAY_SIZE(gcc_sm8350_resets),
3825+
.gdscs = gcc_sm8350_gdscs,
3826+
.num_gdscs = ARRAY_SIZE(gcc_sm8350_gdscs),
37273827
};
37283828

37293829
static const struct of_device_id gcc_sm8350_match_table[] = {

include/dt-bindings/clock/qcom,gcc-sm8350.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,4 +251,16 @@
251251
#define GCC_VIDEO_AXI1_CLK_ARES 36
252252
#define GCC_VIDEO_BCR 37
253253

254+
/* GCC power domains */
255+
#define PCIE_0_GDSC 0
256+
#define PCIE_1_GDSC 1
257+
#define UFS_CARD_GDSC 2
258+
#define UFS_PHY_GDSC 3
259+
#define USB30_PRIM_GDSC 4
260+
#define USB30_SEC_GDSC 5
261+
#define HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC 6
262+
#define HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC 7
263+
#define HLOS1_VOTE_MMNOC_MMU_TBU_SF0_GDSC 8
264+
#define HLOS1_VOTE_MMNOC_MMU_TBU_SF1_GDSC 9
265+
254266
#endif

0 commit comments

Comments
 (0)