static DEFINE_CLK_PCOM(vfe_axi_clk,	VFE_AXI_CLK,	0);
static DEFINE_CLK_PCOM(vfe_clk,		VFE_CLK,	0);
static DEFINE_CLK_PCOM(vfe_mdc_clk,	VFE_MDC_CLK,	0);

static DEFINE_CLK_VOTER(ebi_acpu_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_grp_3d_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_grp_2d_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_lcdc_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_mddi_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_tv_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_usb_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_vfe_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_adm_clk,	&ebi1_clk.c);

static struct clk_lookup msm_clocks_7x01a[] = {
	CLK_LOOKUP("core_clk",		adm_clk.c,	"msm_dmov"),
	CLK_LOOKUP("adsp_clk",		adsp_clk.c,	NULL),
	CLK_LOOKUP("ebi1_clk",		ebi1_clk.c,	NULL),
	CLK_LOOKUP("ebi2_clk",		ebi2_clk.c,	NULL),
	CLK_LOOKUP("ecodec_clk",	ecodec_clk.c,	NULL),
	CLK_LOOKUP("emdh_clk",		emdh_clk.c,	NULL),
	CLK_LOOKUP("gp_clk",		gp_clk.c,		NULL),
	CLK_LOOKUP("core_clk",		grp_3d_clk.c,	"kgsl-3d0.0"),
	CLK_LOOKUP("core_clk",		i2c_clk.c,	"msm_i2c.0"),
	CLK_LOOKUP("icodec_rx_clk",	icodec_rx_clk.c,	NULL),
	CLK_LOOKUP("icodec_tx_clk",	icodec_tx_clk.c,	NULL),
	CLK_LOOKUP("mem_clk",		imem_clk.c,	NULL),
	CLK_LOOKUP("mdc_clk",		mdc_clk.c,	NULL),
	CLK_LOOKUP("mddi_clk",		pmdh_clk.c,	NULL),
	CLK_LOOKUP("mdp_clk",		mdp_clk.c,	NULL),
	CLK_LOOKUP("pbus_clk",		pbus_clk.c,	NULL),
예제 #2
0
static DEFINE_CLK_PCOM(sdc4_clk,	SDC4_CLK, OFF);
static DEFINE_CLK_PCOM(sdc4_p_clk,	SDC4_P_CLK, OFF);
static DEFINE_CLK_PCOM(uart1_clk,	UART1_CLK, OFF);
static DEFINE_CLK_PCOM(uart2_clk,	UART2_CLK, 0);
static DEFINE_CLK_PCOM(uart3_clk,	UART3_CLK, OFF);
static DEFINE_CLK_PCOM(uart1dm_clk,	UART1DM_CLK, OFF);
static DEFINE_CLK_PCOM(uart2dm_clk,	UART2DM_CLK, 0);
static DEFINE_CLK_PCOM(usb_hs_clk,	USB_HS_CLK, OFF);
static DEFINE_CLK_PCOM(usb_hs_p_clk,	USB_HS_P_CLK, OFF);
static DEFINE_CLK_PCOM(usb_otg_clk,	USB_OTG_CLK, 0);
static DEFINE_CLK_PCOM(vdc_clk,		VDC_CLK, OFF | CLK_MIN);
static DEFINE_CLK_PCOM(vfe_clk,		VFE_CLK, OFF);
static DEFINE_CLK_PCOM(vfe_mdc_clk,	VFE_MDC_CLK, OFF);

struct clk_lookup msm_clocks_7x25[] = {
	CLK_LOOKUP("core_clk",		adm_clk.c,	"msm_dmov"),
	CLK_LOOKUP("adsp_clk",		adsp_clk.c,	NULL),
	CLK_LOOKUP("ebi1_clk",		ebi1_clk.c,	NULL),
	CLK_LOOKUP("ebi2_clk",		ebi2_clk.c,	NULL),
	CLK_LOOKUP("ecodec_clk",	ecodec_clk.c,	NULL),
	CLK_LOOKUP("core_clk",		gp_clk.c,		NULL),
	CLK_LOOKUP("core_clk",		i2c_clk.c,	"msm_i2c.0"),
	CLK_LOOKUP("icodec_rx_clk",	icodec_rx_clk.c,	NULL),
	CLK_LOOKUP("icodec_tx_clk",	icodec_tx_clk.c,	NULL),
	CLK_LOOKUP("mem_clk",		imem_clk.c,	NULL),
	CLK_LOOKUP("mdc_clk",		mdc_clk.c,	NULL),
	CLK_LOOKUP("mddi_clk",		pmdh_clk.c,	NULL),
	CLK_LOOKUP("mdp_clk",		mdp_clk.c,	NULL),
	CLK_LOOKUP("mdp_lcdc_pclk_clk", mdp_lcdc_pclk_clk.c, NULL),
	CLK_LOOKUP("mdp_lcdc_pad_pclk_clk", mdp_lcdc_pad_pclk_clk.c, NULL),
	CLK_LOOKUP("mdp_vsync_clk",	mdp_vsync_clk.c,  NULL),
예제 #3
0
};

static struct branch_clk gcc_sdcc1_cdccal_sleep_clk = {
	.cbcr_reg    = SDCC1_CDCCAL_SLEEP_CBCR,
	.has_sibling = 1,

