0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #define SM501_SYS_CONFIG (0x000000)
0012
0013
0014 #define SM501_SYSTEM_CONTROL (0x000000)
0015
0016 #define SM501_SYSCTRL_PANEL_TRISTATE (1<<0)
0017 #define SM501_SYSCTRL_MEM_TRISTATE (1<<1)
0018 #define SM501_SYSCTRL_CRT_TRISTATE (1<<2)
0019
0020 #define SM501_SYSCTRL_PCI_SLAVE_BURST_MASK (3<<4)
0021 #define SM501_SYSCTRL_PCI_SLAVE_BURST_1 (0<<4)
0022 #define SM501_SYSCTRL_PCI_SLAVE_BURST_2 (1<<4)
0023 #define SM501_SYSCTRL_PCI_SLAVE_BURST_4 (2<<4)
0024 #define SM501_SYSCTRL_PCI_SLAVE_BURST_8 (3<<4)
0025
0026 #define SM501_SYSCTRL_PCI_CLOCK_RUN_EN (1<<6)
0027 #define SM501_SYSCTRL_PCI_RETRY_DISABLE (1<<7)
0028 #define SM501_SYSCTRL_PCI_SUBSYS_LOCK (1<<11)
0029 #define SM501_SYSCTRL_PCI_BURST_READ_EN (1<<15)
0030
0031 #define SM501_SYSCTRL_2D_ENGINE_STATUS (1<<19)
0032
0033
0034
0035 #define SM501_MISC_CONTROL (0x000004)
0036
0037 #define SM501_MISC_BUS_SH (0x0)
0038 #define SM501_MISC_BUS_PCI (0x1)
0039 #define SM501_MISC_BUS_XSCALE (0x2)
0040 #define SM501_MISC_BUS_NEC (0x6)
0041 #define SM501_MISC_BUS_MASK (0x7)
0042
0043 #define SM501_MISC_VR_62MB (1<<3)
0044 #define SM501_MISC_CDR_RESET (1<<7)
0045 #define SM501_MISC_USB_LB (1<<8)
0046 #define SM501_MISC_USB_SLAVE (1<<9)
0047 #define SM501_MISC_BL_1 (1<<10)
0048 #define SM501_MISC_MC (1<<11)
0049 #define SM501_MISC_DAC_POWER (1<<12)
0050 #define SM501_MISC_IRQ_INVERT (1<<16)
0051 #define SM501_MISC_SH (1<<17)
0052
0053 #define SM501_MISC_HOLD_EMPTY (0<<18)
0054 #define SM501_MISC_HOLD_8 (1<<18)
0055 #define SM501_MISC_HOLD_16 (2<<18)
0056 #define SM501_MISC_HOLD_24 (3<<18)
0057 #define SM501_MISC_HOLD_32 (4<<18)
0058 #define SM501_MISC_HOLD_MASK (7<<18)
0059
0060 #define SM501_MISC_FREQ_12 (1<<24)
0061 #define SM501_MISC_PNL_24BIT (1<<25)
0062 #define SM501_MISC_8051_LE (1<<26)
0063
0064
0065
0066 #define SM501_GPIO31_0_CONTROL (0x000008)
0067 #define SM501_GPIO63_32_CONTROL (0x00000C)
0068 #define SM501_DRAM_CONTROL (0x000010)
0069
0070
0071 #define SM501_ARBTRTN_CONTROL (0x000014)
0072
0073
0074 #define SM501_COMMAND_LIST_STATUS (0x000024)
0075
0076
0077 #define SM501_RAW_IRQ_STATUS (0x000028)
0078 #define SM501_RAW_IRQ_CLEAR (0x000028)
0079 #define SM501_IRQ_STATUS (0x00002C)
0080 #define SM501_IRQ_MASK (0x000030)
0081 #define SM501_DEBUG_CONTROL (0x000034)
0082
0083
0084 #define SM501_POWERMODE_P2X_SRC (1<<29)
0085 #define SM501_POWERMODE_V2X_SRC (1<<20)
0086 #define SM501_POWERMODE_M_SRC (1<<12)
0087 #define SM501_POWERMODE_M1_SRC (1<<4)
0088
0089 #define SM501_CURRENT_GATE (0x000038)
0090 #define SM501_CURRENT_CLOCK (0x00003C)
0091 #define SM501_POWER_MODE_0_GATE (0x000040)
0092 #define SM501_POWER_MODE_0_CLOCK (0x000044)
0093 #define SM501_POWER_MODE_1_GATE (0x000048)
0094 #define SM501_POWER_MODE_1_CLOCK (0x00004C)
0095 #define SM501_SLEEP_MODE_GATE (0x000050)
0096 #define SM501_POWER_MODE_CONTROL (0x000054)
0097
0098
0099 #define SM501_GATE_HOST (0)
0100 #define SM501_GATE_MEMORY (1)
0101 #define SM501_GATE_DISPLAY (2)
0102 #define SM501_GATE_2D_ENGINE (3)
0103 #define SM501_GATE_CSC (4)
0104 #define SM501_GATE_ZVPORT (5)
0105 #define SM501_GATE_GPIO (6)
0106 #define SM501_GATE_UART0 (7)
0107 #define SM501_GATE_UART1 (8)
0108 #define SM501_GATE_SSP (10)
0109 #define SM501_GATE_USB_HOST (11)
0110 #define SM501_GATE_USB_GADGET (12)
0111 #define SM501_GATE_UCONTROLLER (17)
0112 #define SM501_GATE_AC97 (18)
0113
0114
0115 #define SM501_CLOCK_P2XCLK (24)
0116
0117 #define SM501_CLOCK_V2XCLK (16)
0118
0119 #define SM501_CLOCK_MCLK (8)
0120
0121 #define SM501_CLOCK_M1XCLK (0)
0122
0123
0124 #define SM501_PCI_MASTER_BASE (0x000058)
0125 #define SM501_ENDIAN_CONTROL (0x00005C)
0126 #define SM501_DEVICEID (0x000060)
0127
0128
0129 #define SM501_DEVICEID_SM501 (0x05010000)
0130 #define SM501_DEVICEID_IDMASK (0xffff0000)
0131 #define SM501_DEVICEID_REVMASK (0x000000ff)
0132
0133 #define SM501_PLLCLOCK_COUNT (0x000064)
0134 #define SM501_MISC_TIMING (0x000068)
0135 #define SM501_CURRENT_SDRAM_CLOCK (0x00006C)
0136
0137 #define SM501_PROGRAMMABLE_PLL_CONTROL (0x000074)
0138
0139
0140 #define SM501_GPIO (0x010000)
0141 #define SM501_GPIO_DATA_LOW (0x00)
0142 #define SM501_GPIO_DATA_HIGH (0x04)
0143 #define SM501_GPIO_DDR_LOW (0x08)
0144 #define SM501_GPIO_DDR_HIGH (0x0C)
0145 #define SM501_GPIO_IRQ_SETUP (0x10)
0146 #define SM501_GPIO_IRQ_STATUS (0x14)
0147 #define SM501_GPIO_IRQ_RESET (0x14)
0148
0149
0150 #define SM501_I2C (0x010040)
0151 #define SM501_I2C_BYTE_COUNT (0x00)
0152 #define SM501_I2C_CONTROL (0x01)
0153 #define SM501_I2C_STATUS (0x02)
0154 #define SM501_I2C_RESET (0x02)
0155 #define SM501_I2C_SLAVE_ADDRESS (0x03)
0156 #define SM501_I2C_DATA (0x04)
0157
0158
0159 #define SM501_SSP (0x020000)
0160
0161
0162 #define SM501_UART0 (0x030000)
0163
0164
0165 #define SM501_UART1 (0x030020)
0166
0167
0168 #define SM501_USB_HOST (0x040000)
0169
0170
0171 #define SM501_USB_GADGET (0x060000)
0172
0173
0174 #define SM501_USB_GADGET_DATA (0x070000)
0175
0176
0177 #define SM501_DC (0x080000)
0178
0179
0180 #define SM501_ADDR_FLIP (1<<31)
0181 #define SM501_ADDR_EXT (1<<27)
0182 #define SM501_ADDR_CS1 (1<<26)
0183 #define SM501_ADDR_MASK (0x3f << 26)
0184
0185 #define SM501_FIFO_MASK (0x3 << 16)
0186 #define SM501_FIFO_1 (0x0 << 16)
0187 #define SM501_FIFO_3 (0x1 << 16)
0188 #define SM501_FIFO_7 (0x2 << 16)
0189 #define SM501_FIFO_11 (0x3 << 16)
0190
0191
0192 #define SM501_OFF_DC_H_TOT (0x000)
0193 #define SM501_OFF_DC_V_TOT (0x008)
0194 #define SM501_OFF_DC_H_SYNC (0x004)
0195 #define SM501_OFF_DC_V_SYNC (0x00C)
0196
0197 #define SM501_DC_PANEL_CONTROL (0x000)
0198
0199 #define SM501_DC_PANEL_CONTROL_FPEN (1<<27)
0200 #define SM501_DC_PANEL_CONTROL_BIAS (1<<26)
0201 #define SM501_DC_PANEL_CONTROL_DATA (1<<25)
0202 #define SM501_DC_PANEL_CONTROL_VDD (1<<24)
0203 #define SM501_DC_PANEL_CONTROL_DP (1<<23)
0204
0205 #define SM501_DC_PANEL_CONTROL_TFT_888 (0<<21)
0206 #define SM501_DC_PANEL_CONTROL_TFT_333 (1<<21)
0207 #define SM501_DC_PANEL_CONTROL_TFT_444 (2<<21)
0208
0209 #define SM501_DC_PANEL_CONTROL_DE (1<<20)
0210
0211 #define SM501_DC_PANEL_CONTROL_LCD_TFT (0<<18)
0212 #define SM501_DC_PANEL_CONTROL_LCD_STN8 (1<<18)
0213 #define SM501_DC_PANEL_CONTROL_LCD_STN12 (2<<18)
0214
0215 #define SM501_DC_PANEL_CONTROL_CP (1<<14)
0216 #define SM501_DC_PANEL_CONTROL_VSP (1<<13)
0217 #define SM501_DC_PANEL_CONTROL_HSP (1<<12)
0218 #define SM501_DC_PANEL_CONTROL_CK (1<<9)
0219 #define SM501_DC_PANEL_CONTROL_TE (1<<8)
0220 #define SM501_DC_PANEL_CONTROL_VPD (1<<7)
0221 #define SM501_DC_PANEL_CONTROL_VP (1<<6)
0222 #define SM501_DC_PANEL_CONTROL_HPD (1<<5)
0223 #define SM501_DC_PANEL_CONTROL_HP (1<<4)
0224 #define SM501_DC_PANEL_CONTROL_GAMMA (1<<3)
0225 #define SM501_DC_PANEL_CONTROL_EN (1<<2)
0226
0227 #define SM501_DC_PANEL_CONTROL_8BPP (0<<0)
0228 #define SM501_DC_PANEL_CONTROL_16BPP (1<<0)
0229 #define SM501_DC_PANEL_CONTROL_32BPP (2<<0)
0230
0231
0232 #define SM501_DC_PANEL_PANNING_CONTROL (0x004)
0233 #define SM501_DC_PANEL_COLOR_KEY (0x008)
0234 #define SM501_DC_PANEL_FB_ADDR (0x00C)
0235 #define SM501_DC_PANEL_FB_OFFSET (0x010)
0236 #define SM501_DC_PANEL_FB_WIDTH (0x014)
0237 #define SM501_DC_PANEL_FB_HEIGHT (0x018)
0238 #define SM501_DC_PANEL_TL_LOC (0x01C)
0239 #define SM501_DC_PANEL_BR_LOC (0x020)
0240 #define SM501_DC_PANEL_H_TOT (0x024)
0241 #define SM501_DC_PANEL_H_SYNC (0x028)
0242 #define SM501_DC_PANEL_V_TOT (0x02C)
0243 #define SM501_DC_PANEL_V_SYNC (0x030)
0244 #define SM501_DC_PANEL_CUR_LINE (0x034)
0245
0246 #define SM501_DC_VIDEO_CONTROL (0x040)
0247 #define SM501_DC_VIDEO_FB0_ADDR (0x044)
0248 #define SM501_DC_VIDEO_FB_WIDTH (0x048)
0249 #define SM501_DC_VIDEO_FB0_LAST_ADDR (0x04C)
0250 #define SM501_DC_VIDEO_TL_LOC (0x050)
0251 #define SM501_DC_VIDEO_BR_LOC (0x054)
0252 #define SM501_DC_VIDEO_SCALE (0x058)
0253 #define SM501_DC_VIDEO_INIT_SCALE (0x05C)
0254 #define SM501_DC_VIDEO_YUV_CONSTANTS (0x060)
0255 #define SM501_DC_VIDEO_FB1_ADDR (0x064)
0256 #define SM501_DC_VIDEO_FB1_LAST_ADDR (0x068)
0257
0258 #define SM501_DC_VIDEO_ALPHA_CONTROL (0x080)
0259 #define SM501_DC_VIDEO_ALPHA_FB_ADDR (0x084)
0260 #define SM501_DC_VIDEO_ALPHA_FB_OFFSET (0x088)
0261 #define SM501_DC_VIDEO_ALPHA_FB_LAST_ADDR (0x08C)
0262 #define SM501_DC_VIDEO_ALPHA_TL_LOC (0x090)
0263 #define SM501_DC_VIDEO_ALPHA_BR_LOC (0x094)
0264 #define SM501_DC_VIDEO_ALPHA_SCALE (0x098)
0265 #define SM501_DC_VIDEO_ALPHA_INIT_SCALE (0x09C)
0266 #define SM501_DC_VIDEO_ALPHA_CHROMA_KEY (0x0A0)
0267 #define SM501_DC_VIDEO_ALPHA_COLOR_LOOKUP (0x0A4)
0268
0269 #define SM501_DC_PANEL_HWC_BASE (0x0F0)
0270 #define SM501_DC_PANEL_HWC_ADDR (0x0F0)
0271 #define SM501_DC_PANEL_HWC_LOC (0x0F4)
0272 #define SM501_DC_PANEL_HWC_COLOR_1_2 (0x0F8)
0273 #define SM501_DC_PANEL_HWC_COLOR_3 (0x0FC)
0274
0275 #define SM501_HWC_EN (1<<31)
0276
0277 #define SM501_OFF_HWC_ADDR (0x00)
0278 #define SM501_OFF_HWC_LOC (0x04)
0279 #define SM501_OFF_HWC_COLOR_1_2 (0x08)
0280 #define SM501_OFF_HWC_COLOR_3 (0x0C)
0281
0282 #define SM501_DC_ALPHA_CONTROL (0x100)
0283 #define SM501_DC_ALPHA_FB_ADDR (0x104)
0284 #define SM501_DC_ALPHA_FB_OFFSET (0x108)
0285 #define SM501_DC_ALPHA_TL_LOC (0x10C)
0286 #define SM501_DC_ALPHA_BR_LOC (0x110)
0287 #define SM501_DC_ALPHA_CHROMA_KEY (0x114)
0288 #define SM501_DC_ALPHA_COLOR_LOOKUP (0x118)
0289
0290 #define SM501_DC_CRT_CONTROL (0x200)
0291
0292 #define SM501_DC_CRT_CONTROL_TVP (1<<15)
0293 #define SM501_DC_CRT_CONTROL_CP (1<<14)
0294 #define SM501_DC_CRT_CONTROL_VSP (1<<13)
0295 #define SM501_DC_CRT_CONTROL_HSP (1<<12)
0296 #define SM501_DC_CRT_CONTROL_VS (1<<11)
0297 #define SM501_DC_CRT_CONTROL_BLANK (1<<10)
0298 #define SM501_DC_CRT_CONTROL_SEL (1<<9)
0299 #define SM501_DC_CRT_CONTROL_TE (1<<8)
0300 #define SM501_DC_CRT_CONTROL_PIXEL_MASK (0xF << 4)
0301 #define SM501_DC_CRT_CONTROL_GAMMA (1<<3)
0302 #define SM501_DC_CRT_CONTROL_ENABLE (1<<2)
0303
0304 #define SM501_DC_CRT_CONTROL_8BPP (0<<0)
0305 #define SM501_DC_CRT_CONTROL_16BPP (1<<0)
0306 #define SM501_DC_CRT_CONTROL_32BPP (2<<0)
0307
0308 #define SM501_DC_CRT_FB_ADDR (0x204)
0309 #define SM501_DC_CRT_FB_OFFSET (0x208)
0310 #define SM501_DC_CRT_H_TOT (0x20C)
0311 #define SM501_DC_CRT_H_SYNC (0x210)
0312 #define SM501_DC_CRT_V_TOT (0x214)
0313 #define SM501_DC_CRT_V_SYNC (0x218)
0314 #define SM501_DC_CRT_SIGNATURE_ANALYZER (0x21C)
0315 #define SM501_DC_CRT_CUR_LINE (0x220)
0316 #define SM501_DC_CRT_MONITOR_DETECT (0x224)
0317
0318 #define SM501_DC_CRT_HWC_BASE (0x230)
0319 #define SM501_DC_CRT_HWC_ADDR (0x230)
0320 #define SM501_DC_CRT_HWC_LOC (0x234)
0321 #define SM501_DC_CRT_HWC_COLOR_1_2 (0x238)
0322 #define SM501_DC_CRT_HWC_COLOR_3 (0x23C)
0323
0324 #define SM501_DC_PANEL_PALETTE (0x400)
0325
0326 #define SM501_DC_VIDEO_PALETTE (0x800)
0327
0328 #define SM501_DC_CRT_PALETTE (0xC00)
0329
0330
0331 #define SM501_ZVPORT (0x090000)
0332
0333
0334 #define SM501_AC97 (0x0A0000)
0335
0336
0337 #define SM501_UCONTROLLER (0x0B0000)
0338
0339
0340 #define SM501_UCONTROLLER_SRAM (0x0C0000)
0341
0342
0343 #define SM501_DMA (0x0D0000)
0344
0345
0346 #define SM501_2D_ENGINE (0x100000)
0347 #define SM501_2D_SOURCE (0x00)
0348 #define SM501_2D_DESTINATION (0x04)
0349 #define SM501_2D_DIMENSION (0x08)
0350 #define SM501_2D_CONTROL (0x0C)
0351 #define SM501_2D_PITCH (0x10)
0352 #define SM501_2D_FOREGROUND (0x14)
0353 #define SM501_2D_BACKGROUND (0x18)
0354 #define SM501_2D_STRETCH (0x1C)
0355 #define SM501_2D_COLOR_COMPARE (0x20)
0356 #define SM501_2D_COLOR_COMPARE_MASK (0x24)
0357 #define SM501_2D_MASK (0x28)
0358 #define SM501_2D_CLIP_TL (0x2C)
0359 #define SM501_2D_CLIP_BR (0x30)
0360 #define SM501_2D_MONO_PATTERN_LOW (0x34)
0361 #define SM501_2D_MONO_PATTERN_HIGH (0x38)
0362 #define SM501_2D_WINDOW_WIDTH (0x3C)
0363 #define SM501_2D_SOURCE_BASE (0x40)
0364 #define SM501_2D_DESTINATION_BASE (0x44)
0365 #define SM501_2D_ALPHA (0x48)
0366 #define SM501_2D_WRAP (0x4C)
0367 #define SM501_2D_STATUS (0x50)
0368
0369 #define SM501_CSC_Y_SOURCE_BASE (0xC8)
0370 #define SM501_CSC_CONSTANTS (0xCC)
0371 #define SM501_CSC_Y_SOURCE_X (0xD0)
0372 #define SM501_CSC_Y_SOURCE_Y (0xD4)
0373 #define SM501_CSC_U_SOURCE_BASE (0xD8)
0374 #define SM501_CSC_V_SOURCE_BASE (0xDC)
0375 #define SM501_CSC_SOURCE_DIMENSION (0xE0)
0376 #define SM501_CSC_SOURCE_PITCH (0xE4)
0377 #define SM501_CSC_DESTINATION (0xE8)
0378 #define SM501_CSC_DESTINATION_DIMENSION (0xEC)
0379 #define SM501_CSC_DESTINATION_PITCH (0xF0)
0380 #define SM501_CSC_SCALE_FACTOR (0xF4)
0381 #define SM501_CSC_DESTINATION_BASE (0xF8)
0382 #define SM501_CSC_CONTROL (0xFC)
0383
0384
0385 #define SM501_2D_ENGINE_DATA (0x110000)