0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _EP93XX_SOC_H
0010 #define _EP93XX_SOC_H
0011
0012 #include "ep93xx-regs.h"
0013 #include "irqs.h"
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035 #define EP93XX_CS0_PHYS_BASE_ASYNC 0x00000000
0036 #define EP93XX_SDCE3_PHYS_BASE_SYNC 0x00000000
0037 #define EP93XX_CS1_PHYS_BASE 0x10000000
0038 #define EP93XX_CS2_PHYS_BASE 0x20000000
0039 #define EP93XX_CS3_PHYS_BASE 0x30000000
0040 #define EP93XX_PCMCIA_PHYS_BASE 0x40000000
0041 #define EP93XX_CS6_PHYS_BASE 0x60000000
0042 #define EP93XX_CS7_PHYS_BASE 0x70000000
0043 #define EP93XX_SDCE0_PHYS_BASE 0xc0000000
0044 #define EP93XX_SDCE1_PHYS_BASE 0xd0000000
0045 #define EP93XX_SDCE2_PHYS_BASE 0xe0000000
0046 #define EP93XX_SDCE3_PHYS_BASE_ASYNC 0xf0000000
0047 #define EP93XX_CS0_PHYS_BASE_SYNC 0xf0000000
0048
0049
0050 #define EP93XX_DMA_BASE EP93XX_AHB_IOMEM(0x00000000)
0051
0052 #define EP93XX_ETHERNET_PHYS_BASE EP93XX_AHB_PHYS(0x00010000)
0053 #define EP93XX_ETHERNET_BASE EP93XX_AHB_IOMEM(0x00010000)
0054
0055 #define EP93XX_USB_PHYS_BASE EP93XX_AHB_PHYS(0x00020000)
0056 #define EP93XX_USB_BASE EP93XX_AHB_IOMEM(0x00020000)
0057
0058 #define EP93XX_RASTER_PHYS_BASE EP93XX_AHB_PHYS(0x00030000)
0059 #define EP93XX_RASTER_BASE EP93XX_AHB_IOMEM(0x00030000)
0060
0061 #define EP93XX_GRAPHICS_ACCEL_BASE EP93XX_AHB_IOMEM(0x00040000)
0062
0063 #define EP93XX_SDRAM_CONTROLLER_BASE EP93XX_AHB_IOMEM(0x00060000)
0064
0065 #define EP93XX_PCMCIA_CONTROLLER_BASE EP93XX_AHB_IOMEM(0x00080000)
0066
0067 #define EP93XX_BOOT_ROM_BASE EP93XX_AHB_IOMEM(0x00090000)
0068
0069 #define EP93XX_IDE_PHYS_BASE EP93XX_AHB_PHYS(0x000a0000)
0070 #define EP93XX_IDE_BASE EP93XX_AHB_IOMEM(0x000a0000)
0071
0072 #define EP93XX_VIC1_BASE EP93XX_AHB_IOMEM(0x000b0000)
0073
0074 #define EP93XX_VIC2_BASE EP93XX_AHB_IOMEM(0x000c0000)
0075
0076
0077 #define EP93XX_TIMER_BASE EP93XX_APB_IOMEM(0x00010000)
0078
0079 #define EP93XX_I2S_PHYS_BASE EP93XX_APB_PHYS(0x00020000)
0080 #define EP93XX_I2S_BASE EP93XX_APB_IOMEM(0x00020000)
0081
0082 #define EP93XX_SECURITY_BASE EP93XX_APB_IOMEM(0x00030000)
0083
0084 #define EP93XX_AAC_PHYS_BASE EP93XX_APB_PHYS(0x00080000)
0085 #define EP93XX_AAC_BASE EP93XX_APB_IOMEM(0x00080000)
0086
0087 #define EP93XX_SPI_PHYS_BASE EP93XX_APB_PHYS(0x000a0000)
0088 #define EP93XX_SPI_BASE EP93XX_APB_IOMEM(0x000a0000)
0089
0090 #define EP93XX_IRDA_BASE EP93XX_APB_IOMEM(0x000b0000)
0091
0092 #define EP93XX_KEY_MATRIX_PHYS_BASE EP93XX_APB_PHYS(0x000f0000)
0093 #define EP93XX_KEY_MATRIX_BASE EP93XX_APB_IOMEM(0x000f0000)
0094
0095 #define EP93XX_ADC_PHYS_BASE EP93XX_APB_PHYS(0x00100000)
0096 #define EP93XX_ADC_BASE EP93XX_APB_IOMEM(0x00100000)
0097 #define EP93XX_TOUCHSCREEN_BASE EP93XX_APB_IOMEM(0x00100000)
0098
0099 #define EP93XX_PWM_PHYS_BASE EP93XX_APB_PHYS(0x00110000)
0100 #define EP93XX_PWM_BASE EP93XX_APB_IOMEM(0x00110000)
0101
0102 #define EP93XX_RTC_PHYS_BASE EP93XX_APB_PHYS(0x00120000)
0103 #define EP93XX_RTC_BASE EP93XX_APB_IOMEM(0x00120000)
0104
0105 #define EP93XX_WATCHDOG_PHYS_BASE EP93XX_APB_PHYS(0x00140000)
0106 #define EP93XX_WATCHDOG_BASE EP93XX_APB_IOMEM(0x00140000)
0107
0108
0109 #define EP93XX_SYSCON_BASE EP93XX_APB_IOMEM(0x00130000)
0110 #define EP93XX_SYSCON_REG(x) (EP93XX_SYSCON_BASE + (x))
0111 #define EP93XX_SYSCON_POWER_STATE EP93XX_SYSCON_REG(0x00)
0112 #define EP93XX_SYSCON_PWRCNT EP93XX_SYSCON_REG(0x04)
0113 #define EP93XX_SYSCON_PWRCNT_FIR_EN (1<<31)
0114 #define EP93XX_SYSCON_PWRCNT_UARTBAUD (1<<29)
0115 #define EP93XX_SYSCON_PWRCNT_USH_EN 28
0116 #define EP93XX_SYSCON_PWRCNT_DMA_M2M1 27
0117 #define EP93XX_SYSCON_PWRCNT_DMA_M2M0 26
0118 #define EP93XX_SYSCON_PWRCNT_DMA_M2P8 25
0119 #define EP93XX_SYSCON_PWRCNT_DMA_M2P9 24
0120 #define EP93XX_SYSCON_PWRCNT_DMA_M2P6 23
0121 #define EP93XX_SYSCON_PWRCNT_DMA_M2P7 22
0122 #define EP93XX_SYSCON_PWRCNT_DMA_M2P4 21
0123 #define EP93XX_SYSCON_PWRCNT_DMA_M2P5 20
0124 #define EP93XX_SYSCON_PWRCNT_DMA_M2P2 19
0125 #define EP93XX_SYSCON_PWRCNT_DMA_M2P3 18
0126 #define EP93XX_SYSCON_PWRCNT_DMA_M2P0 17
0127 #define EP93XX_SYSCON_PWRCNT_DMA_M2P1 16
0128 #define EP93XX_SYSCON_HALT EP93XX_SYSCON_REG(0x08)
0129 #define EP93XX_SYSCON_STANDBY EP93XX_SYSCON_REG(0x0c)
0130 #define EP93XX_SYSCON_CLKSET1 EP93XX_SYSCON_REG(0x20)
0131 #define EP93XX_SYSCON_CLKSET1_NBYP1 (1<<23)
0132 #define EP93XX_SYSCON_CLKSET2 EP93XX_SYSCON_REG(0x24)
0133 #define EP93XX_SYSCON_CLKSET2_NBYP2 (1<<19)
0134 #define EP93XX_SYSCON_CLKSET2_PLL2_EN (1<<18)
0135 #define EP93XX_SYSCON_DEVCFG EP93XX_SYSCON_REG(0x80)
0136 #define EP93XX_SYSCON_DEVCFG_SWRST (1<<31)
0137 #define EP93XX_SYSCON_DEVCFG_D1ONG (1<<30)
0138 #define EP93XX_SYSCON_DEVCFG_D0ONG (1<<29)
0139 #define EP93XX_SYSCON_DEVCFG_IONU2 (1<<28)
0140 #define EP93XX_SYSCON_DEVCFG_GONK (1<<27)
0141 #define EP93XX_SYSCON_DEVCFG_TONG (1<<26)
0142 #define EP93XX_SYSCON_DEVCFG_MONG (1<<25)
0143 #define EP93XX_SYSCON_DEVCFG_U3EN 24
0144 #define EP93XX_SYSCON_DEVCFG_CPENA (1<<23)
0145 #define EP93XX_SYSCON_DEVCFG_A2ONG (1<<22)
0146 #define EP93XX_SYSCON_DEVCFG_A1ONG (1<<21)
0147 #define EP93XX_SYSCON_DEVCFG_U2EN 20
0148 #define EP93XX_SYSCON_DEVCFG_EXVC (1<<19)
0149 #define EP93XX_SYSCON_DEVCFG_U1EN 18
0150 #define EP93XX_SYSCON_DEVCFG_TIN (1<<17)
0151 #define EP93XX_SYSCON_DEVCFG_HC3IN (1<<15)
0152 #define EP93XX_SYSCON_DEVCFG_HC3EN (1<<14)
0153 #define EP93XX_SYSCON_DEVCFG_HC1IN (1<<13)
0154 #define EP93XX_SYSCON_DEVCFG_HC1EN (1<<12)
0155 #define EP93XX_SYSCON_DEVCFG_HONIDE (1<<11)
0156 #define EP93XX_SYSCON_DEVCFG_GONIDE (1<<10)
0157 #define EP93XX_SYSCON_DEVCFG_PONG (1<<9)
0158 #define EP93XX_SYSCON_DEVCFG_EONIDE (1<<8)
0159 #define EP93XX_SYSCON_DEVCFG_I2SONSSP (1<<7)
0160 #define EP93XX_SYSCON_DEVCFG_I2SONAC97 (1<<6)
0161 #define EP93XX_SYSCON_DEVCFG_RASONP3 (1<<4)
0162 #define EP93XX_SYSCON_DEVCFG_RAS (1<<3)
0163 #define EP93XX_SYSCON_DEVCFG_ADCPD (1<<2)
0164 #define EP93XX_SYSCON_DEVCFG_KEYS (1<<1)
0165 #define EP93XX_SYSCON_DEVCFG_SHENA (1<<0)
0166 #define EP93XX_SYSCON_VIDCLKDIV EP93XX_SYSCON_REG(0x84)
0167 #define EP93XX_SYSCON_CLKDIV_ENABLE 15
0168 #define EP93XX_SYSCON_CLKDIV_ESEL (1<<14)
0169 #define EP93XX_SYSCON_CLKDIV_PSEL (1<<13)
0170 #define EP93XX_SYSCON_CLKDIV_PDIV_SHIFT 8
0171 #define EP93XX_SYSCON_I2SCLKDIV EP93XX_SYSCON_REG(0x8c)
0172 #define EP93XX_SYSCON_I2SCLKDIV_SENA 31
0173 #define EP93XX_SYSCON_I2SCLKDIV_ORIDE (1<<29)
0174 #define EP93XX_SYSCON_I2SCLKDIV_SPOL (1<<19)
0175 #define EP93XX_I2SCLKDIV_SDIV (1 << 16)
0176 #define EP93XX_I2SCLKDIV_LRDIV32 (0 << 17)
0177 #define EP93XX_I2SCLKDIV_LRDIV64 (1 << 17)
0178 #define EP93XX_I2SCLKDIV_LRDIV128 (2 << 17)
0179 #define EP93XX_I2SCLKDIV_LRDIV_MASK (3 << 17)
0180 #define EP93XX_SYSCON_KEYTCHCLKDIV EP93XX_SYSCON_REG(0x90)
0181 #define EP93XX_SYSCON_KEYTCHCLKDIV_TSEN 31
0182 #define EP93XX_SYSCON_KEYTCHCLKDIV_ADIV 16
0183 #define EP93XX_SYSCON_KEYTCHCLKDIV_KEN 15
0184 #define EP93XX_SYSCON_KEYTCHCLKDIV_KDIV (1<<0)
0185 #define EP93XX_SYSCON_SYSCFG EP93XX_SYSCON_REG(0x9c)
0186 #define EP93XX_SYSCON_SYSCFG_REV_MASK (0xf0000000)
0187 #define EP93XX_SYSCON_SYSCFG_REV_SHIFT (28)
0188 #define EP93XX_SYSCON_SYSCFG_SBOOT (1<<8)
0189 #define EP93XX_SYSCON_SYSCFG_LCSN7 (1<<7)
0190 #define EP93XX_SYSCON_SYSCFG_LCSN6 (1<<6)
0191 #define EP93XX_SYSCON_SYSCFG_LASDO (1<<5)
0192 #define EP93XX_SYSCON_SYSCFG_LEEDA (1<<4)
0193 #define EP93XX_SYSCON_SYSCFG_LEECLK (1<<3)
0194 #define EP93XX_SYSCON_SYSCFG_LCSN2 (1<<1)
0195 #define EP93XX_SYSCON_SYSCFG_LCSN1 (1<<0)
0196 #define EP93XX_SYSCON_SWLOCK EP93XX_SYSCON_REG(0xc0)
0197
0198
0199 void ep93xx_syscon_swlocked_write(unsigned int val, void __iomem *reg);
0200 void ep93xx_devcfg_set_clear(unsigned int set_bits, unsigned int clear_bits);
0201
0202 static inline void ep93xx_devcfg_set_bits(unsigned int bits)
0203 {
0204 ep93xx_devcfg_set_clear(bits, 0x00);
0205 }
0206
0207 static inline void ep93xx_devcfg_clear_bits(unsigned int bits)
0208 {
0209 ep93xx_devcfg_set_clear(0x00, bits);
0210 }
0211
0212 #endif