clk: msm: clock: Add support for the mdss byte_intf_div clocks
There is a configurable divider between the byte_clk_src RCGs and the mmss_mdss_byte_intf_clk clocks. Add support to program it. CRs-Fixed: 1003173 Change-Id: I976c2b9e9739b603f6cfb10d11c7b1d64cb577c5 Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
This commit is contained in:
parent
96fc91d166
commit
35bee08718
3 changed files with 56 additions and 4 deletions
|
@ -1746,13 +1746,36 @@ static struct branch_clk mmss_mdss_byte0_clk = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct div_clk mmss_mdss_byte0_intf_div_clk = {
|
||||||
|
.offset = MMSS_MDSS_BYTE0_INTF_DIV,
|
||||||
|
.mask = 0x3,
|
||||||
|
.shift = 0,
|
||||||
|
.data = {
|
||||||
|
.min_div = 1,
|
||||||
|
.max_div = 4,
|
||||||
|
},
|
||||||
|
.base = &virt_base,
|
||||||
|
/*
|
||||||
|
* NOTE: Op does not work for div-3. Current assumption is that div-3
|
||||||
|
* is not a recommended setting for this divider.
|
||||||
|
*/
|
||||||
|
.ops = &postdiv_reg_ops,
|
||||||
|
.c = {
|
||||||
|
.dbg_name = "mmss_mdss_byte0_intf_div_clk",
|
||||||
|
.parent = &byte0_clk_src.c,
|
||||||
|
.ops = &clk_ops_slave_div,
|
||||||
|
.flags = CLKFLAG_NO_RATE_CACHE,
|
||||||
|
CLK_INIT(mmss_mdss_byte0_intf_div_clk.c),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
static struct branch_clk mmss_mdss_byte0_intf_clk = {
|
static struct branch_clk mmss_mdss_byte0_intf_clk = {
|
||||||
.cbcr_reg = MMSS_MDSS_BYTE0_INTF_CBCR,
|
.cbcr_reg = MMSS_MDSS_BYTE0_INTF_CBCR,
|
||||||
.has_sibling = 1,
|
.has_sibling = 0,
|
||||||
.base = &virt_base,
|
.base = &virt_base,
|
||||||
.c = {
|
.c = {
|
||||||
.dbg_name = "mmss_mdss_byte0_intf_clk",
|
.dbg_name = "mmss_mdss_byte0_intf_clk",
|
||||||
.parent = &byte0_clk_src.c,
|
.parent = &mmss_mdss_byte0_intf_div_clk.c,
|
||||||
.ops = &clk_ops_branch,
|
.ops = &clk_ops_branch,
|
||||||
CLK_INIT(mmss_mdss_byte0_intf_clk.c),
|
CLK_INIT(mmss_mdss_byte0_intf_clk.c),
|
||||||
},
|
},
|
||||||
|
@ -1770,13 +1793,36 @@ static struct branch_clk mmss_mdss_byte1_clk = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct div_clk mmss_mdss_byte1_intf_div_clk = {
|
||||||
|
.offset = MMSS_MDSS_BYTE1_INTF_DIV,
|
||||||
|
.mask = 0x3,
|
||||||
|
.shift = 0,
|
||||||
|
.data = {
|
||||||
|
.min_div = 1,
|
||||||
|
.max_div = 4,
|
||||||
|
},
|
||||||
|
.base = &virt_base,
|
||||||
|
/*
|
||||||
|
* NOTE: Op does not work for div-3. Current assumption is that div-3
|
||||||
|
* is not a recommended setting for this divider.
|
||||||
|
*/
|
||||||
|
.ops = &postdiv_reg_ops,
|
||||||
|
.c = {
|
||||||
|
.dbg_name = "mmss_mdss_byte1_intf_div_clk",
|
||||||
|
.parent = &byte1_clk_src.c,
|
||||||
|
.ops = &clk_ops_slave_div,
|
||||||
|
.flags = CLKFLAG_NO_RATE_CACHE,
|
||||||
|
CLK_INIT(mmss_mdss_byte1_intf_div_clk.c),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
static struct branch_clk mmss_mdss_byte1_intf_clk = {
|
static struct branch_clk mmss_mdss_byte1_intf_clk = {
|
||||||
.cbcr_reg = MMSS_MDSS_BYTE1_INTF_CBCR,
|
.cbcr_reg = MMSS_MDSS_BYTE1_INTF_CBCR,
|
||||||
.has_sibling = 1,
|
.has_sibling = 0,
|
||||||
.base = &virt_base,
|
.base = &virt_base,
|
||||||
.c = {
|
.c = {
|
||||||
.dbg_name = "mmss_mdss_byte1_intf_clk",
|
.dbg_name = "mmss_mdss_byte1_intf_clk",
|
||||||
.parent = &byte1_clk_src.c,
|
.parent = &mmss_mdss_byte1_intf_div_clk.c,
|
||||||
.ops = &clk_ops_branch,
|
.ops = &clk_ops_branch,
|
||||||
CLK_INIT(mmss_mdss_byte1_intf_clk.c),
|
CLK_INIT(mmss_mdss_byte1_intf_clk.c),
|
||||||
},
|
},
|
||||||
|
@ -2406,8 +2452,10 @@ static struct clk_lookup msm_clocks_mmss_cobalt[] = {
|
||||||
CLK_LIST(mmss_mdss_ahb_clk),
|
CLK_LIST(mmss_mdss_ahb_clk),
|
||||||
CLK_LIST(mmss_mdss_axi_clk),
|
CLK_LIST(mmss_mdss_axi_clk),
|
||||||
CLK_LIST(mmss_mdss_byte0_clk),
|
CLK_LIST(mmss_mdss_byte0_clk),
|
||||||
|
CLK_LIST(mmss_mdss_byte0_intf_div_clk),
|
||||||
CLK_LIST(mmss_mdss_byte0_intf_clk),
|
CLK_LIST(mmss_mdss_byte0_intf_clk),
|
||||||
CLK_LIST(mmss_mdss_byte1_clk),
|
CLK_LIST(mmss_mdss_byte1_clk),
|
||||||
|
CLK_LIST(mmss_mdss_byte0_intf_div_clk),
|
||||||
CLK_LIST(mmss_mdss_byte1_intf_clk),
|
CLK_LIST(mmss_mdss_byte1_intf_clk),
|
||||||
CLK_LIST(mmss_mdss_dp_aux_clk),
|
CLK_LIST(mmss_mdss_dp_aux_clk),
|
||||||
CLK_LIST(mmss_mdss_dp_gtc_clk),
|
CLK_LIST(mmss_mdss_dp_gtc_clk),
|
||||||
|
|
|
@ -398,8 +398,10 @@
|
||||||
#define clk_mmss_mdss_axi_clk 0xdf04fc1d
|
#define clk_mmss_mdss_axi_clk 0xdf04fc1d
|
||||||
#define clk_mmss_mdss_byte0_clk 0x38105d25
|
#define clk_mmss_mdss_byte0_clk 0x38105d25
|
||||||
#define clk_mmss_mdss_byte0_intf_clk 0x38e5aa79
|
#define clk_mmss_mdss_byte0_intf_clk 0x38e5aa79
|
||||||
|
#define clk_mmss_mdss_byte0_intf_div_clk 0x8604f181
|
||||||
#define clk_mmss_mdss_byte1_clk 0xe0c21354
|
#define clk_mmss_mdss_byte1_clk 0xe0c21354
|
||||||
#define clk_mmss_mdss_byte1_intf_clk 0xcf654d8e
|
#define clk_mmss_mdss_byte1_intf_clk 0xcf654d8e
|
||||||
|
#define clk_mmss_mdss_byte1_intf_div_clk 0xcdf334c5
|
||||||
#define clk_mmss_mdss_dp_aux_clk 0x23125eb6
|
#define clk_mmss_mdss_dp_aux_clk 0x23125eb6
|
||||||
#define clk_mmss_mdss_dp_gtc_clk 0xb59c151a
|
#define clk_mmss_mdss_dp_gtc_clk 0xb59c151a
|
||||||
#define clk_mmss_mdss_esc0_clk 0x5721ff83
|
#define clk_mmss_mdss_esc0_clk 0x5721ff83
|
||||||
|
|
|
@ -358,8 +358,10 @@
|
||||||
#define MMSS_MDSS_AXI_CBCR 0x02310
|
#define MMSS_MDSS_AXI_CBCR 0x02310
|
||||||
#define MMSS_MDSS_BYTE0_CBCR 0x0233C
|
#define MMSS_MDSS_BYTE0_CBCR 0x0233C
|
||||||
#define MMSS_MDSS_BYTE0_INTF_CBCR 0x02374
|
#define MMSS_MDSS_BYTE0_INTF_CBCR 0x02374
|
||||||
|
#define MMSS_MDSS_BYTE0_INTF_DIV 0x0237C
|
||||||
#define MMSS_MDSS_BYTE1_CBCR 0x02340
|
#define MMSS_MDSS_BYTE1_CBCR 0x02340
|
||||||
#define MMSS_MDSS_BYTE1_INTF_CBCR 0x02378
|
#define MMSS_MDSS_BYTE1_INTF_CBCR 0x02378
|
||||||
|
#define MMSS_MDSS_BYTE1_INTF_DIV 0x02380
|
||||||
#define MMSS_MDSS_DP_AUX_CBCR 0x02364
|
#define MMSS_MDSS_DP_AUX_CBCR 0x02364
|
||||||
#define MMSS_MDSS_DP_CRYPTO_CBCR 0x0235C
|
#define MMSS_MDSS_DP_CRYPTO_CBCR 0x0235C
|
||||||
#define MMSS_MDSS_DP_GTC_CBCR 0x02368
|
#define MMSS_MDSS_DP_GTC_CBCR 0x02368
|
||||||
|
|
Loading…
Add table
Reference in a new issue