Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: qcom: gdsc: Add GDSCs in msm8996 GCC

Add all data for the GDSCs which are part of msm8996 GCC block

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>

authored by

Rajendra Nayak and committed by
Stephen Boyd
52111672 a823bb9f

+103
+92
drivers/clk/qcom/gcc-msm8996.c
··· 30 30 #include "clk-rcg.h" 31 31 #include "clk-branch.h" 32 32 #include "reset.h" 33 + #include "gdsc.h" 33 34 34 35 #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) } 35 36 ··· 3060 3059 &ufs_ice_core_postdiv_clk_src.hw, 3061 3060 }; 3062 3061 3062 + static struct gdsc aggre0_noc_gdsc = { 3063 + .gdscr = 0x81004, 3064 + .gds_hw_ctrl = 0x81028, 3065 + .pd = { 3066 + .name = "aggre0_noc", 3067 + }, 3068 + .pwrsts = PWRSTS_OFF_ON, 3069 + .flags = VOTABLE, 3070 + }; 3071 + 3072 + static struct gdsc hlos1_vote_aggre0_noc_gdsc = { 3073 + .gdscr = 0x7d024, 3074 + .pd = { 3075 + .name = "hlos1_vote_aggre0_noc", 3076 + }, 3077 + .pwrsts = PWRSTS_OFF_ON, 3078 + .flags = VOTABLE, 3079 + }; 3080 + 3081 + static struct gdsc hlos1_vote_lpass_adsp_gdsc = { 3082 + .gdscr = 0x7d034, 3083 + .pd = { 3084 + .name = "hlos1_vote_lpass_adsp", 3085 + }, 3086 + .pwrsts = PWRSTS_OFF_ON, 3087 + .flags = VOTABLE, 3088 + }; 3089 + 3090 + static struct gdsc hlos1_vote_lpass_core_gdsc = { 3091 + .gdscr = 0x7d038, 3092 + .pd = { 3093 + .name = "hlos1_vote_lpass_core", 3094 + }, 3095 + .pwrsts = PWRSTS_OFF_ON, 3096 + .flags = VOTABLE, 3097 + }; 3098 + 3099 + static struct gdsc usb30_gdsc = { 3100 + .gdscr = 0xf004, 3101 + .pd = { 3102 + .name = "usb30", 3103 + }, 3104 + .pwrsts = PWRSTS_OFF_ON, 3105 + }; 3106 + 3107 + static struct gdsc pcie0_gdsc = { 3108 + .gdscr = 0x6b004, 3109 + .pd = { 3110 + .name = "pcie0", 3111 + }, 3112 + .pwrsts = PWRSTS_OFF_ON, 3113 + }; 3114 + 3115 + static struct gdsc pcie1_gdsc = { 3116 + .gdscr = 0x6d004, 3117 + .pd = { 3118 + .name = "pcie1", 3119 + }, 3120 + .pwrsts = PWRSTS_OFF_ON, 3121 + }; 3122 + 3123 + static struct gdsc pcie2_gdsc = { 3124 + .gdscr = 0x6e004, 3125 + .pd = { 3126 + .name = "pcie2", 3127 + }, 3128 + .pwrsts = PWRSTS_OFF_ON, 3129 + }; 3130 + 3131 + static struct gdsc ufs_gdsc = { 3132 + .gdscr = 0x75004, 3133 + .pd = { 3134 + .name = "ufs", 3135 + }, 3136 + .pwrsts = PWRSTS_OFF_ON, 3137 + }; 3138 + 3063 3139 static struct clk_regmap *gcc_msm8996_clocks[] = { 3064 3140 [GPLL0_EARLY] = &gpll0_early.clkr, 3065 3141 [GPLL0] = &gpll0.clkr, ··· 3323 3245 [GCC_RX1_USB2_CLKREF_CLK] = &gcc_rx1_usb2_clkref_clk.clkr, 3324 3246 }; 3325 3247 3248 + static struct gdsc *gcc_msm8996_gdscs[] = { 3249 + [AGGRE0_NOC_GDSC] = &aggre0_noc_gdsc, 3250 + [HLOS1_VOTE_AGGRE0_NOC_GDSC] = &hlos1_vote_aggre0_noc_gdsc, 3251 + [HLOS1_VOTE_LPASS_ADSP_GDSC] = &hlos1_vote_lpass_adsp_gdsc, 3252 + [HLOS1_VOTE_LPASS_CORE_GDSC] = &hlos1_vote_lpass_core_gdsc, 3253 + [USB30_GDSC] = &usb30_gdsc, 3254 + [PCIE0_GDSC] = &pcie0_gdsc, 3255 + [PCIE1_GDSC] = &pcie1_gdsc, 3256 + [PCIE2_GDSC] = &pcie2_gdsc, 3257 + [UFS_GDSC] = &ufs_gdsc, 3258 + }; 3259 + 3326 3260 static const struct qcom_reset_map gcc_msm8996_resets[] = { 3327 3261 [GCC_SYSTEM_NOC_BCR] = { 0x4000 }, 3328 3262 [GCC_CONFIG_NOC_BCR] = { 0x5000 }, ··· 3453 3363 .num_clks = ARRAY_SIZE(gcc_msm8996_clocks), 3454 3364 .resets = gcc_msm8996_resets, 3455 3365 .num_resets = ARRAY_SIZE(gcc_msm8996_resets), 3366 + .gdscs = gcc_msm8996_gdscs, 3367 + .num_gdscs = ARRAY_SIZE(gcc_msm8996_gdscs), 3456 3368 }; 3457 3369 3458 3370 static const struct of_device_id gcc_msm8996_match_table[] = {
+11
include/dt-bindings/clock/qcom,gcc-msm8996.h
··· 336 336 #define GCC_MSS_Q6_BCR 99 337 337 #define GCC_QREFS_VBG_CAL_BCR 100 338 338 339 + /* Indexes for GDSCs */ 340 + #define AGGRE0_NOC_GDSC 0 341 + #define HLOS1_VOTE_AGGRE0_NOC_GDSC 1 342 + #define HLOS1_VOTE_LPASS_ADSP_GDSC 2 343 + #define HLOS1_VOTE_LPASS_CORE_GDSC 3 344 + #define USB30_GDSC 4 345 + #define PCIE0_GDSC 5 346 + #define PCIE1_GDSC 6 347 + #define PCIE2_GDSC 7 348 + #define UFS_GDSC 8 349 + 339 350 #endif