    .c = {
        .dbg_name = "gcc_sdcc1_cdccal_sleep_clk",
        .ops      = &clk_ops_branch,
    },
};

/* Clock lookup table */
static struct clk_lookup msm_clocks_8084[] =
{
	CLK_LOOKUP("sdc1_iface_clk", gcc_sdcc1_ahb_clk.c),
	CLK_LOOKUP("sdc1_core_clk",  gcc_sdcc1_apps_clk.c),

	CLK_LOOKUP("sdc2_iface_clk", gcc_sdcc2_ahb_clk.c),
	CLK_LOOKUP("sdc2_core_clk",  gcc_sdcc2_apps_clk.c),

	CLK_LOOKUP("gcc_sdcc1_cdccal_sleep_clk", gcc_sdcc1_cdccal_sleep_clk.c),
	CLK_LOOKUP("gcc_sdcc1_cdccal_ff_clk",    gcc_sdcc1_cdccal_ff_clk.c),

	CLK_LOOKUP("uart7_iface_clk", gcc_blsp2_ahb_clk.c),
	CLK_LOOKUP("uart7_core_clk",  gcc_blsp2_uart2_apps_clk.c),

	CLK_LOOKUP("usb_iface_clk",  gcc_usb_hs_ahb_clk.c),
	CLK_LOOKUP("usb_core_clk",   gcc_usb_hs_system_clk.c),

	CLK_LOOKUP("ce2_ahb_clk",  gcc_ce2_ahb_clk.c),
static DEFINE_CLK_PCOM(vfe_axi_clk,	VFE_AXI_CLK,	0);
static DEFINE_CLK_PCOM(vfe_clk,		VFE_CLK,	0);
static DEFINE_CLK_PCOM(vfe_mdc_clk,	VFE_MDC_CLK,	0);

static DEFINE_CLK_VOTER(ebi_acpu_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_grp_3d_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_grp_2d_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_lcdc_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_mddi_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_tv_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_usb_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_vfe_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_adm_clk,	&ebi1_clk.c, 0);

static struct clk_lookup msm_clocks_7x01a[] = {
	CLK_LOOKUP("core_clk",		adm_clk.c,	"msm_dmov"),
	CLK_LOOKUP("adsp_clk",		adsp_clk.c,	NULL),
	CLK_LOOKUP("ebi1_clk",		ebi1_clk.c,	NULL),
	CLK_LOOKUP("ebi2_clk",		ebi2_clk.c,	NULL),
	CLK_LOOKUP("ecodec_clk",	ecodec_clk.c,	NULL),
	CLK_LOOKUP("core_clk",		emdh_clk.c,	"msm_mddi.1"),
	CLK_LOOKUP("core_clk",		gp_clk.c,	""),
	CLK_LOOKUP("core_clk",		grp_3d_clk.c,	"kgsl-3d0.0"),
	CLK_LOOKUP("core_clk",		i2c_clk.c,	"msm_i2c.0"),
	CLK_LOOKUP("icodec_rx_clk",	icodec_rx_clk.c,	NULL),
	CLK_LOOKUP("icodec_tx_clk",	icodec_tx_clk.c,	NULL),
	CLK_LOOKUP("mem_clk",		imem_clk.c,	NULL),
	CLK_LOOKUP("mdc_clk",		mdc_clk.c,	NULL),
	CLK_LOOKUP("core_clk",		pmdh_clk.c,	"mddi.0"),
	CLK_LOOKUP("core_clk",		mdp_clk.c,	"mdp.0"),
	CLK_LOOKUP("pbus_clk",		pbus_clk.c,	NULL),
예제 #5
0
static struct vote_clk gcc_ce1_axi_clk = {
	.cbcr_reg     = (uint32_t *) GCC_CRYPTO_AXI_CBCR,
	.vote_reg     = (uint32_t *) APCS_CLOCK_BRANCH_ENA_VOTE,
	.en_mask      = BIT(1),

