blob: 6f84d5aa8b610afc6ee34e8aa7cbdc09013e4ded [file] [log] [blame]
/* arch/arm/mach-msm/include/mach/board.h
*
* Copyright (C) 2007 Google, Inc.
* Author: Brian Swetland <swetland@google.com>
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* 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.
*
*/
#ifndef __ASM_ARCH_MSM_BOARD_H
#define __ASM_ARCH_MSM_BOARD_H
#include <linux/types.h>
/* platform device data structures */
struct msm_acpu_clock_platform_data
{
uint32_t acpu_switch_time_us;
uint32_t max_speed_delta_khz;
uint32_t vdd_switch_time_us;
unsigned long mpll_khz;
unsigned long power_collapse_khz;
unsigned long wait_for_irq_khz;
};
struct msm_camera_io_ext {
uint32_t mdcphy;
uint32_t mdcsz;
uint32_t appphy;
uint32_t appsz;
unsigned long camifpadphy;
unsigned long camifpadsz;
};
struct msm_camera_device_platform_data {
void (*camera_gpio_on) (void);
void (*camera_gpio_off)(void);
struct msm_camera_io_ext ioext;
};
struct msm_camera_legacy_device_platform_data {
int sensor_reset;
int sensor_pwd;
int vcm_pwd;
void (*config_gpio_on) (void);
void (*config_gpio_off)(void);
};
struct msm_camera_sensor_info {
const char *sensor_name;
int sensor_reset;
int sensor_pwd;
int vcm_pwd;
int mclk;
int num_flash_levels;
int (*camera_flash)(int level);
int need_suspend;
struct msm_camera_device_platform_data *pdata;
struct resource *resource;
uint8_t num_resources;
};
struct snd_endpoint {
int id;
const char *name;
};
struct msm_snd_endpoints {
struct snd_endpoint *endpoints;
unsigned num;
};
struct clk;
/* common init routines for use by arch/arm/mach-msm/board-*.c */
void __init msm_add_devices(void);
void __init msm_map_common_io(void);
void __init msm_init_irq(void);
void __init msm_clock_init(struct clk *clock_tbl, unsigned num_clocks);
void __init msm_acpu_clock_init(struct msm_acpu_clock_platform_data *);
#ifdef CONFIG_USB_MSM_72K
void msm_hsusb_set_vbus_state(int online);
#else
static inline void msm_hsusb_set_vbus_state(int online) {}
#endif
#endif