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 msm8916 GCC

Add all data for the GDSCs which are part of msm8916 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
073ae2b4 3c53f5e2

+60
+1
drivers/clk/qcom/Kconfig
··· 53 53 54 54 config MSM_GCC_8916 55 55 tristate "MSM8916 Global Clock Controller" 56 + select QCOM_GDSC 56 57 depends on COMMON_CLK_QCOM 57 58 help 58 59 Support for the global clock controller on msm8916 devices.
+51
drivers/clk/qcom/gcc-msm8916.c
··· 31 31 #include "clk-rcg.h" 32 32 #include "clk-branch.h" 33 33 #include "reset.h" 34 + #include "gdsc.h" 34 35 35 36 enum { 36 37 P_XO, ··· 2551 2550 }, 2552 2551 }; 2553 2552 2553 + static struct gdsc venus_gdsc = { 2554 + .gdscr = 0x4c018, 2555 + .pd = { 2556 + .name = "venus", 2557 + }, 2558 + .pwrsts = PWRSTS_OFF_ON, 2559 + }; 2560 + 2561 + static struct gdsc mdss_gdsc = { 2562 + .gdscr = 0x4d078, 2563 + .pd = { 2564 + .name = "mdss", 2565 + }, 2566 + .pwrsts = PWRSTS_OFF_ON, 2567 + }; 2568 + 2569 + static struct gdsc jpeg_gdsc = { 2570 + .gdscr = 0x5701c, 2571 + .pd = { 2572 + .name = "jpeg", 2573 + }, 2574 + .pwrsts = PWRSTS_OFF_ON, 2575 + }; 2576 + 2577 + static struct gdsc vfe_gdsc = { 2578 + .gdscr = 0x58034, 2579 + .pd = { 2580 + .name = "vfe", 2581 + }, 2582 + .pwrsts = PWRSTS_OFF_ON, 2583 + }; 2584 + 2585 + static struct gdsc oxili_gdsc = { 2586 + .gdscr = 0x5901c, 2587 + .pd = { 2588 + .name = "oxili", 2589 + }, 2590 + .pwrsts = PWRSTS_OFF_ON, 2591 + }; 2592 + 2554 2593 static struct clk_regmap *gcc_msm8916_clocks[] = { 2555 2594 [GPLL0] = &gpll0.clkr, 2556 2595 [GPLL0_VOTE] = &gpll0_vote, ··· 2732 2691 [GCC_VENUS0_VCODEC0_CLK] = &gcc_venus0_vcodec0_clk.clkr, 2733 2692 }; 2734 2693 2694 + static struct gdsc *gcc_msm8916_gdscs[] = { 2695 + [VENUS_GDSC] = &venus_gdsc, 2696 + [MDSS_GDSC] = &mdss_gdsc, 2697 + [JPEG_GDSC] = &jpeg_gdsc, 2698 + [VFE_GDSC] = &vfe_gdsc, 2699 + [OXILI_GDSC] = &oxili_gdsc, 2700 + }; 2701 + 2735 2702 static const struct qcom_reset_map gcc_msm8916_resets[] = { 2736 2703 [GCC_BLSP1_BCR] = { 0x01000 }, 2737 2704 [GCC_BLSP1_QUP1_BCR] = { 0x02000 }, ··· 2847 2798 .num_clks = ARRAY_SIZE(gcc_msm8916_clocks), 2848 2799 .resets = gcc_msm8916_resets, 2849 2800 .num_resets = ARRAY_SIZE(gcc_msm8916_resets), 2801 + .gdscs = gcc_msm8916_gdscs, 2802 + .num_gdscs = ARRAY_SIZE(gcc_msm8916_gdscs), 2850 2803 }; 2851 2804 2852 2805 static const struct of_device_id gcc_msm8916_match_table[] = {
+8
include/dt-bindings/clock/qcom,gcc-msm8916.h
··· 153 153 #define GCC_VENUS0_AXI_CLK 136 154 154 #define GCC_VENUS0_VCODEC0_CLK 137 155 155 156 + /* Indexes for GDSCs */ 157 + #define BIMC_GDSC 0 158 + #define VENUS_GDSC 1 159 + #define MDSS_GDSC 2 160 + #define JPEG_GDSC 3 161 + #define VFE_GDSC 4 162 + #define OXILI_GDSC 5 163 + 156 164 #endif