blob: 0b615cc59a9fa578840a10eef96cc10e87ee4ec6 [file] [log] [blame]
/* Copyright (c) 2013, 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
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/ctype.h>
#include <linux/io.h>
#include <linux/spinlock.h>
#include <linux/delay.h>
#include <linux/clk.h>
#include <linux/iopoll.h>
#include <linux/regulator/consumer.h>
#include <mach/rpm-regulator-smd.h>
#include <mach/socinfo.h>
#include <mach/rpm-smd.h>
#include "clock-local2.h"
#include "clock-pll.h"
#include "clock-rpm.h"
#include "clock-voter.h"
#include "clock.h"
static struct clk_lookup msm_clocks_dummy[] = {
CLK_DUMMY("core_clk", BLSP1_UART_CLK, "f991f000.serial", OFF),
CLK_DUMMY("iface_clk", BLSP1_UART_CLK, "f991f000.serial", OFF),
CLK_DUMMY("core_clk", SPI_CLK, "f9928000.spi", OFF),
CLK_DUMMY("iface_clk", SPI_P_CLK, "f9928000.spi", OFF),
CLK_DUMMY("bus_clk", cnoc_msmbus_clk.c, "msm_config_noc", OFF),
CLK_DUMMY("bus_a_clk", cnoc_msmbus_a_clk.c, "msm_config_noc", OFF),
CLK_DUMMY("bus_clk", snoc_msmbus_clk.c, "msm_sys_noc", OFF),
CLK_DUMMY("bus_a_clk", snoc_msmbus_a_clk.c, "msm_sys_noc", OFF),
CLK_DUMMY("bus_clk", pnoc_msmbus_clk.c, "msm_periph_noc", OFF),
CLK_DUMMY("bus_a_clk", pnoc_msmbus_a_clk.c, "msm_periph_noc", OFF),
CLK_DUMMY("mem_clk", bimc_msmbus_clk.c, "msm_bimc", OFF),
CLK_DUMMY("mem_a_clk", bimc_msmbus_a_clk.c, "msm_bimc", OFF),
CLK_DUMMY("mem_clk", bimc_acpu_a_clk.c, "", OFF),
CLK_DUMMY("dfab_clk", DFAB_CLK, "msm_sps", OFF),
CLK_DUMMY("dma_bam_pclk", DMA_BAM_P_CLK, "msm_sps", OFF),
CLK_DUMMY("clktype", gcc_imem_axi_clk , "drivername", OFF),
CLK_DUMMY("clktype", gcc_imem_cfg_ahb_clk , "drivername", OFF),
CLK_DUMMY("clktype", gcc_mss_cfg_ahb_clk , "drivername", OFF),
CLK_DUMMY("clktype", gcc_mss_q6_bimc_axi_clk , "drivername", OFF),
CLK_DUMMY("mem_clk", gcc_usb30_master_clk , "drivername", OFF),
CLK_DUMMY("sleep_clk", gcc_usb30_sleep_clk , "drivername", OFF),
CLK_DUMMY("utmi_clk", gcc_usb30_mock_utmi_clk , "drivername", OFF),
CLK_DUMMY("iface_clk", gcc_usb_hsic_ahb_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_usb_hsic_system_clk , "drivername", OFF),
CLK_DUMMY("phyclk", gcc_usb_hsic_clk , "drivername", OFF),
CLK_DUMMY("cal_clk", gcc_usb_hsic_io_cal_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_usb_hs_system_clk , "drivername", OFF),
CLK_DUMMY("iface_clk", gcc_usb_hs_ahb_clk , "drivername", OFF),
CLK_DUMMY("sleep_a_clk", gcc_usb2a_phy_sleep_clk , "drivername", OFF),
CLK_DUMMY("sleep_b_clk", gcc_usb2b_phy_sleep_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_sdcc2_apps_clk , "drivername", OFF),
CLK_DUMMY("iface_clk", gcc_sdcc2_ahb_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_sdcc3_apps_clk , "drivername", OFF),
CLK_DUMMY("iface_clk", gcc_sdcc3_ahb_clk , "drivername", OFF),
CLK_DUMMY("core_clk", sdcc3_apps_clk_src , "drivername", OFF),
CLK_DUMMY("iface_clk", gcc_blsp1_ahb_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup1_spi_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup1_i2c_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_uart1_apps_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup2_spi_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup2_i2c_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_uart2_apps_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup3_spi_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup3_i2c_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_uart3_apps_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup4_spi_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup4_i2c_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_uart4_apps_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup5_spi_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup5_i2c_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_uart5_apps_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup6_spi_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_qup6_i2c_apps_clk, "drivername", OFF),
CLK_DUMMY("core_clk", gcc_blsp1_uart6_apps_clk , "drivername", OFF),
CLK_DUMMY("core_clk", blsp1_uart6_apps_clk_src , "drivername", OFF),
CLK_DUMMY("iface_clk", gcc_pdm_ahb_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_pdm2_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_prng_ahb_clk , "drivername", OFF),
CLK_DUMMY("dma_bam_pclk", gcc_bam_dma_ahb_clk , "drivername", OFF),
CLK_DUMMY("mem_clk", gcc_boot_rom_ahb_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_ce1_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_ce1_axi_clk , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_ce1_ahb_clk , "drivername", OFF),
CLK_DUMMY("core_clk_src", ce1_clk_src , "drivername", OFF),
CLK_DUMMY("bus_clk", gcc_lpass_q6_axi_clk , "drivername", OFF),
CLK_DUMMY("clktype", pcie_pipe_clk , "drivername", OFF),
CLK_DUMMY("clktype", gcc_gp1_clk , "drivername", OFF),
CLK_DUMMY("clktype", gp1_clk_src , "drivername", OFF),
CLK_DUMMY("clktype", gcc_gp2_clk , "drivername", OFF),
CLK_DUMMY("clktype", gp2_clk_src , "drivername", OFF),
CLK_DUMMY("clktype", gcc_gp3_clk , "drivername", OFF),
CLK_DUMMY("clktype", gp3_clk_src , "drivername", OFF),
CLK_DUMMY("core_clk", gcc_ipa_clk , "drivername", OFF),
CLK_DUMMY("iface_clk", gcc_ipa_cnoc_clk , "drivername", OFF),
CLK_DUMMY("inactivity_clk", gcc_ipa_sleep_clk , "drivername", OFF),
CLK_DUMMY("core_clk_src", ipa_clk_src , "drivername", OFF),
CLK_DUMMY("clktype", gcc_dcs_clk , "drivername", OFF),
CLK_DUMMY("clktype", dcs_clk_src , "drivername", OFF),
CLK_DUMMY("clktype", gcc_pcie_cfg_ahb_clk , "drivername", OFF),
CLK_DUMMY("clktype", gcc_pcie_pipe_clk , "drivername", OFF),
CLK_DUMMY("clktype", gcc_pcie_axi_clk , "drivername", OFF),
CLK_DUMMY("clktype", gcc_pcie_sleep_clk , "drivername", OFF),
CLK_DUMMY("clktype", gcc_pcie_axi_mstr_clk , "drivername", OFF),
CLK_DUMMY("clktype", pcie_pipe_clk_src , "drivername", OFF),
CLK_DUMMY("clktype", pcie_aux_clk_src , "drivername", OFF),
};
struct clock_init_data msmkrypton_clock_init_data __initdata = {
.table = msm_clocks_dummy,
.size = ARRAY_SIZE(msm_clocks_dummy),
};