	.c = {
		.dbg_name = "gcc_ce1_axi_clk",
		.ops      = &clk_ops_vote,
	},
};

/* Clock lookup table */
static struct clk_lookup msm_clocks_8952[] =
{
	CLK_LOOKUP("sdc1_iface_clk", gcc_sdcc1_ahb_clk.c),
	CLK_LOOKUP("sdc1_core_clk",  gcc_sdcc1_apps_clk.c),

	CLK_LOOKUP("sdc2_iface_clk", gcc_sdcc2_ahb_clk.c),
	CLK_LOOKUP("sdc2_core_clk",  gcc_sdcc2_apps_clk.c),

	CLK_LOOKUP("uart2_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart2_core_clk",  gcc_blsp1_uart2_apps_clk.c),

	CLK_LOOKUP("usb_iface_clk",  gcc_usb_hs_ahb_clk.c),
	CLK_LOOKUP("usb_core_clk",   gcc_usb_hs_system_clk.c),


	CLK_LOOKUP("ce1_ahb_clk",  gcc_ce1_ahb_clk.c),
	CLK_LOOKUP("ce1_axi_clk",  gcc_ce1_axi_clk.c),
	CLK_LOOKUP("ce1_core_clk", gcc_ce1_clk.c),
예제 #6
0
#include <linux/kernel.h>
#include <linux/err.h>
#include <linux/spinlock.h>
#include <linux/string.h>
#include <linux/module.h>
#include <linux/clk.h>
#include <linux/clkdev.h>
#include <linux/of.h>
#include <mach/clk-provider.h>
#include "clock.h"
#include "clock-local2.h"
#include "mmi-clock.h"

static struct clk_lookup mmi_msm_clocks_8226[] = {
	/* Camera Clocks */
	CLK_LOOKUP("cam_src_clk", mclk1_clk_src.c, "32.qcom,camera"),
	CLK_LOOKUP("cam_clk", camss_mclk1_clk.c, "32.qcom,camera"),
	CLK_LOOKUP("cam_src_clk", mclk1_clk_src.c, "6e.qcom,camera"),
	CLK_LOOKUP("cam_clk", camss_mclk1_clk.c, "6e.qcom,camera"),
};

#ifdef CONFIG_OF
static void of_override_clk(u32 *enable)
{
	struct device_node *chosen_node = NULL;

	chosen_node = of_find_node_by_name(NULL, "chosen");
	if (!chosen_node) {
		pr_err("%s: get chosen node failed\n", __func__);
		return;
	}
예제 #7
0
static struct clk_ops measure_clk_ops = {
	.set_parent = measure_clk_set_parent,
	.get_rate = measure_clk_get_rate,
};

static struct measure_clk measure_clk = {
	.c = {
		.dbg_name = "measure_clk",
		.ops = &measure_clk_ops,
	},
	.multiplier = 1,
};

static struct clk_lookup msm_clocks_8960[] = {
	CLK_LOOKUP("gsbi1_uart_clk",	gsbi1_uart_clk.c),
	CLK_LOOKUP("gsbi2_uart_clk",	gsbi2_uart_clk.c),
	CLK_LOOKUP("gsbi3_uart_clk",	gsbi3_uart_clk.c),
	CLK_LOOKUP("gsbi4_uart_clk",	gsbi4_uart_clk.c),
	CLK_LOOKUP("gsbi5_uart_clk",	gsbi5_uart_clk.c),
	CLK_LOOKUP("gsbi6_uart_clk",	gsbi6_uart_clk.c),
	CLK_LOOKUP("gsbi7_uart_clk",	gsbi7_uart_clk.c),
	CLK_LOOKUP("gsbi8_uart_clk",	gsbi8_uart_clk.c),
	CLK_LOOKUP("gsbi9_uart_clk",	gsbi9_uart_clk.c),
	CLK_LOOKUP("gsbi10_uart_clk",	gsbi10_uart_clk.c),
	CLK_LOOKUP("gsbi11_uart_clk",	gsbi11_uart_clk.c),
	CLK_LOOKUP("gsbi12_uart_clk",	gsbi12_uart_clk.c),
	CLK_LOOKUP("gsbi1_qup_clk",		gsbi1_qup_clk.c),
	CLK_LOOKUP("gsbi2_qup_clk",		gsbi2_qup_clk.c),
	CLK_LOOKUP("gsbi3_qup_clk",		gsbi3_qup_clk.c),
	CLK_LOOKUP("gsbi4_qup_clk",		gsbi4_qup_clk.c),
예제 #8
0
static struct vote_clk gcc_ce1_axi_clk = {
	.cbcr_reg = (uint32_t *) GCC_CE1_AXI_CBCR,
	.vote_reg = (uint32_t *) APCS_CLOCK_BRANCH_ENA_VOTE,
	.en_mask = BIT(4),

	.c = {
		.dbg_name = "gcc_ce1_axi_clk",
		.ops = &clk_ops_vote,
	},
};


/* Clock lookup table */
static struct clk_lookup msm_clocks_fsm9010[] =
{
	CLK_LOOKUP("sdc1_iface_clk", gcc_sdcc1_ahb_clk.c),
	CLK_LOOKUP("sdc1_core_clk",  gcc_sdcc1_apps_clk.c),

	CLK_LOOKUP("uart0_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart0_core_clk",  gcc_blsp1_uart0_apps_clk.c),
	CLK_LOOKUP("uart1_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart1_core_clk",  gcc_blsp1_uart1_apps_clk.c),
	CLK_LOOKUP("uart2_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart2_core_clk",  gcc_blsp1_uart2_apps_clk.c),
	CLK_LOOKUP("uart3_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart3_core_clk",  gcc_blsp1_uart3_apps_clk.c),

	CLK_LOOKUP("usb_iface_clk",  gcc_usb_hs_ahb_clk.c),
	CLK_LOOKUP("usb_core_clk",   gcc_usb_hs_system_clk.c),

	CLK_LOOKUP("usb2b_phy_sleep_clk", gcc_usb2b_phy_sleep_clk.c),
예제 #9
0
static DEFINE_CLK_PCOM(usb_phy_clk,	USB_PHY_CLK,	0);
static DEFINE_CLK_PCOM(vdc_clk,		VDC_CLK,	OFF | CLK_MIN);
static DEFINE_CLK_PCOM(vfe_axi_clk,	VFE_AXI_CLK,	OFF);
static DEFINE_CLK_PCOM(vfe_clk,		VFE_CLK,	OFF);
static DEFINE_CLK_PCOM(vfe_mdc_clk,	VFE_MDC_CLK,	OFF);

static DEFINE_CLK_VOTER(ebi_acpu_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_kgsl_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_lcdc_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_mddi_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_tv_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_usb_clk,	&ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_vfe_clk,	&ebi1_clk.c);

struct clk_lookup msm_clocks_7x01a[] = {
	CLK_LOOKUP("adm_clk",		adm_clk.c,	NULL),
	CLK_LOOKUP("adsp_clk",		adsp_clk.c,	NULL),
	CLK_LOOKUP("ebi1_clk",		ebi1_clk.c,	NULL),
	CLK_LOOKUP("ebi2_clk",		ebi2_clk.c,	NULL),
	CLK_LOOKUP("ecodec_clk",	ecodec_clk.c,	NULL),
	CLK_LOOKUP("emdh_clk",		emdh_clk.c,	NULL),
	CLK_LOOKUP("gp_clk",		gp_clk.c,		NULL),
	CLK_LOOKUP("grp_clk",		grp_3d_clk.c,	NULL),
	CLK_LOOKUP("i2c_clk",		i2c_clk.c,	"msm_i2c.0"),
	CLK_LOOKUP("icodec_rx_clk",	icodec_rx_clk.c,	NULL),
	CLK_LOOKUP("icodec_tx_clk",	icodec_tx_clk.c,	NULL),
	CLK_LOOKUP("imem_clk",		imem_clk.c,	NULL),
	CLK_LOOKUP("mdc_clk",		mdc_clk.c,	NULL),
	CLK_LOOKUP("mddi_clk",		pmdh_clk.c,	NULL),
	CLK_LOOKUP("mdp_clk",		mdp_clk.c,	NULL),
	CLK_LOOKUP("pbus_clk",		pbus_clk.c,	NULL),
예제 #10
0
static struct branch_clk mdss_vsync_clk = {
	.cbcr_reg    = (uint32_t *)MDSS_VSYNC_CBCR,
	.parent      = &vsync_clk_src.c,
	.has_sibling = 0,

	.c           = {
		.dbg_name = "mdss_vsync_clk",
		.ops      = &clk_ops_branch,
	},
};

/* Clock lookup table */
static struct clk_lookup msm_clocks_8226[] =
{
	CLK_LOOKUP("sdc1_iface_clk", gcc_sdcc1_ahb_clk.c),
	CLK_LOOKUP("sdc1_core_clk",  gcc_sdcc1_apps_clk.c),

	CLK_LOOKUP("sdc2_iface_clk", gcc_sdcc2_ahb_clk.c),
	CLK_LOOKUP("sdc2_core_clk",  gcc_sdcc2_apps_clk.c),

	CLK_LOOKUP("uart3_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart3_core_clk",  gcc_blsp1_uart3_apps_clk.c),

	CLK_LOOKUP("usb_iface_clk",  gcc_usb_hs_ahb_clk.c),
	CLK_LOOKUP("usb_core_clk",   gcc_usb_hs_system_clk.c),

	CLK_LOOKUP("ce1_ahb_clk",  gcc_ce1_ahb_clk.c),
	CLK_LOOKUP("ce1_axi_clk",  gcc_ce1_axi_clk.c),
	CLK_LOOKUP("ce1_core_clk", gcc_ce1_clk.c),
	CLK_LOOKUP("ce1_src_clk",  ce1_clk_src.c),
static DEFINE_CLK_PCOM(vfe_axi_clk,	VFE_AXI_CLK,	0);
static DEFINE_CLK_PCOM(vfe_clk,		VFE_CLK,	0);
static DEFINE_CLK_PCOM(vfe_mdc_clk,	VFE_MDC_CLK,	0);

static DEFINE_CLK_VOTER(ebi_acpu_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_grp_3d_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_grp_2d_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_lcdc_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_mddi_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_tv_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_usb_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_vfe_clk,	&ebi1_clk.c, 0);
static DEFINE_CLK_VOTER(ebi_adm_clk,	&ebi1_clk.c, 0);

static struct clk_lookup msm_clocks_7x01a[] = {
	CLK_LOOKUP("core_clk",		adm_clk.c,	"msm_dmov"),
	CLK_LOOKUP("adsp_clk",		adsp_clk.c,	NULL),
	CLK_LOOKUP("ebi1_clk",		ebi1_clk.c,	NULL),
	CLK_LOOKUP("ebi2_clk",		ebi2_clk.c,	NULL),
	CLK_LOOKUP("ecodec_clk",	ecodec_clk.c,	NULL),
	CLK_LOOKUP("core_clk",		emdh_clk.c,	"msm_mddi.1"),
	CLK_LOOKUP("core_clk",		gp_clk.c,	""),
	CLK_LOOKUP("core_clk",		grp_3d_clk.c,	"kgsl-3d0.0"),
	CLK_LOOKUP("core_clk",		i2c_clk.c,	"msm_i2c.0"),
	CLK_LOOKUP("icodec_rx_clk",	icodec_rx_clk.c,	NULL),
	CLK_LOOKUP("icodec_tx_clk",	icodec_tx_clk.c,	NULL),
	CLK_LOOKUP("mem_clk",		imem_clk.c,	NULL),
	CLK_LOOKUP("mdc_clk",		mdc_clk.c,	NULL),
	CLK_LOOKUP("core_clk",		pmdh_clk.c,	"mddi.0"),
	CLK_LOOKUP("core_clk",		mdp_clk.c,	"mdp.0"),
	CLK_LOOKUP("pbus_clk",		pbus_clk.c,	NULL),
	},
};

static struct branch_clk gcc_blsp1_qup2_i2c_apps_clk = {
	.cbcr_reg = GCC_BLSP1_QUP2_APPS_CBCR,
	.parent   = &gcc_blsp1_qup2_i2c_apps_clk_src.c,

	.c = {
		.dbg_name = "gcc_blsp1_qup2_i2c_apps_clk",
		.ops      = &clk_ops_branch,
	},
};
/* Clock lookup table */
static struct clk_lookup msm_clocks_8916[] =
{
	CLK_LOOKUP("sdc1_iface_clk", gcc_sdcc1_ahb_clk.c),
	CLK_LOOKUP("sdc1_core_clk",  gcc_sdcc1_apps_clk.c),

	CLK_LOOKUP("sdc2_iface_clk", gcc_sdcc2_ahb_clk.c),
	CLK_LOOKUP("sdc2_core_clk",  gcc_sdcc2_apps_clk.c),

	CLK_LOOKUP("uart2_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart2_core_clk",  gcc_blsp1_uart2_apps_clk.c),

	CLK_LOOKUP("usb_iface_clk",  gcc_usb_hs_ahb_clk.c),
	CLK_LOOKUP("usb_core_clk",   gcc_usb_hs_system_clk.c),

	CLK_LOOKUP("mdp_ahb_clk",          mdp_ahb_clk.c),
	CLK_LOOKUP("mdss_esc0_clk",        mdss_esc0_clk.c),
	CLK_LOOKUP("mdss_esc1_clk",        mdss_esc1_clk.c),
	CLK_LOOKUP("mdss_axi_clk",         mdss_axi_clk.c),
예제 #13
0
/* MTU:S */

/* MTU0 */
static DEF_PER_CLK(p6_mtu0_clk, &p6_pclk6, &timclk);

/* MTU1 */
static DEF_PER_CLK(p6_mtu1_clk, &p6_pclk7, &timclk);

/*
 * TODO: Ensure names match with devices and then remove unnecessary entries
 * when all drivers use the clk API.
 */

static struct clk_lookup u8500_clocks[] = {
	CLK_LOOKUP(soc0_pll, NULL, "soc0_pll"),
	CLK_LOOKUP(soc1_pll, NULL, "soc1_pll"),
	CLK_LOOKUP(ddr_pll, NULL, "ddr_pll"),
	CLK_LOOKUP(ulp38m4, NULL, "ulp38m4"),
	CLK_LOOKUP(sysclk, NULL, "sysclk"),
	CLK_LOOKUP(rtc32k, NULL, "clk32k"),
	CLK_LOOKUP(rtc32k, "rtc-pl031", NULL),
	CLK_LOOKUP(sysclk, "ab8500-usb.0", "sysclk"),
	CLK_LOOKUP(sysclk, "ab8500-codec.0", "sysclk"),
	CLK_LOOKUP(ab_ulpclk, "ab8500-codec.0", "ulpclk"),
	CLK_LOOKUP(ab_intclk, "ab8500-codec.0", "intclk"),
	CLK_LOOKUP(audioclk, "ab8500-codec.0", "audioclk"),
	CLK_LOOKUP(ab_intclk, "ab8500-pwm.1", NULL),

	CLK_LOOKUP(clkout0, "pri-cam", NULL),
	CLK_LOOKUP(clkout1, "3-005c", NULL),
예제 #14
0
static struct branch_clk gcc_usb30_sleep_clk = {
	.cbcr_reg    = (uint32_t *) USB30_SLEEP_CBCR,
	.has_sibling = 1,

	.c = {
		.dbg_name = "usb30_sleep_clk",
		.ops      = &clk_ops_branch,
	},
};



static struct clk_lookup msm_clocks_9640[] =
{
	CLK_LOOKUP("sdc1_iface_clk", gcc_sdcc1_ahb_clk.c),
	CLK_LOOKUP("sdc1_core_clk",  gcc_sdcc1_apps_clk.c),

	CLK_LOOKUP("uart3_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart3_core_clk",  gcc_blsp1_uart3_apps_clk.c),

	CLK_LOOKUP("usb30_iface_clk",  gcc_sys_noc_usb30_axi_clk.c),
	CLK_LOOKUP("usb30_master_clk", gcc_usb30_master_clk.c),
	CLK_LOOKUP("usb30_pipe_clk",   gcc_usb30_pipe_clk.c),
	CLK_LOOKUP("usb30_pipe_clk_mdmcalifornium",   gcc_usb30_pipe_clk_mdmcalifornium.c),
	CLK_LOOKUP("usb30_aux_clk",    gcc_usb30_aux_clk.c),

	CLK_LOOKUP("usb2b_phy_sleep_clk", gcc_usb2a_phy_sleep_clk.c),
	CLK_LOOKUP("usb30_phy_reset",     gcc_usb30_phy_reset.c),

	CLK_LOOKUP("usb30_mock_utmi_clk", gcc_usb30_mock_utmi_clk.c),
static struct branch_clk gcc_sdcc2_ahb_clk = {

	.cbcr_reg     = (uint32_t *) SDCC2_AHB_CBCR,
	.has_sibling  = 1,

	.c = {
		.dbg_name = "gcc_sdcc2_ahb_clk",
		.ops      = &clk_ops_branch,
	},
};


/* Clock lookup table */
static struct clk_lookup msm_clocks_8092[] =
{
	CLK_LOOKUP("sdc1_iface_clk", gcc_sdcc1_ahb_clk.c),
	CLK_LOOKUP("sdc1_core_clk",  gcc_sdcc1_apps_clk.c),

	CLK_LOOKUP("sdc2_iface_clk", gcc_sdcc2_ahb_clk.c),
	CLK_LOOKUP("sdc2_core_clk",  gcc_sdcc2_apps_clk.c),

	CLK_LOOKUP("uart4_iface_clk", gcc_blsp1_ahb_clk.c),
	CLK_LOOKUP("uart4_core_clk",  gcc_blsp1_uart5_apps_clk.c),

	CLK_LOOKUP("usb_iface_clk",  gcc_usb_hs_ahb_clk.c),
	CLK_LOOKUP("usb_core_clk",   gcc_usb_hs_system_clk.c),

};

void platform_clock_init(void)
{
예제 #16
0

struct branch_clk gcc_blsp2_qup5_i2c_apps_clk = {
    .cbcr_reg = BLSP2_QUP5_I2C_APPS_CBCR,
    .parent   = &cxo_clk_src.c,

    .c = {
        .dbg_name = "gcc_blsp2_qup5_i2c_apps_clk",
        .ops      = &clk_ops_branch,
    },
};

/* Clock lookup table */
static struct clk_lookup msm_clocks_fsm9900[] =
{
    CLK_LOOKUP("sdc1_iface_clk", gcc_sdcc1_ahb_clk.c),
    CLK_LOOKUP("sdc1_core_clk",  gcc_sdcc1_apps_clk.c),

    CLK_LOOKUP("sdc2_iface_clk", gcc_sdcc2_ahb_clk.c),
    CLK_LOOKUP("sdc2_core_clk",  gcc_sdcc2_apps_clk.c),

    CLK_LOOKUP("uart0_iface_clk", gcc_blsp1_ahb_clk.c),
    CLK_LOOKUP("uart0_core_clk",  gcc_blsp1_uart0_apps_clk.c),
    CLK_LOOKUP("uart1_iface_clk", gcc_blsp1_ahb_clk.c),
    CLK_LOOKUP("uart1_core_clk",  gcc_blsp1_uart1_apps_clk.c),
    CLK_LOOKUP("uart2_iface_clk", gcc_blsp1_ahb_clk.c),
    CLK_LOOKUP("uart2_core_clk",  gcc_blsp1_uart2_apps_clk.c),
    CLK_LOOKUP("uart3_iface_clk", gcc_blsp1_ahb_clk.c),
    CLK_LOOKUP("uart3_core_clk",  gcc_blsp1_uart3_apps_clk.c),
    CLK_LOOKUP("uart4_iface_clk", gcc_blsp1_ahb_clk.c),
    CLK_LOOKUP("uart4_core_clk",  gcc_blsp1_uart4_apps_clk.c),