0001
0002
0003
0004
0005
0006 #ifndef __MACH_BOARD_CNS3XXXH
0007 #define __MACH_BOARD_CNS3XXXH
0008
0009
0010
0011
0012 #define CNS3XXX_FLASH_BASE 0x10000000
0013 #define CNS3XXX_FLASH_SIZE SZ_256M
0014
0015 #define CNS3XXX_DDR2SDRAM_BASE 0x20000000
0016
0017 #define CNS3XXX_SPI_FLASH_BASE 0x60000000
0018
0019 #define CNS3XXX_SWITCH_BASE 0x70000000
0020
0021 #define CNS3XXX_PPE_BASE 0x70001000
0022
0023 #define CNS3XXX_EMBEDDED_SRAM_BASE 0x70002000
0024
0025 #define CNS3XXX_SSP_BASE 0x71000000
0026
0027 #define CNS3XXX_DMC_BASE 0x72000000
0028
0029 #define CNS3XXX_SMC_BASE 0x73000000
0030
0031 #define SMC_MEMC_STATUS_OFFSET 0x000
0032 #define SMC_MEMIF_CFG_OFFSET 0x004
0033 #define SMC_MEMC_CFG_SET_OFFSET 0x008
0034 #define SMC_MEMC_CFG_CLR_OFFSET 0x00C
0035 #define SMC_DIRECT_CMD_OFFSET 0x010
0036 #define SMC_SET_CYCLES_OFFSET 0x014
0037 #define SMC_SET_OPMODE_OFFSET 0x018
0038 #define SMC_REFRESH_PERIOD_0_OFFSET 0x020
0039 #define SMC_REFRESH_PERIOD_1_OFFSET 0x024
0040 #define SMC_SRAM_CYCLES0_0_OFFSET 0x100
0041 #define SMC_NAND_CYCLES0_0_OFFSET 0x100
0042 #define SMC_OPMODE0_0_OFFSET 0x104
0043 #define SMC_SRAM_CYCLES0_1_OFFSET 0x120
0044 #define SMC_NAND_CYCLES0_1_OFFSET 0x120
0045 #define SMC_OPMODE0_1_OFFSET 0x124
0046 #define SMC_USER_STATUS_OFFSET 0x200
0047 #define SMC_USER_CONFIG_OFFSET 0x204
0048 #define SMC_ECC_STATUS_OFFSET 0x300
0049 #define SMC_ECC_MEMCFG_OFFSET 0x304
0050 #define SMC_ECC_MEMCOMMAND1_OFFSET 0x308
0051 #define SMC_ECC_MEMCOMMAND2_OFFSET 0x30C
0052 #define SMC_ECC_ADDR0_OFFSET 0x310
0053 #define SMC_ECC_ADDR1_OFFSET 0x314
0054 #define SMC_ECC_VALUE0_OFFSET 0x318
0055 #define SMC_ECC_VALUE1_OFFSET 0x31C
0056 #define SMC_ECC_VALUE2_OFFSET 0x320
0057 #define SMC_ECC_VALUE3_OFFSET 0x324
0058 #define SMC_PERIPH_ID_0_OFFSET 0xFE0
0059 #define SMC_PERIPH_ID_1_OFFSET 0xFE4
0060 #define SMC_PERIPH_ID_2_OFFSET 0xFE8
0061 #define SMC_PERIPH_ID_3_OFFSET 0xFEC
0062 #define SMC_PCELL_ID_0_OFFSET 0xFF0
0063 #define SMC_PCELL_ID_1_OFFSET 0xFF4
0064 #define SMC_PCELL_ID_2_OFFSET 0xFF8
0065 #define SMC_PCELL_ID_3_OFFSET 0xFFC
0066
0067 #define CNS3XXX_GPIOA_BASE 0x74000000
0068
0069 #define CNS3XXX_GPIOB_BASE 0x74800000
0070
0071 #define CNS3XXX_RTC_BASE 0x75000000
0072
0073 #define RTC_SEC_OFFSET 0x00
0074 #define RTC_MIN_OFFSET 0x04
0075 #define RTC_HOUR_OFFSET 0x08
0076 #define RTC_DAY_OFFSET 0x0C
0077 #define RTC_SEC_ALM_OFFSET 0x10
0078 #define RTC_MIN_ALM_OFFSET 0x14
0079 #define RTC_HOUR_ALM_OFFSET 0x18
0080 #define RTC_REC_OFFSET 0x1C
0081 #define RTC_CTRL_OFFSET 0x20
0082 #define RTC_INTR_STS_OFFSET 0x34
0083
0084 #define CNS3XXX_MISC_BASE 0x76000000
0085 #define CNS3XXX_MISC_BASE_VIRT 0xFB000000
0086
0087 #define CNS3XXX_PM_BASE 0x77000000
0088 #define CNS3XXX_PM_BASE_VIRT 0xFB001000
0089
0090 #define PM_CLK_GATE_OFFSET 0x00
0091 #define PM_SOFT_RST_OFFSET 0x04
0092 #define PM_HS_CFG_OFFSET 0x08
0093 #define PM_CACTIVE_STA_OFFSET 0x0C
0094 #define PM_PWR_STA_OFFSET 0x10
0095 #define PM_SYS_CLK_CTRL_OFFSET 0x14
0096 #define PM_PLL_LCD_I2S_CTRL_OFFSET 0x18
0097 #define PM_PLL_HM_PD_OFFSET 0x1C
0098
0099 #define CNS3XXX_UART0_BASE 0x78000000
0100 #define CNS3XXX_UART0_BASE_VIRT 0xFB002000
0101
0102 #define CNS3XXX_UART1_BASE 0x78400000
0103
0104 #define CNS3XXX_UART2_BASE 0x78800000
0105
0106 #define CNS3XXX_DMAC_BASE 0x79000000
0107
0108 #define CNS3XXX_CORESIGHT_BASE 0x7A000000
0109
0110 #define CNS3XXX_CRYPTO_BASE 0x7B000000
0111
0112 #define CNS3XXX_I2S_BASE 0x7C000000
0113
0114 #define CNS3XXX_TIMER1_2_3_BASE 0x7C800000
0115 #define CNS3XXX_TIMER1_2_3_BASE_VIRT 0xFB003000
0116
0117 #define TIMER1_COUNTER_OFFSET 0x00
0118 #define TIMER1_AUTO_RELOAD_OFFSET 0x04
0119 #define TIMER1_MATCH_V1_OFFSET 0x08
0120 #define TIMER1_MATCH_V2_OFFSET 0x0C
0121
0122 #define TIMER2_COUNTER_OFFSET 0x10
0123 #define TIMER2_AUTO_RELOAD_OFFSET 0x14
0124 #define TIMER2_MATCH_V1_OFFSET 0x18
0125 #define TIMER2_MATCH_V2_OFFSET 0x1C
0126
0127 #define TIMER1_2_CONTROL_OFFSET 0x30
0128 #define TIMER1_2_INTERRUPT_STATUS_OFFSET 0x34
0129 #define TIMER1_2_INTERRUPT_MASK_OFFSET 0x38
0130
0131 #define TIMER_FREERUN_OFFSET 0x40
0132 #define TIMER_FREERUN_CONTROL_OFFSET 0x44
0133
0134 #define CNS3XXX_HCIE_BASE 0x7D000000
0135
0136 #define CNS3XXX_RAID_BASE 0x7E000000
0137
0138 #define CNS3XXX_AXI_IXC_BASE 0x7F000000
0139
0140 #define CNS3XXX_CLCD_BASE 0x80000000
0141
0142 #define CNS3XXX_USBOTG_BASE 0x81000000
0143
0144 #define CNS3XXX_USB_BASE 0x82000000
0145
0146 #define CNS3XXX_SATA2_BASE 0x83000000
0147 #define CNS3XXX_SATA2_SIZE SZ_16M
0148
0149 #define CNS3XXX_CAMERA_BASE 0x84000000
0150
0151 #define CNS3XXX_SDIO_BASE 0x85000000
0152
0153 #define CNS3XXX_I2S_TDM_BASE 0x86000000
0154
0155 #define CNS3XXX_2DG_BASE 0x87000000
0156
0157 #define CNS3XXX_USB_OHCI_BASE 0x88000000
0158
0159 #define CNS3XXX_L2C_BASE 0x92000000
0160
0161 #define CNS3XXX_PCIE0_MEM_BASE 0xA0000000
0162
0163 #define CNS3XXX_PCIE0_HOST_BASE 0xAB000000
0164 #define CNS3XXX_PCIE0_HOST_BASE_VIRT 0xE1000000
0165
0166 #define CNS3XXX_PCIE0_IO_BASE 0xAC000000
0167
0168 #define CNS3XXX_PCIE0_CFG0_BASE 0xAD000000
0169 #define CNS3XXX_PCIE0_CFG0_BASE_VIRT 0xE3000000
0170
0171 #define CNS3XXX_PCIE0_CFG1_BASE 0xAE000000
0172 #define CNS3XXX_PCIE0_CFG1_BASE_VIRT 0xE4000000
0173
0174 #define CNS3XXX_PCIE0_MSG_BASE 0xAF000000
0175
0176 #define CNS3XXX_PCIE1_MEM_BASE 0xB0000000
0177
0178 #define CNS3XXX_PCIE1_HOST_BASE 0xBB000000
0179 #define CNS3XXX_PCIE1_HOST_BASE_VIRT 0xE9000000
0180
0181 #define CNS3XXX_PCIE1_IO_BASE 0xBC000000
0182
0183 #define CNS3XXX_PCIE1_CFG0_BASE 0xBD000000
0184 #define CNS3XXX_PCIE1_CFG0_BASE_VIRT 0xEB000000
0185
0186 #define CNS3XXX_PCIE1_CFG1_BASE 0xBE000000
0187 #define CNS3XXX_PCIE1_CFG1_BASE_VIRT 0xEC000000
0188
0189 #define CNS3XXX_PCIE1_MSG_BASE 0xBF000000
0190
0191
0192
0193
0194 #define CNS3XXX_TC11MP_SCU_BASE 0x90000000
0195 #define CNS3XXX_TC11MP_SCU_BASE_VIRT 0xFB004000
0196
0197 #define CNS3XXX_TC11MP_GIC_CPU_BASE 0x90000100
0198 #define CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x100)
0199
0200 #define CNS3XXX_TC11MP_TWD_BASE 0x90000600
0201 #define CNS3XXX_TC11MP_TWD_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x600)
0202
0203 #define CNS3XXX_TC11MP_GIC_DIST_BASE 0x90001000
0204 #define CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x1000)
0205
0206 #define CNS3XXX_TC11MP_L220_BASE 0x92002000
0207
0208
0209
0210
0211 #define MISC_MEM_MAP(offs) (void __iomem *)(CNS3XXX_MISC_BASE_VIRT + (offs))
0212
0213 #define MISC_MEMORY_REMAP_REG MISC_MEM_MAP(0x00)
0214 #define MISC_CHIP_CONFIG_REG MISC_MEM_MAP(0x04)
0215 #define MISC_DEBUG_PROBE_DATA_REG MISC_MEM_MAP(0x08)
0216 #define MISC_DEBUG_PROBE_SELECTION_REG MISC_MEM_MAP(0x0C)
0217 #define MISC_IO_PIN_FUNC_SELECTION_REG MISC_MEM_MAP(0x10)
0218 #define MISC_GPIOA_PIN_ENABLE_REG MISC_MEM_MAP(0x14)
0219 #define MISC_GPIOB_PIN_ENABLE_REG MISC_MEM_MAP(0x18)
0220 #define MISC_IO_PAD_DRIVE_STRENGTH_CTRL_A MISC_MEM_MAP(0x1C)
0221 #define MISC_IO_PAD_DRIVE_STRENGTH_CTRL_B MISC_MEM_MAP(0x20)
0222 #define MISC_GPIOA_15_0_PULL_CTRL_REG MISC_MEM_MAP(0x24)
0223 #define MISC_GPIOA_16_31_PULL_CTRL_REG MISC_MEM_MAP(0x28)
0224 #define MISC_GPIOB_15_0_PULL_CTRL_REG MISC_MEM_MAP(0x2C)
0225 #define MISC_GPIOB_16_31_PULL_CTRL_REG MISC_MEM_MAP(0x30)
0226 #define MISC_IO_PULL_CTRL_REG MISC_MEM_MAP(0x34)
0227 #define MISC_E_FUSE_31_0_REG MISC_MEM_MAP(0x40)
0228 #define MISC_E_FUSE_63_32_REG MISC_MEM_MAP(0x44)
0229 #define MISC_E_FUSE_95_64_REG MISC_MEM_MAP(0x48)
0230 #define MISC_E_FUSE_127_96_REG MISC_MEM_MAP(0x4C)
0231 #define MISC_SOFTWARE_TEST_1_REG MISC_MEM_MAP(0x50)
0232 #define MISC_SOFTWARE_TEST_2_REG MISC_MEM_MAP(0x54)
0233
0234 #define MISC_SATA_POWER_MODE MISC_MEM_MAP(0x310)
0235
0236 #define MISC_USB_CFG_REG MISC_MEM_MAP(0x800)
0237 #define MISC_USB_STS_REG MISC_MEM_MAP(0x804)
0238 #define MISC_USBPHY00_CFG_REG MISC_MEM_MAP(0x808)
0239 #define MISC_USBPHY01_CFG_REG MISC_MEM_MAP(0x80c)
0240 #define MISC_USBPHY10_CFG_REG MISC_MEM_MAP(0x810)
0241 #define MISC_USBPHY11_CFG_REG MISC_MEM_MAP(0x814)
0242
0243 #define MISC_PCIEPHY_CMCTL(x) MISC_MEM_MAP(0x900 + (x) * 0x004)
0244 #define MISC_PCIEPHY_CTL(x) MISC_MEM_MAP(0x940 + (x) * 0x100)
0245 #define MISC_PCIE_AXIS_AWMISC(x) MISC_MEM_MAP(0x944 + (x) * 0x100)
0246 #define MISC_PCIE_AXIS_ARMISC(x) MISC_MEM_MAP(0x948 + (x) * 0x100)
0247 #define MISC_PCIE_AXIS_RMISC(x) MISC_MEM_MAP(0x94C + (x) * 0x100)
0248 #define MISC_PCIE_AXIS_BMISC(x) MISC_MEM_MAP(0x950 + (x) * 0x100)
0249 #define MISC_PCIE_AXIM_RMISC(x) MISC_MEM_MAP(0x954 + (x) * 0x100)
0250 #define MISC_PCIE_AXIM_BMISC(x) MISC_MEM_MAP(0x958 + (x) * 0x100)
0251 #define MISC_PCIE_CTRL(x) MISC_MEM_MAP(0x95C + (x) * 0x100)
0252 #define MISC_PCIE_PM_DEBUG(x) MISC_MEM_MAP(0x960 + (x) * 0x100)
0253 #define MISC_PCIE_RFC_DEBUG(x) MISC_MEM_MAP(0x964 + (x) * 0x100)
0254 #define MISC_PCIE_CXPL_DEBUGL(x) MISC_MEM_MAP(0x968 + (x) * 0x100)
0255 #define MISC_PCIE_CXPL_DEBUGH(x) MISC_MEM_MAP(0x96C + (x) * 0x100)
0256 #define MISC_PCIE_DIAG_DEBUGH(x) MISC_MEM_MAP(0x970 + (x) * 0x100)
0257 #define MISC_PCIE_W1CLR(x) MISC_MEM_MAP(0x974 + (x) * 0x100)
0258 #define MISC_PCIE_INT_MASK(x) MISC_MEM_MAP(0x978 + (x) * 0x100)
0259 #define MISC_PCIE_INT_STATUS(x) MISC_MEM_MAP(0x97C + (x) * 0x100)
0260
0261
0262
0263
0264 #define PMU_MEM_MAP(offs) (void __iomem *)(CNS3XXX_PM_BASE_VIRT + (offs))
0265
0266 #define PM_CLK_GATE_REG PMU_MEM_MAP(0x000)
0267 #define PM_SOFT_RST_REG PMU_MEM_MAP(0x004)
0268 #define PM_HS_CFG_REG PMU_MEM_MAP(0x008)
0269 #define PM_CACTIVE_STA_REG PMU_MEM_MAP(0x00C)
0270 #define PM_PWR_STA_REG PMU_MEM_MAP(0x010)
0271 #define PM_CLK_CTRL_REG PMU_MEM_MAP(0x014)
0272 #define PM_PLL_LCD_I2S_CTRL_REG PMU_MEM_MAP(0x018)
0273 #define PM_PLL_HM_PD_CTRL_REG PMU_MEM_MAP(0x01C)
0274 #define PM_REGULAT_CTRL_REG PMU_MEM_MAP(0x020)
0275 #define PM_WDT_CTRL_REG PMU_MEM_MAP(0x024)
0276 #define PM_WU_CTRL0_REG PMU_MEM_MAP(0x028)
0277 #define PM_WU_CTRL1_REG PMU_MEM_MAP(0x02C)
0278 #define PM_CSR_REG PMU_MEM_MAP(0x030)
0279
0280
0281 #define PM_CLK_GATE_REG_OFFSET_SDIO (25)
0282 #define PM_CLK_GATE_REG_OFFSET_GPU (24)
0283 #define PM_CLK_GATE_REG_OFFSET_CIM (23)
0284 #define PM_CLK_GATE_REG_OFFSET_LCDC (22)
0285 #define PM_CLK_GATE_REG_OFFSET_I2S (21)
0286 #define PM_CLK_GATE_REG_OFFSET_RAID (20)
0287 #define PM_CLK_GATE_REG_OFFSET_SATA (19)
0288 #define PM_CLK_GATE_REG_OFFSET_PCIE(x) (17 + (x))
0289 #define PM_CLK_GATE_REG_OFFSET_USB_HOST (16)
0290 #define PM_CLK_GATE_REG_OFFSET_USB_OTG (15)
0291 #define PM_CLK_GATE_REG_OFFSET_TIMER (14)
0292 #define PM_CLK_GATE_REG_OFFSET_CRYPTO (13)
0293 #define PM_CLK_GATE_REG_OFFSET_HCIE (12)
0294 #define PM_CLK_GATE_REG_OFFSET_SWITCH (11)
0295 #define PM_CLK_GATE_REG_OFFSET_GPIO (10)
0296 #define PM_CLK_GATE_REG_OFFSET_UART3 (9)
0297 #define PM_CLK_GATE_REG_OFFSET_UART2 (8)
0298 #define PM_CLK_GATE_REG_OFFSET_UART1 (7)
0299 #define PM_CLK_GATE_REG_OFFSET_RTC (5)
0300 #define PM_CLK_GATE_REG_OFFSET_GDMA (4)
0301 #define PM_CLK_GATE_REG_OFFSET_SPI_PCM_I2C (3)
0302 #define PM_CLK_GATE_REG_OFFSET_SMC_NFI (1)
0303 #define PM_CLK_GATE_REG_MASK (0x03FFFFBA)
0304
0305
0306 #define PM_SOFT_RST_REG_OFFST_WARM_RST_FLAG (31)
0307 #define PM_SOFT_RST_REG_OFFST_CPU1 (29)
0308 #define PM_SOFT_RST_REG_OFFST_CPU0 (28)
0309 #define PM_SOFT_RST_REG_OFFST_SDIO (25)
0310 #define PM_SOFT_RST_REG_OFFST_GPU (24)
0311 #define PM_SOFT_RST_REG_OFFST_CIM (23)
0312 #define PM_SOFT_RST_REG_OFFST_LCDC (22)
0313 #define PM_SOFT_RST_REG_OFFST_I2S (21)
0314 #define PM_SOFT_RST_REG_OFFST_RAID (20)
0315 #define PM_SOFT_RST_REG_OFFST_SATA (19)
0316 #define PM_SOFT_RST_REG_OFFST_PCIE(x) (17 + (x))
0317 #define PM_SOFT_RST_REG_OFFST_USB_HOST (16)
0318 #define PM_SOFT_RST_REG_OFFST_USB_OTG (15)
0319 #define PM_SOFT_RST_REG_OFFST_TIMER (14)
0320 #define PM_SOFT_RST_REG_OFFST_CRYPTO (13)
0321 #define PM_SOFT_RST_REG_OFFST_HCIE (12)
0322 #define PM_SOFT_RST_REG_OFFST_SWITCH (11)
0323 #define PM_SOFT_RST_REG_OFFST_GPIO (10)
0324 #define PM_SOFT_RST_REG_OFFST_UART3 (9)
0325 #define PM_SOFT_RST_REG_OFFST_UART2 (8)
0326 #define PM_SOFT_RST_REG_OFFST_UART1 (7)
0327 #define PM_SOFT_RST_REG_OFFST_RTC (5)
0328 #define PM_SOFT_RST_REG_OFFST_GDMA (4)
0329 #define PM_SOFT_RST_REG_OFFST_SPI_PCM_I2C (3)
0330 #define PM_SOFT_RST_REG_OFFST_DMC (2)
0331 #define PM_SOFT_RST_REG_OFFST_SMC_NFI (1)
0332 #define PM_SOFT_RST_REG_OFFST_GLOBAL (0)
0333 #define PM_SOFT_RST_REG_MASK (0xF3FFFFBF)
0334
0335
0336 #define PM_HS_CFG_REG_OFFSET_SDIO (25)
0337 #define PM_HS_CFG_REG_OFFSET_GPU (24)
0338 #define PM_HS_CFG_REG_OFFSET_CIM (23)
0339 #define PM_HS_CFG_REG_OFFSET_LCDC (22)
0340 #define PM_HS_CFG_REG_OFFSET_I2S (21)
0341 #define PM_HS_CFG_REG_OFFSET_RAID (20)
0342 #define PM_HS_CFG_REG_OFFSET_SATA (19)
0343 #define PM_HS_CFG_REG_OFFSET_PCIE1 (18)
0344 #define PM_HS_CFG_REG_OFFSET_PCIE0 (17)
0345 #define PM_HS_CFG_REG_OFFSET_USB_HOST (16)
0346 #define PM_HS_CFG_REG_OFFSET_USB_OTG (15)
0347 #define PM_HS_CFG_REG_OFFSET_TIMER (14)
0348 #define PM_HS_CFG_REG_OFFSET_CRYPTO (13)
0349 #define PM_HS_CFG_REG_OFFSET_HCIE (12)
0350 #define PM_HS_CFG_REG_OFFSET_SWITCH (11)
0351 #define PM_HS_CFG_REG_OFFSET_GPIO (10)
0352 #define PM_HS_CFG_REG_OFFSET_UART3 (9)
0353 #define PM_HS_CFG_REG_OFFSET_UART2 (8)
0354 #define PM_HS_CFG_REG_OFFSET_UART1 (7)
0355 #define PM_HS_CFG_REG_OFFSET_RTC (5)
0356 #define PM_HS_CFG_REG_OFFSET_GDMA (4)
0357 #define PM_HS_CFG_REG_OFFSET_SPI_PCM_I2S (3)
0358 #define PM_HS_CFG_REG_OFFSET_DMC (2)
0359 #define PM_HS_CFG_REG_OFFSET_SMC_NFI (1)
0360 #define PM_HS_CFG_REG_MASK (0x03FFFFBE)
0361 #define PM_HS_CFG_REG_MASK_SUPPORT (0x01100806)
0362
0363
0364 #define PM_CACTIVE_STA_REG_OFFSET_SDIO (25)
0365 #define PM_CACTIVE_STA_REG_OFFSET_GPU (24)
0366 #define PM_CACTIVE_STA_REG_OFFSET_CIM (23)
0367 #define PM_CACTIVE_STA_REG_OFFSET_LCDC (22)
0368 #define PM_CACTIVE_STA_REG_OFFSET_I2S (21)
0369 #define PM_CACTIVE_STA_REG_OFFSET_RAID (20)
0370 #define PM_CACTIVE_STA_REG_OFFSET_SATA (19)
0371 #define PM_CACTIVE_STA_REG_OFFSET_PCIE1 (18)
0372 #define PM_CACTIVE_STA_REG_OFFSET_PCIE0 (17)
0373 #define PM_CACTIVE_STA_REG_OFFSET_USB_HOST (16)
0374 #define PM_CACTIVE_STA_REG_OFFSET_USB_OTG (15)
0375 #define PM_CACTIVE_STA_REG_OFFSET_TIMER (14)
0376 #define PM_CACTIVE_STA_REG_OFFSET_CRYPTO (13)
0377 #define PM_CACTIVE_STA_REG_OFFSET_HCIE (12)
0378 #define PM_CACTIVE_STA_REG_OFFSET_SWITCH (11)
0379 #define PM_CACTIVE_STA_REG_OFFSET_GPIO (10)
0380 #define PM_CACTIVE_STA_REG_OFFSET_UART3 (9)
0381 #define PM_CACTIVE_STA_REG_OFFSET_UART2 (8)
0382 #define PM_CACTIVE_STA_REG_OFFSET_UART1 (7)
0383 #define PM_CACTIVE_STA_REG_OFFSET_RTC (5)
0384 #define PM_CACTIVE_STA_REG_OFFSET_GDMA (4)
0385 #define PM_CACTIVE_STA_REG_OFFSET_SPI_PCM_I2S (3)
0386 #define PM_CACTIVE_STA_REG_OFFSET_DMC (2)
0387 #define PM_CACTIVE_STA_REG_OFFSET_SMC_NFI (1)
0388 #define PM_CACTIVE_STA_REG_MASK (0x03FFFFBE)
0389
0390
0391 #define PM_PWR_STA_REG_REG_OFFSET_SDIO (25)
0392 #define PM_PWR_STA_REG_REG_OFFSET_GPU (24)
0393 #define PM_PWR_STA_REG_REG_OFFSET_CIM (23)
0394 #define PM_PWR_STA_REG_REG_OFFSET_LCDC (22)
0395 #define PM_PWR_STA_REG_REG_OFFSET_I2S (21)
0396 #define PM_PWR_STA_REG_REG_OFFSET_RAID (20)
0397 #define PM_PWR_STA_REG_REG_OFFSET_SATA (19)
0398 #define PM_PWR_STA_REG_REG_OFFSET_PCIE1 (18)
0399 #define PM_PWR_STA_REG_REG_OFFSET_PCIE0 (17)
0400 #define PM_PWR_STA_REG_REG_OFFSET_USB_HOST (16)
0401 #define PM_PWR_STA_REG_REG_OFFSET_USB_OTG (15)
0402 #define PM_PWR_STA_REG_REG_OFFSET_TIMER (14)
0403 #define PM_PWR_STA_REG_REG_OFFSET_CRYPTO (13)
0404 #define PM_PWR_STA_REG_REG_OFFSET_HCIE (12)
0405 #define PM_PWR_STA_REG_REG_OFFSET_SWITCH (11)
0406 #define PM_PWR_STA_REG_REG_OFFSET_GPIO (10)
0407 #define PM_PWR_STA_REG_REG_OFFSET_UART3 (9)
0408 #define PM_PWR_STA_REG_REG_OFFSET_UART2 (8)
0409 #define PM_PWR_STA_REG_REG_OFFSET_UART1 (7)
0410 #define PM_PWR_STA_REG_REG_OFFSET_RTC (5)
0411 #define PM_PWR_STA_REG_REG_OFFSET_GDMA (4)
0412 #define PM_PWR_STA_REG_REG_OFFSET_SPI_PCM_I2S (3)
0413 #define PM_PWR_STA_REG_REG_OFFSET_DMC (2)
0414 #define PM_PWR_STA_REG_REG_OFFSET_SMC_NFI (1)
0415 #define PM_PWR_STA_REG_REG_MASK (0x03FFFFBE)
0416
0417
0418 #define PM_CLK_CTRL_REG_OFFSET_I2S_MCLK (31)
0419 #define PM_CLK_CTRL_REG_OFFSET_DDR2_CHG_EN (30)
0420 #define PM_CLK_CTRL_REG_OFFSET_PCIE_REF1_EN (29)
0421 #define PM_CLK_CTRL_REG_OFFSET_PCIE_REF0_EN (28)
0422 #define PM_CLK_CTRL_REG_OFFSET_TIMER_SIM_MODE (27)
0423 #define PM_CLK_CTRL_REG_OFFSET_I2SCLK_DIV (24)
0424 #define PM_CLK_CTRL_REG_OFFSET_I2SCLK_SEL (22)
0425 #define PM_CLK_CTRL_REG_OFFSET_CLKOUT_DIV (20)
0426 #define PM_CLK_CTRL_REG_OFFSET_CLKOUT_SEL (16)
0427 #define PM_CLK_CTRL_REG_OFFSET_MDC_DIV (14)
0428 #define PM_CLK_CTRL_REG_OFFSET_CRYPTO_CLK_SEL (12)
0429 #define PM_CLK_CTRL_REG_OFFSET_CPU_PWR_MODE (9)
0430 #define PM_CLK_CTRL_REG_OFFSET_PLL_DDR2_SEL (7)
0431 #define PM_CLK_CTRL_REG_OFFSET_DIV_IMMEDIATE (6)
0432 #define PM_CLK_CTRL_REG_OFFSET_CPU_CLK_DIV (4)
0433 #define PM_CLK_CTRL_REG_OFFSET_PLL_CPU_SEL (0)
0434
0435 #define PM_CPU_CLK_DIV(DIV) { \
0436 PM_CLK_CTRL_REG &= ~((0x3) << PM_CLK_CTRL_REG_OFFSET_CPU_CLK_DIV); \
0437 PM_CLK_CTRL_REG |= (((DIV)&0x3) << PM_CLK_CTRL_REG_OFFSET_CPU_CLK_DIV); \
0438 }
0439
0440 #define PM_PLL_CPU_SEL(CPU) { \
0441 PM_CLK_CTRL_REG &= ~((0xF) << PM_CLK_CTRL_REG_OFFSET_PLL_CPU_SEL); \
0442 PM_CLK_CTRL_REG |= (((CPU)&0xF) << PM_CLK_CTRL_REG_OFFSET_PLL_CPU_SEL); \
0443 }
0444
0445
0446 #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_MCLK_SMC_DIV (22)
0447 #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_R_SEL (17)
0448 #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_PLL_LCD_P (11)
0449 #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_PLL_LCD_M (3)
0450 #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_PLL_LCD_S (0)
0451
0452
0453 #define PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY1 (11)
0454 #define PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY0 (10)
0455 #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_I2SCD (6)
0456 #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_I2S (5)
0457 #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_LCD (4)
0458 #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_USB (3)
0459 #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_RGMII (2)
0460 #define PM_PLL_HM_PD_CTRL_REG_MASK (0x00000C7C)
0461
0462
0463 #define PM_WDT_CTRL_REG_OFFSET_RESET_CPU_ONLY (0)
0464
0465
0466 #define PM_CSR_REG_OFFSET_CSR_EN (30)
0467 #define PM_CSR_REG_OFFSET_CSR_NUM (0)
0468
0469 #define CNS3XXX_PWR_CLK_EN(BLOCK) (0x1<<PM_CLK_GATE_REG_OFFSET_##BLOCK)
0470
0471
0472 #define CNS3XXX_PWR_SOFTWARE_RST(BLOCK) (0x1<<PM_SOFT_RST_REG_OFFST_##BLOCK)
0473
0474
0475
0476
0477
0478 #define CNS3XXX_PWR_CPU_MODE_DFS (0)
0479 #define CNS3XXX_PWR_CPU_MODE_IDLE (1)
0480 #define CNS3XXX_PWR_CPU_MODE_HALT (2)
0481 #define CNS3XXX_PWR_CPU_MODE_DOZE (3)
0482 #define CNS3XXX_PWR_CPU_MODE_SLEEP (4)
0483 #define CNS3XXX_PWR_CPU_MODE_HIBERNATE (5)
0484
0485 #define CNS3XXX_PWR_PLL(BLOCK) (0x1<<PM_PLL_HM_PD_CTRL_REG_OFFSET_##BLOCK)
0486 #define CNS3XXX_PWR_PLL_ALL PM_PLL_HM_PD_CTRL_REG_MASK
0487
0488
0489 #define CNS3XXX_PWR_PLL_CPU_300MHZ (0)
0490 #define CNS3XXX_PWR_PLL_CPU_333MHZ (1)
0491 #define CNS3XXX_PWR_PLL_CPU_366MHZ (2)
0492 #define CNS3XXX_PWR_PLL_CPU_400MHZ (3)
0493 #define CNS3XXX_PWR_PLL_CPU_433MHZ (4)
0494 #define CNS3XXX_PWR_PLL_CPU_466MHZ (5)
0495 #define CNS3XXX_PWR_PLL_CPU_500MHZ (6)
0496 #define CNS3XXX_PWR_PLL_CPU_533MHZ (7)
0497 #define CNS3XXX_PWR_PLL_CPU_566MHZ (8)
0498 #define CNS3XXX_PWR_PLL_CPU_600MHZ (9)
0499 #define CNS3XXX_PWR_PLL_CPU_633MHZ (10)
0500 #define CNS3XXX_PWR_PLL_CPU_666MHZ (11)
0501 #define CNS3XXX_PWR_PLL_CPU_700MHZ (12)
0502
0503 #define CNS3XXX_PWR_CPU_CLK_DIV_BY1 (0)
0504 #define CNS3XXX_PWR_CPU_CLK_DIV_BY2 (1)
0505 #define CNS3XXX_PWR_CPU_CLK_DIV_BY4 (2)
0506
0507
0508 #define CNS3XXX_PWR_PLL_DDR2_200MHZ (0)
0509 #define CNS3XXX_PWR_PLL_DDR2_266MHZ (1)
0510 #define CNS3XXX_PWR_PLL_DDR2_333MHZ (2)
0511 #define CNS3XXX_PWR_PLL_DDR2_400MHZ (3)
0512
0513 void cns3xxx_pwr_soft_rst(unsigned int block);
0514 void cns3xxx_pwr_clk_en(unsigned int block);
0515 int cns3xxx_cpu_clock(void);
0516
0517
0518
0519
0520 #define IRQ_TC11MP_GIC_START 32
0521
0522 #define IRQ_CNS3XXX_PMU (IRQ_TC11MP_GIC_START + 0)
0523 #define IRQ_CNS3XXX_SDIO (IRQ_TC11MP_GIC_START + 1)
0524 #define IRQ_CNS3XXX_L2CC (IRQ_TC11MP_GIC_START + 2)
0525 #define IRQ_CNS3XXX_RTC (IRQ_TC11MP_GIC_START + 3)
0526 #define IRQ_CNS3XXX_I2S (IRQ_TC11MP_GIC_START + 4)
0527 #define IRQ_CNS3XXX_PCM (IRQ_TC11MP_GIC_START + 5)
0528 #define IRQ_CNS3XXX_SPI (IRQ_TC11MP_GIC_START + 6)
0529 #define IRQ_CNS3XXX_I2C (IRQ_TC11MP_GIC_START + 7)
0530 #define IRQ_CNS3XXX_CIM (IRQ_TC11MP_GIC_START + 8)
0531 #define IRQ_CNS3XXX_GPU (IRQ_TC11MP_GIC_START + 9)
0532 #define IRQ_CNS3XXX_LCD (IRQ_TC11MP_GIC_START + 10)
0533 #define IRQ_CNS3XXX_GPIOA (IRQ_TC11MP_GIC_START + 11)
0534 #define IRQ_CNS3XXX_GPIOB (IRQ_TC11MP_GIC_START + 12)
0535 #define IRQ_CNS3XXX_UART0 (IRQ_TC11MP_GIC_START + 13)
0536 #define IRQ_CNS3XXX_UART1 (IRQ_TC11MP_GIC_START + 14)
0537 #define IRQ_CNS3XXX_UART2 (IRQ_TC11MP_GIC_START + 15)
0538 #define IRQ_CNS3XXX_ARM11 (IRQ_TC11MP_GIC_START + 16)
0539
0540 #define IRQ_CNS3XXX_SW_STATUS (IRQ_TC11MP_GIC_START + 17)
0541 #define IRQ_CNS3XXX_SW_R0TXC (IRQ_TC11MP_GIC_START + 18)
0542 #define IRQ_CNS3XXX_SW_R0RXC (IRQ_TC11MP_GIC_START + 19)
0543 #define IRQ_CNS3XXX_SW_R0QE (IRQ_TC11MP_GIC_START + 20)
0544 #define IRQ_CNS3XXX_SW_R0QF (IRQ_TC11MP_GIC_START + 21)
0545 #define IRQ_CNS3XXX_SW_R1TXC (IRQ_TC11MP_GIC_START + 22)
0546 #define IRQ_CNS3XXX_SW_R1RXC (IRQ_TC11MP_GIC_START + 23)
0547 #define IRQ_CNS3XXX_SW_R1QE (IRQ_TC11MP_GIC_START + 24)
0548 #define IRQ_CNS3XXX_SW_R1QF (IRQ_TC11MP_GIC_START + 25)
0549 #define IRQ_CNS3XXX_SW_PPE (IRQ_TC11MP_GIC_START + 26)
0550
0551 #define IRQ_CNS3XXX_CRYPTO (IRQ_TC11MP_GIC_START + 27)
0552 #define IRQ_CNS3XXX_HCIE (IRQ_TC11MP_GIC_START + 28)
0553 #define IRQ_CNS3XXX_PCIE0_DEVICE (IRQ_TC11MP_GIC_START + 29)
0554 #define IRQ_CNS3XXX_PCIE1_DEVICE (IRQ_TC11MP_GIC_START + 30)
0555 #define IRQ_CNS3XXX_USB_OTG (IRQ_TC11MP_GIC_START + 31)
0556 #define IRQ_CNS3XXX_USB_EHCI (IRQ_TC11MP_GIC_START + 32)
0557 #define IRQ_CNS3XXX_SATA (IRQ_TC11MP_GIC_START + 33)
0558 #define IRQ_CNS3XXX_RAID (IRQ_TC11MP_GIC_START + 34)
0559 #define IRQ_CNS3XXX_SMC (IRQ_TC11MP_GIC_START + 35)
0560
0561 #define IRQ_CNS3XXX_DMAC_ABORT (IRQ_TC11MP_GIC_START + 36)
0562 #define IRQ_CNS3XXX_DMAC0 (IRQ_TC11MP_GIC_START + 37)
0563 #define IRQ_CNS3XXX_DMAC1 (IRQ_TC11MP_GIC_START + 38)
0564 #define IRQ_CNS3XXX_DMAC2 (IRQ_TC11MP_GIC_START + 39)
0565 #define IRQ_CNS3XXX_DMAC3 (IRQ_TC11MP_GIC_START + 40)
0566 #define IRQ_CNS3XXX_DMAC4 (IRQ_TC11MP_GIC_START + 41)
0567 #define IRQ_CNS3XXX_DMAC5 (IRQ_TC11MP_GIC_START + 42)
0568 #define IRQ_CNS3XXX_DMAC6 (IRQ_TC11MP_GIC_START + 43)
0569 #define IRQ_CNS3XXX_DMAC7 (IRQ_TC11MP_GIC_START + 44)
0570 #define IRQ_CNS3XXX_DMAC8 (IRQ_TC11MP_GIC_START + 45)
0571 #define IRQ_CNS3XXX_DMAC9 (IRQ_TC11MP_GIC_START + 46)
0572 #define IRQ_CNS3XXX_DMAC10 (IRQ_TC11MP_GIC_START + 47)
0573 #define IRQ_CNS3XXX_DMAC11 (IRQ_TC11MP_GIC_START + 48)
0574 #define IRQ_CNS3XXX_DMAC12 (IRQ_TC11MP_GIC_START + 49)
0575 #define IRQ_CNS3XXX_DMAC13 (IRQ_TC11MP_GIC_START + 50)
0576 #define IRQ_CNS3XXX_DMAC14 (IRQ_TC11MP_GIC_START + 51)
0577 #define IRQ_CNS3XXX_DMAC15 (IRQ_TC11MP_GIC_START + 52)
0578 #define IRQ_CNS3XXX_DMAC16 (IRQ_TC11MP_GIC_START + 53)
0579 #define IRQ_CNS3XXX_DMAC17 (IRQ_TC11MP_GIC_START + 54)
0580
0581 #define IRQ_CNS3XXX_PCIE0_RC (IRQ_TC11MP_GIC_START + 55)
0582 #define IRQ_CNS3XXX_PCIE1_RC (IRQ_TC11MP_GIC_START + 56)
0583 #define IRQ_CNS3XXX_TIMER0 (IRQ_TC11MP_GIC_START + 57)
0584 #define IRQ_CNS3XXX_TIMER1 (IRQ_TC11MP_GIC_START + 58)
0585 #define IRQ_CNS3XXX_USB_OHCI (IRQ_TC11MP_GIC_START + 59)
0586 #define IRQ_CNS3XXX_TIMER2 (IRQ_TC11MP_GIC_START + 60)
0587 #define IRQ_CNS3XXX_EXTERNAL_PIN0 (IRQ_TC11MP_GIC_START + 61)
0588 #define IRQ_CNS3XXX_EXTERNAL_PIN1 (IRQ_TC11MP_GIC_START + 62)
0589 #define IRQ_CNS3XXX_EXTERNAL_PIN2 (IRQ_TC11MP_GIC_START + 63)
0590
0591 #define NR_IRQS_CNS3XXX (IRQ_TC11MP_GIC_START + 64)
0592
0593 #endif