|
@@ -1083,6 +1083,30 @@ static struct clk_rcg2 apss_tcu_clk_src = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+static const struct freq_tbl ftbl_gcc_bimc_gpu_clk[] = {
|
|
|
+ F(19200000, P_XO, 1, 0, 0),
|
|
|
+ F(100000000, P_GPLL0, 8, 0, 0),
|
|
|
+ F(200000000, P_GPLL0, 4, 0, 0),
|
|
|
+ F(266500000, P_BIMC, 4, 0, 0),
|
|
|
+ F(400000000, P_GPLL0, 2, 0, 0),
|
|
|
+ F(533000000, P_BIMC, 2, 0, 0),
|
|
|
+ { }
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk_rcg2 bimc_gpu_clk_src = {
|
|
|
+ .cmd_rcgr = 0x31028,
|
|
|
+ .hid_width = 5,
|
|
|
+ .parent_map = gcc_xo_gpll0_bimc_map,
|
|
|
+ .freq_tbl = ftbl_gcc_bimc_gpu_clk,
|
|
|
+ .clkr.hw.init = &(struct clk_init_data){
|
|
|
+ .name = "bimc_gpu_clk_src",
|
|
|
+ .parent_names = gcc_xo_gpll0_bimc,
|
|
|
+ .num_parents = 3,
|
|
|
+ .flags = CLK_GET_RATE_NOCACHE,
|
|
|
+ .ops = &clk_rcg2_shared_ops,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
static const struct freq_tbl ftbl_gcc_usb_hs_system_clk[] = {
|
|
|
F(80000000, P_GPLL0, 10, 0, 0),
|
|
|
{ }
|
|
@@ -2409,6 +2433,40 @@ static struct clk_branch gcc_gtcu_ahb_clk = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+static struct clk_branch gcc_bimc_gfx_clk = {
|
|
|
+ .halt_reg = 0x31024,
|
|
|
+ .clkr = {
|
|
|
+ .enable_reg = 0x31024,
|
|
|
+ .enable_mask = BIT(0),
|
|
|
+ .hw.init = &(struct clk_init_data){
|
|
|
+ .name = "gcc_bimc_gfx_clk",
|
|
|
+ .parent_names = (const char *[]){
|
|
|
+ "bimc_gpu_clk_src",
|
|
|
+ },
|
|
|
+ .num_parents = 1,
|
|
|
+ .flags = CLK_SET_RATE_PARENT,
|
|
|
+ .ops = &clk_branch2_ops,
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk_branch gcc_bimc_gpu_clk = {
|
|
|
+ .halt_reg = 0x31040,
|
|
|
+ .clkr = {
|
|
|
+ .enable_reg = 0x31040,
|
|
|
+ .enable_mask = BIT(0),
|
|
|
+ .hw.init = &(struct clk_init_data){
|
|
|
+ .name = "gcc_bimc_gpu_clk",
|
|
|
+ .parent_names = (const char *[]){
|
|
|
+ "bimc_gpu_clk_src",
|
|
|
+ },
|
|
|
+ .num_parents = 1,
|
|
|
+ .flags = CLK_SET_RATE_PARENT,
|
|
|
+ .ops = &clk_branch2_ops,
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
static struct clk_branch gcc_jpeg_tbu_clk = {
|
|
|
.halt_reg = 0x12034,
|
|
|
.clkr = {
|
|
@@ -2778,6 +2836,9 @@ static struct clk_regmap *gcc_msm8916_clocks[] = {
|
|
|
[BIMC_DDR_CLK_SRC] = &bimc_ddr_clk_src.clkr,
|
|
|
[GCC_APSS_TCU_CLK] = &gcc_apss_tcu_clk.clkr,
|
|
|
[GCC_GFX_TCU_CLK] = &gcc_gfx_tcu_clk.clkr,
|
|
|
+ [BIMC_GPU_CLK_SRC] = &bimc_gpu_clk_src.clkr,
|
|
|
+ [GCC_BIMC_GFX_CLK] = &gcc_bimc_gfx_clk.clkr,
|
|
|
+ [GCC_BIMC_GPU_CLK] = &gcc_bimc_gpu_clk.clkr,
|
|
|
};
|
|
|
|
|
|
static struct gdsc *gcc_msm8916_gdscs[] = {
|