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),
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),
}; 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),
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),
#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; }
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),
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),
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),
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 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),
/* 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),
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) {
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),