linux/arch/arm/mach-msm/clock-7x01a.c
<<
>>
Prefs
   1/* arch/arm/mach-msm/clock-7x01a.c
   2 *
   3 * Clock tables for MSM7X01A
   4 *
   5 * Copyright (C) 2007 Google, Inc.
   6 * Copyright (c) 2007 QUALCOMM Incorporated
   7 *
   8 * This software is licensed under the terms of the GNU General Public
   9 * License version 2, as published by the Free Software Foundation, and
  10 * may be copied, distributed, and modified under those terms.
  11 *
  12 * This program is distributed in the hope that it will be useful,
  13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15 * GNU General Public License for more details.
  16 *
  17 */
  18
  19#include <linux/kernel.h>
  20#include <linux/platform_device.h>
  21
  22#include "clock.h"
  23#include "devices.h"
  24
  25/* clock IDs used by the modem processor */
  26
  27#define ACPU_CLK        0   /* Applications processor clock */
  28#define ADM_CLK         1   /* Applications data mover clock */
  29#define ADSP_CLK        2   /* ADSP clock */
  30#define EBI1_CLK        3   /* External bus interface 1 clock */
  31#define EBI2_CLK        4   /* External bus interface 2 clock */
  32#define ECODEC_CLK      5   /* External CODEC clock */
  33#define EMDH_CLK        6   /* External MDDI host clock */
  34#define GP_CLK          7   /* General purpose clock */
  35#define GRP_CLK         8   /* Graphics clock */
  36#define I2C_CLK         9   /* I2C clock */
  37#define ICODEC_RX_CLK   10  /* Internal CODEX RX clock */
  38#define ICODEC_TX_CLK   11  /* Internal CODEX TX clock */
  39#define IMEM_CLK        12  /* Internal graphics memory clock */
  40#define MDC_CLK         13  /* MDDI client clock */
  41#define MDP_CLK         14  /* Mobile display processor clock */
  42#define PBUS_CLK        15  /* Peripheral bus clock */
  43#define PCM_CLK         16  /* PCM clock */
  44#define PMDH_CLK        17  /* Primary MDDI host clock */
  45#define SDAC_CLK        18  /* Stereo DAC clock */
  46#define SDC1_CLK        19  /* Secure Digital Card clocks */
  47#define SDC1_PCLK       20
  48#define SDC2_CLK        21
  49#define SDC2_PCLK       22
  50#define SDC3_CLK        23
  51#define SDC3_PCLK       24
  52#define SDC4_CLK        25
  53#define SDC4_PCLK       26
  54#define TSIF_CLK        27  /* Transport Stream Interface clocks */
  55#define TSIF_REF_CLK    28
  56#define TV_DAC_CLK      29  /* TV clocks */
  57#define TV_ENC_CLK      30
  58#define UART1_CLK       31  /* UART clocks */
  59#define UART2_CLK       32
  60#define UART3_CLK       33
  61#define UART1DM_CLK     34
  62#define UART2DM_CLK     35
  63#define USB_HS_CLK      36  /* High speed USB core clock */
  64#define USB_HS_PCLK     37  /* High speed USB pbus clock */
  65#define USB_OTG_CLK     38  /* Full speed USB clock */
  66#define VDC_CLK         39  /* Video controller clock */
  67#define VFE_CLK         40  /* Camera / Video Front End clock */
  68#define VFE_MDC_CLK     41  /* VFE MDDI client clock */
  69
  70#define NR_CLKS         42
  71
  72#define CLOCK(clk_name, clk_id, clk_dev, clk_flags) {   \
  73        .name = clk_name, \
  74        .id = clk_id, \
  75        .flags = clk_flags, \
  76        .dev = clk_dev, \
  77        }
  78
  79#define OFF CLKFLAG_AUTO_OFF
  80#define MINMAX CLKFLAG_USE_MIN_MAX_TO_SET
  81
  82struct clk msm_clocks[] = {
  83        CLOCK("adm_clk",        ADM_CLK,        NULL, 0),
  84        CLOCK("adsp_clk",       ADSP_CLK,       NULL, 0),
  85        CLOCK("ebi1_clk",       EBI1_CLK,       NULL, 0),
  86        CLOCK("ebi2_clk",       EBI2_CLK,       NULL, 0),
  87        CLOCK("ecodec_clk",     ECODEC_CLK,     NULL, 0),
  88        CLOCK("emdh_clk",       EMDH_CLK,       NULL, OFF),
  89        CLOCK("gp_clk",         GP_CLK,         NULL, 0),
  90        CLOCK("grp_clk",        GRP_CLK,        NULL, OFF),
  91        CLOCK("i2c_clk",        I2C_CLK,        &msm_device_i2c.dev, 0),
  92        CLOCK("icodec_rx_clk",  ICODEC_RX_CLK,  NULL, 0),
  93        CLOCK("icodec_tx_clk",  ICODEC_TX_CLK,  NULL, 0),
  94        CLOCK("imem_clk",       IMEM_CLK,       NULL, OFF),
  95        CLOCK("mdc_clk",        MDC_CLK,        NULL, 0),
  96        CLOCK("mdp_clk",        MDP_CLK,        NULL, OFF),
  97        CLOCK("pbus_clk",       PBUS_CLK,       NULL, 0),
  98        CLOCK("pcm_clk",        PCM_CLK,        NULL, 0),
  99        CLOCK("pmdh_clk",       PMDH_CLK,       NULL, OFF | MINMAX),
 100        CLOCK("sdac_clk",       SDAC_CLK,       NULL, OFF),
 101        CLOCK("sdc_clk",        SDC1_CLK,       &msm_device_sdc1.dev, OFF),
 102        CLOCK("sdc_pclk",       SDC1_PCLK,      &msm_device_sdc1.dev, OFF),
 103        CLOCK("sdc_clk",        SDC2_CLK,       &msm_device_sdc2.dev, OFF),
 104        CLOCK("sdc_pclk",       SDC2_PCLK,      &msm_device_sdc2.dev, OFF),
 105        CLOCK("sdc_clk",        SDC3_CLK,       &msm_device_sdc3.dev, OFF),
 106        CLOCK("sdc_pclk",       SDC3_PCLK,      &msm_device_sdc3.dev, OFF),
 107        CLOCK("sdc_clk",        SDC4_CLK,       &msm_device_sdc4.dev, OFF),
 108        CLOCK("sdc_pclk",       SDC4_PCLK,      &msm_device_sdc4.dev, OFF),
 109        CLOCK("tsif_clk",       TSIF_CLK,       NULL, 0),
 110        CLOCK("tsif_ref_clk",   TSIF_REF_CLK,   NULL, 0),
 111        CLOCK("tv_dac_clk",     TV_DAC_CLK,     NULL, 0),
 112        CLOCK("tv_enc_clk",     TV_ENC_CLK,     NULL, 0),
 113        CLOCK("uart_clk",       UART1_CLK,      &msm_device_uart1.dev, OFF),
 114        CLOCK("uart_clk",       UART2_CLK,      &msm_device_uart2.dev, 0),
 115        CLOCK("uart_clk",       UART3_CLK,      &msm_device_uart3.dev, OFF),
 116        CLOCK("uart1dm_clk",    UART1DM_CLK,    NULL, OFF),
 117        CLOCK("uart2dm_clk",    UART2DM_CLK,    NULL, 0),
 118        CLOCK("usb_hs_clk",     USB_HS_CLK,     &msm_device_hsusb.dev, OFF),
 119        CLOCK("usb_hs_pclk",    USB_HS_PCLK,    &msm_device_hsusb.dev, OFF),
 120        CLOCK("usb_otg_clk",    USB_OTG_CLK,    NULL, 0),
 121        CLOCK("vdc_clk",        VDC_CLK,        NULL, OFF | MINMAX),
 122        CLOCK("vfe_clk",        VFE_CLK,        NULL, OFF),
 123        CLOCK("vfe_mdc_clk",    VFE_MDC_CLK,    NULL, OFF),
 124};
 125
 126unsigned msm_num_clocks = ARRAY_SIZE(msm_clocks);
 127