diff options
-rw-r--r-- | include/asm-x86/geode.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/asm-x86/geode.h b/include/asm-x86/geode.h index b1bdf6378563..3978200f126c 100644 --- a/include/asm-x86/geode.h +++ b/include/asm-x86/geode.h | |||
@@ -103,6 +103,14 @@ extern int geode_get_dev_base(unsigned int dev); | |||
103 | #define PM_AWKD 0x50 | 103 | #define PM_AWKD 0x50 |
104 | #define PM_SSC 0x54 | 104 | #define PM_SSC 0x54 |
105 | 105 | ||
106 | /* VSA2 magic values */ | ||
107 | |||
108 | #define VSA_VRC_INDEX 0xAC1C | ||
109 | #define VSA_VRC_DATA 0xAC1E | ||
110 | #define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */ | ||
111 | #define VSA_VR_SIGNATURE 0x0003 | ||
112 | #define VSA_SIG 0x4132 /* signature is ascii 'VSA2' */ | ||
113 | |||
106 | /* GPIO */ | 114 | /* GPIO */ |
107 | 115 | ||
108 | #define GPIO_OUTPUT_VAL 0x00 | 116 | #define GPIO_OUTPUT_VAL 0x00 |
@@ -174,6 +182,17 @@ static inline int is_geode(void) | |||
174 | return (is_geode_gx() || is_geode_lx()); | 182 | return (is_geode_gx() || is_geode_lx()); |
175 | } | 183 | } |
176 | 184 | ||
185 | /* | ||
186 | * The VSA has virtual registers that we can query for a signature. | ||
187 | */ | ||
188 | static inline int geode_has_vsa2(void) | ||
189 | { | ||
190 | outw(VSA_VR_UNLOCK, VSA_VRC_INDEX); | ||
191 | outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX); | ||
192 | |||
193 | return (inw(VSA_VRC_DATA) == VSA_SIG); | ||
194 | } | ||
195 | |||
177 | /* MFGPTs */ | 196 | /* MFGPTs */ |
178 | 197 | ||
179 | #define MFGPT_MAX_TIMERS 8 | 198 | #define MFGPT_MAX_TIMERS 8 |