summaryrefslogtreecommitdiff
path: root/drivers/clk/msm
diff options
context:
space:
mode:
authorDeepak Katragadda <dkatraga@codeaurora.org>2016-05-03 11:53:02 -0700
committerJeevan Shriram <jshriram@codeaurora.org>2016-05-10 13:20:08 -0700
commitc42d0bb4ffb40ede918484e4510fa75b05424058 (patch)
tree74a79d717cd07b236ddfb4f3be1e99be5d216502 /drivers/clk/msm
parent8516d6c280090c4579f72101c89e262b3dda5722 (diff)
clk: msm: clock-gcc-cobalt: Add new hw_ctl_clk type UFS clocks
Add new UFS clocks to support enabling/disabling the hardware dynamic gating for their corresponding branch clocks. CRs-Fixed: 1012355 Change-Id: I4836ad8a775b0ec0375e37d27fcbe380e661a7b2 Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Diffstat (limited to 'drivers/clk/msm')
-rw-r--r--drivers/clk/msm/clock-gcc-cobalt.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/drivers/clk/msm/clock-gcc-cobalt.c b/drivers/clk/msm/clock-gcc-cobalt.c
index 615faecc6379..7c17ef357165 100644
--- a/drivers/clk/msm/clock-gcc-cobalt.c
+++ b/drivers/clk/msm/clock-gcc-cobalt.c
@@ -1996,6 +1996,17 @@ static struct branch_clk gcc_ufs_axi_clk = {
},
};
+static struct hw_ctl_clk gcc_ufs_axi_hw_ctl_clk = {
+ .cbcr_reg = GCC_UFS_AXI_CBCR,
+ .base = &virt_base,
+ .c = {
+ .dbg_name = "gcc_ufs_axi_hw_ctl_clk",
+ .parent = &gcc_ufs_axi_clk.c,
+ .ops = &clk_ops_branch_hw_ctl,
+ CLK_INIT(gcc_ufs_axi_hw_ctl_clk.c),
+ },
+};
+
static struct branch_clk gcc_ufs_ice_core_clk = {
.cbcr_reg = GCC_UFS_ICE_CORE_CBCR,
.has_sibling = 0,
@@ -2008,6 +2019,17 @@ static struct branch_clk gcc_ufs_ice_core_clk = {
},
};
+static struct hw_ctl_clk gcc_ufs_ice_core_hw_ctl_clk = {
+ .cbcr_reg = GCC_UFS_ICE_CORE_CBCR,
+ .base = &virt_base,
+ .c = {
+ .dbg_name = "gcc_ufs_ice_core_hw_ctl_clk",
+ .parent = &gcc_ufs_ice_core_clk.c,
+ .ops = &clk_ops_branch_hw_ctl,
+ CLK_INIT(gcc_ufs_ice_core_hw_ctl_clk.c),
+ },
+};
+
static struct branch_clk gcc_ufs_phy_aux_clk = {
.cbcr_reg = GCC_UFS_PHY_AUX_CBCR,
.has_sibling = 0,
@@ -2020,6 +2042,17 @@ static struct branch_clk gcc_ufs_phy_aux_clk = {
},
};
+static struct hw_ctl_clk gcc_ufs_phy_aux_hw_ctl_clk = {
+ .cbcr_reg = GCC_UFS_PHY_AUX_CBCR,
+ .base = &virt_base,
+ .c = {
+ .dbg_name = "gcc_ufs_phy_aux_hw_ctl_clk",
+ .parent = &gcc_ufs_phy_aux_clk.c,
+ .ops = &clk_ops_branch_hw_ctl,
+ CLK_INIT(gcc_ufs_phy_aux_hw_ctl_clk.c),
+ },
+};
+
static struct gate_clk gcc_ufs_rx_symbol_0_clk = {
.en_reg = GCC_UFS_RX_SYMBOL_0_CBCR,
.en_mask = BIT(0),
@@ -2068,6 +2101,17 @@ static struct branch_clk gcc_ufs_unipro_core_clk = {
},
};
+static struct hw_ctl_clk gcc_ufs_unipro_core_hw_ctl_clk = {
+ .cbcr_reg = GCC_UFS_UNIPRO_CORE_CBCR,
+ .base = &virt_base,
+ .c = {
+ .dbg_name = "gcc_ufs_unipro_core_hw_ctl_clk",
+ .parent = &gcc_ufs_unipro_core_clk.c,
+ .ops = &clk_ops_branch_hw_ctl,
+ CLK_INIT(gcc_ufs_unipro_core_hw_ctl_clk.c),
+ },
+};
+
static struct branch_clk gcc_usb30_master_clk = {
.cbcr_reg = GCC_USB30_MASTER_CBCR,
.bcr_reg = GCC_USB_30_BCR,
@@ -2642,12 +2686,16 @@ static struct clk_lookup msm_clocks_gcc_cobalt[] = {
CLK_LIST(gcc_tsif_ref_clk),
CLK_LIST(gcc_ufs_ahb_clk),
CLK_LIST(gcc_ufs_axi_clk),
+ CLK_LIST(gcc_ufs_axi_hw_ctl_clk),
CLK_LIST(gcc_ufs_ice_core_clk),
+ CLK_LIST(gcc_ufs_ice_core_hw_ctl_clk),
CLK_LIST(gcc_ufs_phy_aux_clk),
+ CLK_LIST(gcc_ufs_phy_aux_hw_ctl_clk),
CLK_LIST(gcc_ufs_rx_symbol_0_clk),
CLK_LIST(gcc_ufs_rx_symbol_1_clk),
CLK_LIST(gcc_ufs_tx_symbol_0_clk),
CLK_LIST(gcc_ufs_unipro_core_clk),
+ CLK_LIST(gcc_ufs_unipro_core_hw_ctl_clk),
CLK_LIST(gcc_usb30_master_clk),
CLK_LIST(gcc_usb30_mock_utmi_clk),
CLK_LIST(gcc_usb30_sleep_clk),