clk: msm: mdss: add support for dsi pll on msmcobalt
Add support to program the DSI PLL on msmcobalt which is needed to drive the DSI byte and pixel clocks. CRs-Fixed: 1000576 Change-Id: Ic11a3747a0e008e1f71df91a1a79d33242d2a2a4 Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
This commit is contained in:
parent
e1cbb2f68d
commit
cffac32b87
7 changed files with 1380 additions and 4 deletions
|
@ -13,7 +13,8 @@ Required properties:
|
|||
"qcom,mdss_dsi_pll_8992", "qcom,mdss_hdmi_pll_8992",
|
||||
"qcom,mdss_dsi_pll_8996", "qcom,mdss_hdmi_pll_8996",
|
||||
"qcom,mdss_hdmi_pll_8996_v2", "qcom,mdss_dsi_pll_8996_v2",
|
||||
"qcom,mdss_hdmi_pll_8996_v3", "qcom,mdss_hdmi_pll_8996_v3_1p8"
|
||||
"qcom,mdss_hdmi_pll_8996_v3", "qcom,mdss_hdmi_pll_8996_v3_1p8",
|
||||
"qcom,mdss_dsi_pll_cobalt"
|
||||
- cell-index: Specifies the controller used
|
||||
- reg: offset and length of the register set for the device.
|
||||
- reg-names : names to refer to register sets related to this device
|
||||
|
|
|
@ -2,4 +2,5 @@ obj-$(CONFIG_MSM_MDSS_PLL) += mdss-pll-util.o
|
|||
obj-$(CONFIG_MSM_MDSS_PLL) += mdss-pll.o
|
||||
obj-$(CONFIG_MSM_MDSS_PLL) += mdss-dsi-pll-8996.o
|
||||
obj-$(CONFIG_MSM_MDSS_PLL) += mdss-dsi-pll-8996-util.o
|
||||
obj-$(CONFIG_MSM_MDSS_PLL) += mdss-dsi-pll-cobalt.o
|
||||
obj-$(CONFIG_MSM_MDSS_PLL) += mdss-hdmi-pll-8996.o
|
||||
|
|
1344
drivers/clk/msm/mdss/mdss-dsi-pll-cobalt.c
Normal file
1344
drivers/clk/msm/mdss/mdss-dsi-pll-cobalt.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -65,6 +65,8 @@ int dsi_pll_clock_register_lpm(struct platform_device *pdev,
|
|||
struct mdss_pll_resources *pll_res);
|
||||
int dsi_pll_clock_register_8996(struct platform_device *pdev,
|
||||
struct mdss_pll_resources *pll_res);
|
||||
int dsi_pll_clock_register_cobalt(struct platform_device *pdev,
|
||||
struct mdss_pll_resources *pll_res);
|
||||
|
||||
int set_byte_mux_sel(struct mux_clk *clk, int sel);
|
||||
int get_byte_mux_sel(struct mux_clk *clk);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -134,6 +134,8 @@ static int mdss_pll_resource_parse(struct platform_device *pdev,
|
|||
pll_res->pll_interface_type = MDSS_DSI_PLL_8996;
|
||||
pll_res->target_id = MDSS_PLL_TARGET_8996;
|
||||
pll_res->revision = 2;
|
||||
} else if (!strcmp(compatible_stream, "qcom,mdss_dsi_pll_cobalt")) {
|
||||
pll_res->pll_interface_type = MDSS_DSI_PLL_COBALT;
|
||||
} else if (!strcmp(compatible_stream, "qcom,mdss_hdmi_pll_8996")) {
|
||||
pll_res->pll_interface_type = MDSS_HDMI_PLL_8996;
|
||||
} else if (!strcmp(compatible_stream, "qcom,mdss_hdmi_pll_8996_v2")) {
|
||||
|
@ -169,6 +171,9 @@ static int mdss_pll_clock_register(struct platform_device *pdev,
|
|||
case MDSS_DSI_PLL_8996:
|
||||
rc = dsi_pll_clock_register_8996(pdev, pll_res);
|
||||
break;
|
||||
case MDSS_DSI_PLL_COBALT:
|
||||
rc = dsi_pll_clock_register_cobalt(pdev, pll_res);
|
||||
break;
|
||||
case MDSS_HDMI_PLL_8996:
|
||||
rc = hdmi_8996_v1_pll_clock_register(pdev, pll_res);
|
||||
break;
|
||||
|
@ -379,6 +384,7 @@ static int mdss_pll_remove(struct platform_device *pdev)
|
|||
static const struct of_device_id mdss_pll_dt_match[] = {
|
||||
{.compatible = "qcom,mdss_dsi_pll_8996"},
|
||||
{.compatible = "qcom,mdss_dsi_pll_8996_v2"},
|
||||
{.compatible = "qcom,mdss_dsi_pll_cobalt"},
|
||||
{.compatible = "qcom,mdss_hdmi_pll_8996"},
|
||||
{.compatible = "qcom,mdss_hdmi_pll_8996_v2"},
|
||||
{.compatible = "qcom,mdss_hdmi_pll_8996_v3"},
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -30,6 +30,7 @@
|
|||
|
||||
enum {
|
||||
MDSS_DSI_PLL_8996,
|
||||
MDSS_DSI_PLL_COBALT,
|
||||
MDSS_HDMI_PLL_8996,
|
||||
MDSS_HDMI_PLL_8996_V2,
|
||||
MDSS_HDMI_PLL_8996_V3,
|
||||
|
|
|
@ -424,6 +424,27 @@
|
|||
#define clk_mmss_vmem_maxi_clk 0xb6067889
|
||||
#define clk_mmss_debug_mux 0xe646ffda
|
||||
|
||||
/* external multimedia clocks */
|
||||
#define clk_dsi0pll_byteclk_mux 0xecf2c434
|
||||
#define clk_dsi0pll_byteclk_src 0x6f6f740f
|
||||
#define clk_dsi0pll_pclk_mux 0x6c9da335
|
||||
#define clk_dsi0pll_pclk_src 0x5efd85d4
|
||||
#define clk_dsi0pll_pclk_src_mux 0x84b14663
|
||||
#define clk_dsi0pll_post_bit_div 0xf46dcf27
|
||||
#define clk_dsi0pll_post_vco_div 0x8ee956ff
|
||||
#define clk_dsi0pll_bitclk_src 0x36c3c437
|
||||
#define clk_dsi0pll_vco_clk 0x15940d40
|
||||
|
||||
#define clk_dsi1pll_byteclk_mux 0x14e2f38f
|
||||
#define clk_dsi1pll_byteclk_src 0x4b65c298
|
||||
#define clk_dsi1pll_pclk_mux 0x4c0518b5
|
||||
#define clk_dsi1pll_pclk_src 0xeddcd80e
|
||||
#define clk_dsi1pll_pclk_src_mux 0x3651feb3
|
||||
#define clk_dsi1pll_post_bit_div 0x712f0260
|
||||
#define clk_dsi1pll_post_vco_div 0x623e04de
|
||||
#define clk_dsi1pll_bitclk_src 0x13ab045b
|
||||
#define clk_dsi1pll_vco_clk 0x99797b50
|
||||
|
||||
/* clock_gpu controlled clocks*/
|
||||
#define clk_gpucc_xo 0xc4e1a890
|
||||
#define clk_gpucc_gpll0 0x0db0e37f
|
||||
|
|
Loading…
Add table
Reference in a new issue