mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
cs5535: move VSA2 checks into linux/cs5535.h
Signed-off-by: Andres Salomon <dilinger@collabora.co.uk> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: john stultz <johnstul@us.ibm.com> Cc: Chris Ball <cjb@laptop.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
2e8c12436f
commit
f060f27007
6 changed files with 36 additions and 45 deletions
|
@ -95,16 +95,6 @@ extern int geode_get_dev_base(unsigned int dev);
|
||||||
#define PM_AWKD 0x50
|
#define PM_AWKD 0x50
|
||||||
#define PM_SSC 0x54
|
#define PM_SSC 0x54
|
||||||
|
|
||||||
/* VSA2 magic values */
|
|
||||||
|
|
||||||
#define VSA_VRC_INDEX 0xAC1C
|
|
||||||
#define VSA_VRC_DATA 0xAC1E
|
|
||||||
#define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */
|
|
||||||
#define VSA_VR_SIGNATURE 0x0003
|
|
||||||
#define VSA_VR_MEM_SIZE 0x0200
|
|
||||||
#define AMD_VSA_SIG 0x4132 /* signature is ascii 'VSA2' */
|
|
||||||
#define GSW_VSA_SIG 0x534d /* General Software signature */
|
|
||||||
|
|
||||||
static inline u32 geode_gpio(unsigned int nr)
|
static inline u32 geode_gpio(unsigned int nr)
|
||||||
{
|
{
|
||||||
BUG_ON(nr > 28);
|
BUG_ON(nr > 28);
|
||||||
|
@ -148,15 +138,6 @@ static inline int is_geode(void)
|
||||||
return (is_geode_gx() || is_geode_lx());
|
return (is_geode_gx() || is_geode_lx());
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_MGEODE_LX
|
|
||||||
extern int geode_has_vsa2(void);
|
|
||||||
#else
|
|
||||||
static inline int geode_has_vsa2(void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline void geode_mfgpt_write(int timer, u16 reg, u16 value)
|
static inline void geode_mfgpt_write(int timer, u16 reg, u16 value)
|
||||||
{
|
{
|
||||||
u32 base = geode_get_dev_base(GEODE_DEV_MFGPT);
|
u32 base = geode_get_dev_base(GEODE_DEV_MFGPT);
|
||||||
|
|
|
@ -161,28 +161,6 @@ void geode_gpio_setup_event(unsigned int gpio, int pair, int pme)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(geode_gpio_setup_event);
|
EXPORT_SYMBOL_GPL(geode_gpio_setup_event);
|
||||||
|
|
||||||
int geode_has_vsa2(void)
|
|
||||||
{
|
|
||||||
static int has_vsa2 = -1;
|
|
||||||
|
|
||||||
if (has_vsa2 == -1) {
|
|
||||||
u16 val;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The VSA has virtual registers that we can query for a
|
|
||||||
* signature.
|
|
||||||
*/
|
|
||||||
outw(VSA_VR_UNLOCK, VSA_VRC_INDEX);
|
|
||||||
outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX);
|
|
||||||
|
|
||||||
val = inw(VSA_VRC_DATA);
|
|
||||||
has_vsa2 = (val == AMD_VSA_SIG || val == GSW_VSA_SIG);
|
|
||||||
}
|
|
||||||
|
|
||||||
return has_vsa2;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(geode_has_vsa2);
|
|
||||||
|
|
||||||
static int __init geode_southbridge_init(void)
|
static int __init geode_southbridge_init(void)
|
||||||
{
|
{
|
||||||
if (!is_geode())
|
if (!is_geode())
|
||||||
|
|
|
@ -212,7 +212,7 @@ static int __init olpc_init(void)
|
||||||
unsigned char *romsig;
|
unsigned char *romsig;
|
||||||
|
|
||||||
/* The ioremap check is dangerous; limit what we run it on */
|
/* The ioremap check is dangerous; limit what we run it on */
|
||||||
if (!is_geode() || geode_has_vsa2())
|
if (!is_geode() || cs5535_has_vsa2())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
spin_lock_init(&ec_lock);
|
spin_lock_init(&ec_lock);
|
||||||
|
@ -244,7 +244,7 @@ static int __init olpc_init(void)
|
||||||
(unsigned char *) &olpc_platform_info.ecver, 1);
|
(unsigned char *) &olpc_platform_info.ecver, 1);
|
||||||
|
|
||||||
/* check to see if the VSA exists */
|
/* check to see if the VSA exists */
|
||||||
if (geode_has_vsa2())
|
if (cs5535_has_vsa2())
|
||||||
olpc_platform_info.flags |= OLPC_F_VSA;
|
olpc_platform_info.flags |= OLPC_F_VSA;
|
||||||
|
|
||||||
printk(KERN_INFO "OLPC board revision %s%X (EC=%x)\n",
|
printk(KERN_INFO "OLPC board revision %s%X (EC=%x)\n",
|
||||||
|
|
|
@ -25,7 +25,7 @@ unsigned int gx_frame_buffer_size(void)
|
||||||
{
|
{
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
|
|
||||||
if (!geode_has_vsa2()) {
|
if (!cs5535_has_vsa2()) {
|
||||||
uint32_t hi, lo;
|
uint32_t hi, lo;
|
||||||
|
|
||||||
/* The number of pages is (PMAX - PMIN)+1 */
|
/* The number of pages is (PMAX - PMIN)+1 */
|
||||||
|
|
|
@ -307,7 +307,7 @@ unsigned int lx_framebuffer_size(void)
|
||||||
{
|
{
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
|
|
||||||
if (!geode_has_vsa2()) {
|
if (!cs5535_has_vsa2()) {
|
||||||
uint32_t hi, lo;
|
uint32_t hi, lo;
|
||||||
|
|
||||||
/* The number of pages is (PMAX - PMIN)+1 */
|
/* The number of pages is (PMAX - PMIN)+1 */
|
||||||
|
|
|
@ -36,6 +36,38 @@
|
||||||
#define LBAR_ACPI_SIZE 0x40
|
#define LBAR_ACPI_SIZE 0x40
|
||||||
#define LBAR_PMS_SIZE 0x80
|
#define LBAR_PMS_SIZE 0x80
|
||||||
|
|
||||||
|
/* VSA2 magic values */
|
||||||
|
#define VSA_VRC_INDEX 0xAC1C
|
||||||
|
#define VSA_VRC_DATA 0xAC1E
|
||||||
|
#define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */
|
||||||
|
#define VSA_VR_SIGNATURE 0x0003
|
||||||
|
#define VSA_VR_MEM_SIZE 0x0200
|
||||||
|
#define AMD_VSA_SIG 0x4132 /* signature is ascii 'VSA2' */
|
||||||
|
#define GSW_VSA_SIG 0x534d /* General Software signature */
|
||||||
|
|
||||||
|
#include <linux/io.h>
|
||||||
|
|
||||||
|
static inline int cs5535_has_vsa2(void)
|
||||||
|
{
|
||||||
|
static int has_vsa2 = -1;
|
||||||
|
|
||||||
|
if (has_vsa2 == -1) {
|
||||||
|
uint16_t val;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The VSA has virtual registers that we can query for a
|
||||||
|
* signature.
|
||||||
|
*/
|
||||||
|
outw(VSA_VR_UNLOCK, VSA_VRC_INDEX);
|
||||||
|
outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX);
|
||||||
|
|
||||||
|
val = inw(VSA_VRC_DATA);
|
||||||
|
has_vsa2 = (val == AMD_VSA_SIG || val == GSW_VSA_SIG);
|
||||||
|
}
|
||||||
|
|
||||||
|
return has_vsa2;
|
||||||
|
}
|
||||||
|
|
||||||
/* GPIOs */
|
/* GPIOs */
|
||||||
#define GPIO_OUTPUT_VAL 0x00
|
#define GPIO_OUTPUT_VAL 0x00
|
||||||
#define GPIO_OUTPUT_ENABLE 0x04
|
#define GPIO_OUTPUT_ENABLE 0x04
|
||||||
|
|
Loading…
Reference in a new issue