0001
0002
0003
0004
0005
0006 #ifndef ARMADA_HW_H
0007 #define ARMADA_HW_H
0008
0009
0010
0011
0012
0013
0014
0015
0016 enum {
0017 LCD_SPU_ADV_REG = 0x0084,
0018 LCD_SPU_DMA_START_ADDR_Y0 = 0x00c0,
0019 LCD_SPU_DMA_START_ADDR_U0 = 0x00c4,
0020 LCD_SPU_DMA_START_ADDR_V0 = 0x00c8,
0021 LCD_CFG_DMA_START_ADDR_0 = 0x00cc,
0022 LCD_SPU_DMA_START_ADDR_Y1 = 0x00d0,
0023 LCD_SPU_DMA_START_ADDR_U1 = 0x00d4,
0024 LCD_SPU_DMA_START_ADDR_V1 = 0x00d8,
0025 LCD_CFG_DMA_START_ADDR_1 = 0x00dc,
0026 LCD_SPU_DMA_PITCH_YC = 0x00e0,
0027 LCD_SPU_DMA_PITCH_UV = 0x00e4,
0028 LCD_SPU_DMA_OVSA_HPXL_VLN = 0x00e8,
0029 LCD_SPU_DMA_HPXL_VLN = 0x00ec,
0030 LCD_SPU_DZM_HPXL_VLN = 0x00f0,
0031 LCD_CFG_GRA_START_ADDR0 = 0x00f4,
0032 LCD_CFG_GRA_START_ADDR1 = 0x00f8,
0033 LCD_CFG_GRA_PITCH = 0x00fc,
0034 LCD_SPU_GRA_OVSA_HPXL_VLN = 0x0100,
0035 LCD_SPU_GRA_HPXL_VLN = 0x0104,
0036 LCD_SPU_GZM_HPXL_VLN = 0x0108,
0037 LCD_SPU_HWC_OVSA_HPXL_VLN = 0x010c,
0038 LCD_SPU_HWC_HPXL_VLN = 0x0110,
0039 LCD_SPUT_V_H_TOTAL = 0x0114,
0040 LCD_SPU_V_H_ACTIVE = 0x0118,
0041 LCD_SPU_H_PORCH = 0x011c,
0042 LCD_SPU_V_PORCH = 0x0120,
0043 LCD_SPU_BLANKCOLOR = 0x0124,
0044 LCD_SPU_ALPHA_COLOR1 = 0x0128,
0045 LCD_SPU_ALPHA_COLOR2 = 0x012c,
0046 LCD_SPU_COLORKEY_Y = 0x0130,
0047 LCD_SPU_COLORKEY_U = 0x0134,
0048 LCD_SPU_COLORKEY_V = 0x0138,
0049 LCD_CFG_RDREG4F = 0x013c,
0050 LCD_SPU_SPI_RXDATA = 0x0140,
0051 LCD_SPU_ISA_RXDATA = 0x0144,
0052 LCD_SPU_HWC_RDDAT = 0x0158,
0053 LCD_SPU_GAMMA_RDDAT = 0x015c,
0054 LCD_SPU_PALETTE_RDDAT = 0x0160,
0055 LCD_SPU_IOPAD_IN = 0x0178,
0056 LCD_CFG_RDREG5F = 0x017c,
0057 LCD_SPU_SPI_CTRL = 0x0180,
0058 LCD_SPU_SPI_TXDATA = 0x0184,
0059 LCD_SPU_SMPN_CTRL = 0x0188,
0060 LCD_SPU_DMA_CTRL0 = 0x0190,
0061 LCD_SPU_DMA_CTRL1 = 0x0194,
0062 LCD_SPU_SRAM_CTRL = 0x0198,
0063 LCD_SPU_SRAM_WRDAT = 0x019c,
0064 LCD_SPU_SRAM_PARA0 = 0x01a0,
0065 LCD_SPU_SRAM_PARA1 = 0x01a4,
0066 LCD_CFG_SCLK_DIV = 0x01a8,
0067 LCD_SPU_CONTRAST = 0x01ac,
0068 LCD_SPU_SATURATION = 0x01b0,
0069 LCD_SPU_CBSH_HUE = 0x01b4,
0070 LCD_SPU_DUMB_CTRL = 0x01b8,
0071 LCD_SPU_IOPAD_CONTROL = 0x01bc,
0072 LCD_SPU_IRQ_ENA = 0x01c0,
0073 LCD_SPU_IRQ_ISR = 0x01c4,
0074 };
0075
0076
0077 enum {
0078 ADV_VSYNC_L_OFF = 0xfff << 20,
0079 ADV_GRACOLORKEY = 1 << 19,
0080 ADV_VIDCOLORKEY = 1 << 18,
0081 ADV_HWC32BLEND = 1 << 15,
0082 ADV_HWC32ARGB = 1 << 14,
0083 ADV_HWC32ENABLE = 1 << 13,
0084 ADV_VSYNCOFFEN = 1 << 12,
0085 ADV_VSYNC_H_OFF = 0xfff << 0,
0086 };
0087
0088
0089 enum {
0090 CFG_SRAM_WAIT = BIT(11),
0091 CFG_SMPN_FASTTX = BIT(10),
0092 CFG_DMA_ARB = BIT(9),
0093 CFG_DMA_WM_EN = BIT(8),
0094 CFG_DMA_WM_MASK = 0xff,
0095 #define CFG_DMA_WM(x) ((x) & CFG_DMA_WM_MASK)
0096 };
0097
0098 enum {
0099 CFG_565 = 0,
0100 CFG_1555 = 1,
0101 CFG_888PACK = 2,
0102 CFG_X888 = 3,
0103 CFG_8888 = 4,
0104 CFG_422PACK = 5,
0105 CFG_422 = 6,
0106 CFG_420 = 7,
0107 CFG_PSEUDO4 = 9,
0108 CFG_PSEUDO8 = 10,
0109 CFG_SWAPRB = 1 << 4,
0110 CFG_SWAPUV = 1 << 3,
0111 CFG_SWAPYU = 1 << 2,
0112 CFG_YUV2RGB = 1 << 1,
0113 };
0114
0115
0116 enum {
0117 CFG_NOBLENDING = 1 << 31,
0118 CFG_GAMMA_ENA = 1 << 30,
0119 CFG_CBSH_ENA = 1 << 29,
0120 CFG_PALETTE_ENA = 1 << 28,
0121 CFG_ARBFAST_ENA = 1 << 27,
0122 CFG_HWC_1BITMOD = 1 << 26,
0123 CFG_HWC_1BITENA = 1 << 25,
0124 CFG_HWC_ENA = 1 << 24,
0125 CFG_DMAFORMAT = 0xf << 20,
0126 #define CFG_DMA_FMT(x) ((x) << 20)
0127 CFG_GRAFORMAT = 0xf << 16,
0128 #define CFG_GRA_FMT(x) ((x) << 16)
0129 #define CFG_GRA_MOD(x) ((x) << 8)
0130 CFG_GRA_FTOGGLE = 1 << 15,
0131 CFG_GRA_HSMOOTH = 1 << 14,
0132 CFG_GRA_TSTMODE = 1 << 13,
0133 CFG_GRA_ENA = 1 << 8,
0134 #define CFG_DMA_MOD(x) ((x) << 0)
0135 CFG_DMA_FTOGGLE = 1 << 7,
0136 CFG_DMA_HSMOOTH = 1 << 6,
0137 CFG_DMA_TSTMODE = 1 << 5,
0138 CFG_DMA_ENA = 1 << 0,
0139 };
0140
0141 enum {
0142 CKMODE_DISABLE = 0,
0143 CKMODE_Y = 1,
0144 CKMODE_U = 2,
0145 CKMODE_RGB = 3,
0146 CKMODE_V = 4,
0147 CKMODE_R = 5,
0148 CKMODE_G = 6,
0149 CKMODE_B = 7,
0150 };
0151
0152
0153 enum {
0154 CFG_FRAME_TRIG = 1 << 31,
0155 CFG_VSYNC_INV = 1 << 27,
0156 CFG_CKMODE_MASK = 0x7 << 24,
0157 #define CFG_CKMODE(x) ((x) << 24)
0158 CFG_CARRY = 1 << 23,
0159 CFG_GATED_CLK = 1 << 21,
0160 CFG_PWRDN_ENA = 1 << 20,
0161 CFG_DSCALE_MASK = 0x3 << 18,
0162 CFG_DSCALE_NONE = 0x0 << 18,
0163 CFG_DSCALE_HALF = 0x1 << 18,
0164 CFG_DSCALE_QUAR = 0x2 << 18,
0165 CFG_ALPHAM_MASK = 0x3 << 16,
0166 CFG_ALPHAM_VIDEO = 0x0 << 16,
0167 CFG_ALPHAM_GRA = 0x1 << 16,
0168 CFG_ALPHAM_CFG = 0x2 << 16,
0169 CFG_ALPHA_MASK = 0xff << 8,
0170 #define CFG_ALPHA(x) ((x) << 8)
0171 CFG_PIXCMD_MASK = 0xff,
0172 };
0173
0174
0175 enum {
0176 SRAM_READ = 0 << 14,
0177 SRAM_WRITE = 2 << 14,
0178 SRAM_INIT = 3 << 14,
0179 SRAM_GAMMA_YR = 0x0 << 8,
0180 SRAM_GAMMA_UG = 0x1 << 8,
0181 SRAM_GAMMA_VB = 0x2 << 8,
0182 SRAM_PALETTE = 0x3 << 8,
0183 SRAM_HWC32_RAM1 = 0xc << 8,
0184 SRAM_HWC32_RAM2 = 0xd << 8,
0185 SRAM_HWC32_RAMR = SRAM_HWC32_RAM1,
0186 SRAM_HWC32_RAMG = SRAM_HWC32_RAM2,
0187 SRAM_HWC32_RAMB = 0xe << 8,
0188 SRAM_HWC32_TRAN = 0xf << 8,
0189 SRAM_HWC = 0xf << 8,
0190 };
0191
0192
0193 enum {
0194 CFG_CSB_256x32 = 1 << 15,
0195 CFG_CSB_256x24 = 1 << 14,
0196 CFG_CSB_256x8 = 1 << 13,
0197 CFG_PDWN1920x32 = 1 << 8,
0198 CFG_PDWN256x32 = 1 << 7,
0199 CFG_PDWN256x24 = 1 << 6,
0200 CFG_PDWN256x8 = 1 << 5,
0201 CFG_PDWNHWC = 1 << 4,
0202 CFG_PDWN32x32 = 1 << 3,
0203 CFG_PDWN16x66 = 1 << 2,
0204 CFG_PDWN32x66 = 1 << 1,
0205 CFG_PDWN64x66 = 1 << 0,
0206 };
0207
0208
0209 enum {
0210
0211 SCLK_510_AXI = 0x0 << 30,
0212 SCLK_510_EXTCLK0 = 0x1 << 30,
0213 SCLK_510_PLL = 0x2 << 30,
0214 SCLK_510_EXTCLK1 = 0x3 << 30,
0215 SCLK_510_DIV_CHANGE = 1 << 29,
0216 SCLK_510_FRAC_DIV_MASK = 0xfff << 16,
0217 SCLK_510_INT_DIV_MASK = 0xffff << 0,
0218
0219
0220 SCLK_16X_AHB = 0x0 << 28,
0221 SCLK_16X_PCLK = 0x1 << 28,
0222 SCLK_16X_AXI = 0x4 << 28,
0223 SCLK_16X_PLL = 0x8 << 28,
0224 SCLK_16X_FRAC_DIV_MASK = 0xfff << 16,
0225 SCLK_16X_INT_DIV_MASK = 0xffff << 0,
0226 };
0227
0228
0229 enum {
0230 DUMB16_RGB565_0 = 0x0 << 28,
0231 DUMB16_RGB565_1 = 0x1 << 28,
0232 DUMB18_RGB666_0 = 0x2 << 28,
0233 DUMB18_RGB666_1 = 0x3 << 28,
0234 DUMB12_RGB444_0 = 0x4 << 28,
0235 DUMB12_RGB444_1 = 0x5 << 28,
0236 DUMB24_RGB888_0 = 0x6 << 28,
0237 DUMB_BLANK = 0x7 << 28,
0238 DUMB_MASK = 0xf << 28,
0239 CFG_BIAS_OUT = 1 << 8,
0240 CFG_REV_RGB = 1 << 7,
0241 CFG_INV_CBLANK = 1 << 6,
0242 CFG_INV_CSYNC = 1 << 5,
0243 CFG_INV_HENA = 1 << 4,
0244 CFG_INV_VSYNC = 1 << 3,
0245 CFG_INV_HSYNC = 1 << 2,
0246 CFG_INV_PCLK = 1 << 1,
0247 CFG_DUMB_ENA = 1 << 0,
0248 };
0249
0250
0251 enum {
0252 CFG_VSCALE_LN_EN = 3 << 18,
0253 CFG_GRA_VM_ENA = 1 << 15,
0254 CFG_DMA_VM_ENA = 1 << 13,
0255 CFG_CMD_VM_ENA = 1 << 11,
0256 CFG_CSC_MASK = 3 << 8,
0257 CFG_CSC_YUV_CCIR709 = 1 << 9,
0258 CFG_CSC_YUV_CCIR601 = 0 << 9,
0259 CFG_CSC_RGB_STUDIO = 1 << 8,
0260 CFG_CSC_RGB_COMPUTER = 0 << 8,
0261 CFG_IOPAD_MASK = 0xf << 0,
0262 CFG_IOPAD_DUMB24 = 0x0 << 0,
0263 CFG_IOPAD_DUMB18SPI = 0x1 << 0,
0264 CFG_IOPAD_DUMB18GPIO = 0x2 << 0,
0265 CFG_IOPAD_DUMB16SPI = 0x3 << 0,
0266 CFG_IOPAD_DUMB16GPIO = 0x4 << 0,
0267 CFG_IOPAD_DUMB12GPIO = 0x5 << 0,
0268 CFG_IOPAD_SMART18 = 0x6 << 0,
0269 CFG_IOPAD_SMART16 = 0x7 << 0,
0270 CFG_IOPAD_SMART8 = 0x8 << 0,
0271 };
0272
0273 #define IOPAD_DUMB24 0x0
0274
0275
0276 enum {
0277 DMA_FRAME_IRQ0_ENA = 1 << 31,
0278 DMA_FRAME_IRQ1_ENA = 1 << 30,
0279 DMA_FRAME_IRQ_ENA = DMA_FRAME_IRQ0_ENA | DMA_FRAME_IRQ1_ENA,
0280 DMA_FF_UNDERFLOW_ENA = 1 << 29,
0281 GRA_FRAME_IRQ0_ENA = 1 << 27,
0282 GRA_FRAME_IRQ1_ENA = 1 << 26,
0283 GRA_FRAME_IRQ_ENA = GRA_FRAME_IRQ0_ENA | GRA_FRAME_IRQ1_ENA,
0284 GRA_FF_UNDERFLOW_ENA = 1 << 25,
0285 VSYNC_IRQ_ENA = 1 << 23,
0286 DUMB_FRAMEDONE_ENA = 1 << 22,
0287 TWC_FRAMEDONE_ENA = 1 << 21,
0288 HWC_FRAMEDONE_ENA = 1 << 20,
0289 SLV_IRQ_ENA = 1 << 19,
0290 SPI_IRQ_ENA = 1 << 18,
0291 PWRDN_IRQ_ENA = 1 << 17,
0292 ERR_IRQ_ENA = 1 << 16,
0293 CLEAN_SPU_IRQ_ISR = 0xffff,
0294 };
0295
0296
0297 enum {
0298 DMA_FRAME_IRQ0 = 1 << 31,
0299 DMA_FRAME_IRQ1 = 1 << 30,
0300 DMA_FRAME_IRQ = DMA_FRAME_IRQ0 | DMA_FRAME_IRQ1,
0301 DMA_FF_UNDERFLOW = 1 << 29,
0302 GRA_FRAME_IRQ0 = 1 << 27,
0303 GRA_FRAME_IRQ1 = 1 << 26,
0304 GRA_FRAME_IRQ = GRA_FRAME_IRQ0 | GRA_FRAME_IRQ1,
0305 GRA_FF_UNDERFLOW = 1 << 25,
0306 VSYNC_IRQ = 1 << 23,
0307 DUMB_FRAMEDONE = 1 << 22,
0308 TWC_FRAMEDONE = 1 << 21,
0309 HWC_FRAMEDONE = 1 << 20,
0310 SLV_IRQ = 1 << 19,
0311 SPI_IRQ = 1 << 18,
0312 PWRDN_IRQ = 1 << 17,
0313 ERR_IRQ = 1 << 16,
0314 DMA_FRAME_IRQ0_LEVEL = 1 << 15,
0315 DMA_FRAME_IRQ1_LEVEL = 1 << 14,
0316 DMA_FRAME_CNT_ISR = 3 << 12,
0317 GRA_FRAME_IRQ0_LEVEL = 1 << 11,
0318 GRA_FRAME_IRQ1_LEVEL = 1 << 10,
0319 GRA_FRAME_CNT_ISR = 3 << 8,
0320 VSYNC_IRQ_LEVEL = 1 << 7,
0321 DUMB_FRAMEDONE_LEVEL = 1 << 6,
0322 TWC_FRAMEDONE_LEVEL = 1 << 5,
0323 HWC_FRAMEDONE_LEVEL = 1 << 4,
0324 SLV_FF_EMPTY = 1 << 3,
0325 DMA_FF_ALLEMPTY = 1 << 2,
0326 GRA_FF_ALLEMPTY = 1 << 1,
0327 PWRDN_IRQ_LEVEL = 1 << 0,
0328 };
0329
0330 #endif