aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/geode.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-x86/geode.h')
-rw-r--r--include/asm-x86/geode.h38
1 files changed, 35 insertions, 3 deletions
diff --git a/include/asm-x86/geode.h b/include/asm-x86/geode.h
index 9870cc1f2f8f..7154dc4de951 100644
--- a/include/asm-x86/geode.h
+++ b/include/asm-x86/geode.h
@@ -30,7 +30,13 @@ extern int geode_get_dev_base(unsigned int dev);
30 30
31/* MSRS */ 31/* MSRS */
32 32
33#define GX_GLCP_SYS_RSTPLL 0x4C000014 33#define MSR_GLIU_P2D_RO0 0x10000029
34
35#define MSR_LX_GLD_MSR_CONFIG 0x48002001
36#define MSR_LX_MSR_PADSEL 0x48002011 /* NOT 0x48000011; the data
37 * sheet has the wrong value */
38#define MSR_GLCP_SYS_RSTPLL 0x4C000014
39#define MSR_GLCP_DOTPLL 0x4C000015
34 40
35#define MSR_LBAR_SMB 0x5140000B 41#define MSR_LBAR_SMB 0x5140000B
36#define MSR_LBAR_GPIO 0x5140000C 42#define MSR_LBAR_GPIO 0x5140000C
@@ -45,8 +51,14 @@ extern int geode_get_dev_base(unsigned int dev);
45#define MSR_PIC_ZSEL_LOW 0x51400022 51#define MSR_PIC_ZSEL_LOW 0x51400022
46#define MSR_PIC_ZSEL_HIGH 0x51400023 52#define MSR_PIC_ZSEL_HIGH 0x51400023
47 53
48#define MFGPT_IRQ_MSR 0x51400028 54#define MSR_MFGPT_IRQ 0x51400028
49#define MFGPT_NR_MSR 0x51400029 55#define MSR_MFGPT_NR 0x51400029
56#define MSR_MFGPT_SETUP 0x5140002B
57
58#define MSR_LX_SPARE_MSR 0x80000011 /* DC-specific */
59
60#define MSR_GX_GLD_MSR_CONFIG 0xC0002001
61#define MSR_GX_MSR_PADSEL 0xC0002011
50 62
51/* Resource Sizes */ 63/* Resource Sizes */
52 64
@@ -93,6 +105,15 @@ extern int geode_get_dev_base(unsigned int dev);
93#define PM_AWKD 0x50 105#define PM_AWKD 0x50
94#define PM_SSC 0x54 106#define PM_SSC 0x54
95 107
108/* VSA2 magic values */
109
110#define VSA_VRC_INDEX 0xAC1C
111#define VSA_VRC_DATA 0xAC1E
112#define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */
113#define VSA_VR_SIGNATURE 0x0003
114#define VSA_VR_MEM_SIZE 0x0200
115#define VSA_SIG 0x4132 /* signature is ascii 'VSA2' */
116
96/* GPIO */ 117/* GPIO */
97 118
98#define GPIO_OUTPUT_VAL 0x00 119#define GPIO_OUTPUT_VAL 0x00
@@ -164,6 +185,17 @@ static inline int is_geode(void)
164 return (is_geode_gx() || is_geode_lx()); 185 return (is_geode_gx() || is_geode_lx());
165} 186}
166 187
188/*
189 * The VSA has virtual registers that we can query for a signature.
190 */
191static inline int geode_has_vsa2(void)
192{
193 outw(VSA_VR_UNLOCK, VSA_VRC_INDEX);
194 outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX);
195
196 return (inw(VSA_VRC_DATA) == VSA_SIG);
197}
198
167/* MFGPTs */ 199/* MFGPTs */
168 200
169#define MFGPT_MAX_TIMERS 8 201#define MFGPT_MAX_TIMERS 8