msm-2.6.38: tag AU_LINUX_ANDROID_GINGERBREAD.02.03.04.00.142 Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
70 lines
1.8 KiB
C
70 lines
1.8 KiB
C
/*
|
|
* Copyright (c) 2009, Code Aurora Forum. 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.
|
|
*/
|
|
|
|
#ifndef AVS_H
|
|
#define AVS_H
|
|
|
|
#define VOLTAGE_MIN 1000 /* mV */
|
|
#define VOLTAGE_MAX 1250
|
|
#define VOLTAGE_STEP 25
|
|
|
|
int __init avs_init(int (*set_vdd)(int), u32 freq_cnt, u32 freq_idx);
|
|
void __exit avs_exit(void);
|
|
|
|
int avs_adjust_freq(u32 freq_index, int begin);
|
|
|
|
/* Routines exported from avs_hw.S */
|
|
#ifdef CONFIG_MSM_CPU_AVS
|
|
u32 avs_test_delays(void);
|
|
#else
|
|
static inline u32 avs_test_delays(void)
|
|
{ return 0; }
|
|
#endif
|
|
|
|
#ifdef CONFIG_MSM_AVS_HW
|
|
u32 avs_reset_delays(u32 avsdscr);
|
|
u32 avs_get_avscsr(void);
|
|
u32 avs_get_avsdscr(void);
|
|
u32 avs_get_tscsr(void);
|
|
void avs_set_tscsr(u32 to_tscsr);
|
|
void avs_disable(void);
|
|
#else
|
|
static inline u32 avs_reset_delays(u32 avsdscr)
|
|
{ return 0; }
|
|
static inline u32 avs_get_avscsr(void)
|
|
{ return 0; }
|
|
static inline u32 avs_get_avsdscr(void)
|
|
{ return 0; }
|
|
static inline u32 avs_get_tscsr(void)
|
|
{ return 0; }
|
|
static inline void avs_set_tscsr(u32 to_tscsr) {}
|
|
static inline void avs_disable(void) {}
|
|
#endif
|
|
|
|
/*#define AVSDEBUG(x...) pr_info("AVS: " x);*/
|
|
#define AVSDEBUG(...)
|
|
|
|
#define AVS_DISABLE(cpu) do { \
|
|
if (get_cpu() == (cpu)) \
|
|
avs_disable(); \
|
|
put_cpu(); \
|
|
} while (0);
|
|
|
|
#define AVS_ENABLE(cpu, x) do { \
|
|
if (get_cpu() == (cpu)) \
|
|
avs_reset_delays((x)); \
|
|
put_cpu(); \
|
|
} while (0);
|
|
|
|
#endif /* AVS_H */
|