^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright 2008 Cavium Networks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #ifndef __MACH_BOARD_CNS3XXXH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define __MACH_BOARD_CNS3XXXH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) * Memory map
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define CNS3XXX_FLASH_BASE 0x10000000 /* Flash/SRAM Memory Bank 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #define CNS3XXX_FLASH_SIZE SZ_256M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define CNS3XXX_DDR2SDRAM_BASE 0x20000000 /* DDR2 SDRAM Memory */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define CNS3XXX_SPI_FLASH_BASE 0x60000000 /* SPI Serial Flash Memory */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define CNS3XXX_SWITCH_BASE 0x70000000 /* Switch and HNAT Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define CNS3XXX_PPE_BASE 0x70001000 /* HANT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define CNS3XXX_EMBEDDED_SRAM_BASE 0x70002000 /* HANT Embedded SRAM */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define CNS3XXX_SSP_BASE 0x71000000 /* Synchronous Serial Port - SPI/PCM/I2C */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define CNS3XXX_DMC_BASE 0x72000000 /* DMC Control (DDR2 SDRAM) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define CNS3XXX_SMC_BASE 0x73000000 /* SMC Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define SMC_MEMC_STATUS_OFFSET 0x000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #define SMC_MEMIF_CFG_OFFSET 0x004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define SMC_MEMC_CFG_SET_OFFSET 0x008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define SMC_MEMC_CFG_CLR_OFFSET 0x00C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define SMC_DIRECT_CMD_OFFSET 0x010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) #define SMC_SET_CYCLES_OFFSET 0x014
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #define SMC_SET_OPMODE_OFFSET 0x018
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) #define SMC_REFRESH_PERIOD_0_OFFSET 0x020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #define SMC_REFRESH_PERIOD_1_OFFSET 0x024
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #define SMC_SRAM_CYCLES0_0_OFFSET 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #define SMC_NAND_CYCLES0_0_OFFSET 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define SMC_OPMODE0_0_OFFSET 0x104
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define SMC_SRAM_CYCLES0_1_OFFSET 0x120
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define SMC_NAND_CYCLES0_1_OFFSET 0x120
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define SMC_OPMODE0_1_OFFSET 0x124
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define SMC_USER_STATUS_OFFSET 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #define SMC_USER_CONFIG_OFFSET 0x204
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define SMC_ECC_STATUS_OFFSET 0x300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #define SMC_ECC_MEMCFG_OFFSET 0x304
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define SMC_ECC_MEMCOMMAND1_OFFSET 0x308
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define SMC_ECC_MEMCOMMAND2_OFFSET 0x30C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define SMC_ECC_ADDR0_OFFSET 0x310
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define SMC_ECC_ADDR1_OFFSET 0x314
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #define SMC_ECC_VALUE0_OFFSET 0x318
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #define SMC_ECC_VALUE1_OFFSET 0x31C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define SMC_ECC_VALUE2_OFFSET 0x320
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define SMC_ECC_VALUE3_OFFSET 0x324
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #define SMC_PERIPH_ID_0_OFFSET 0xFE0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) #define SMC_PERIPH_ID_1_OFFSET 0xFE4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) #define SMC_PERIPH_ID_2_OFFSET 0xFE8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) #define SMC_PERIPH_ID_3_OFFSET 0xFEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) #define SMC_PCELL_ID_0_OFFSET 0xFF0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) #define SMC_PCELL_ID_1_OFFSET 0xFF4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #define SMC_PCELL_ID_2_OFFSET 0xFF8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) #define SMC_PCELL_ID_3_OFFSET 0xFFC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #define CNS3XXX_GPIOA_BASE 0x74000000 /* GPIO port A */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #define CNS3XXX_GPIOB_BASE 0x74800000 /* GPIO port B */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) #define CNS3XXX_RTC_BASE 0x75000000 /* Real Time Clock */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) #define RTC_SEC_OFFSET 0x00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) #define RTC_MIN_OFFSET 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) #define RTC_HOUR_OFFSET 0x08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) #define RTC_DAY_OFFSET 0x0C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) #define RTC_SEC_ALM_OFFSET 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) #define RTC_MIN_ALM_OFFSET 0x14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) #define RTC_HOUR_ALM_OFFSET 0x18
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) #define RTC_REC_OFFSET 0x1C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) #define RTC_CTRL_OFFSET 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) #define RTC_INTR_STS_OFFSET 0x34
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) #define CNS3XXX_MISC_BASE 0x76000000 /* Misc Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) #define CNS3XXX_MISC_BASE_VIRT 0xFB000000 /* Misc Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) #define CNS3XXX_PM_BASE 0x77000000 /* Power Management Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) #define CNS3XXX_PM_BASE_VIRT 0xFB001000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) #define PM_CLK_GATE_OFFSET 0x00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) #define PM_SOFT_RST_OFFSET 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) #define PM_HS_CFG_OFFSET 0x08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) #define PM_CACTIVE_STA_OFFSET 0x0C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) #define PM_PWR_STA_OFFSET 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) #define PM_SYS_CLK_CTRL_OFFSET 0x14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) #define PM_PLL_LCD_I2S_CTRL_OFFSET 0x18
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) #define PM_PLL_HM_PD_OFFSET 0x1C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) #define CNS3XXX_UART0_BASE 0x78000000 /* UART 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) #define CNS3XXX_UART0_BASE_VIRT 0xFB002000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) #define CNS3XXX_UART1_BASE 0x78400000 /* UART 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) #define CNS3XXX_UART2_BASE 0x78800000 /* UART 2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) #define CNS3XXX_DMAC_BASE 0x79000000 /* Generic DMA Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) #define CNS3XXX_CORESIGHT_BASE 0x7A000000 /* CoreSight */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) #define CNS3XXX_CRYPTO_BASE 0x7B000000 /* Crypto */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) #define CNS3XXX_I2S_BASE 0x7C000000 /* I2S */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) #define CNS3XXX_TIMER1_2_3_BASE 0x7C800000 /* Timer */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) #define CNS3XXX_TIMER1_2_3_BASE_VIRT 0xFB003000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) #define TIMER1_COUNTER_OFFSET 0x00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) #define TIMER1_AUTO_RELOAD_OFFSET 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) #define TIMER1_MATCH_V1_OFFSET 0x08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) #define TIMER1_MATCH_V2_OFFSET 0x0C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) #define TIMER2_COUNTER_OFFSET 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) #define TIMER2_AUTO_RELOAD_OFFSET 0x14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) #define TIMER2_MATCH_V1_OFFSET 0x18
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #define TIMER2_MATCH_V2_OFFSET 0x1C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #define TIMER1_2_CONTROL_OFFSET 0x30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define TIMER1_2_INTERRUPT_STATUS_OFFSET 0x34
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) #define TIMER1_2_INTERRUPT_MASK_OFFSET 0x38
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #define TIMER_FREERUN_OFFSET 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) #define TIMER_FREERUN_CONTROL_OFFSET 0x44
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) #define CNS3XXX_HCIE_BASE 0x7D000000 /* HCIE Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) #define CNS3XXX_RAID_BASE 0x7E000000 /* RAID Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) #define CNS3XXX_AXI_IXC_BASE 0x7F000000 /* AXI IXC */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) #define CNS3XXX_CLCD_BASE 0x80000000 /* LCD Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) #define CNS3XXX_USBOTG_BASE 0x81000000 /* USB OTG Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) #define CNS3XXX_USB_BASE 0x82000000 /* USB Host Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) #define CNS3XXX_SATA2_BASE 0x83000000 /* SATA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) #define CNS3XXX_SATA2_SIZE SZ_16M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) #define CNS3XXX_CAMERA_BASE 0x84000000 /* Camera Interface */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) #define CNS3XXX_SDIO_BASE 0x85000000 /* SDIO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) #define CNS3XXX_I2S_TDM_BASE 0x86000000 /* I2S TDM */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) #define CNS3XXX_2DG_BASE 0x87000000 /* 2D Graphic Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) #define CNS3XXX_USB_OHCI_BASE 0x88000000 /* USB OHCI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) #define CNS3XXX_L2C_BASE 0x92000000 /* L2 Cache Control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) #define CNS3XXX_PCIE0_MEM_BASE 0xA0000000 /* PCIe Port 0 IO/Memory Space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) #define CNS3XXX_PCIE0_HOST_BASE 0xAB000000 /* PCIe Port 0 RC Base */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) #define CNS3XXX_PCIE0_HOST_BASE_VIRT 0xE1000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) #define CNS3XXX_PCIE0_IO_BASE 0xAC000000 /* PCIe Port 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) #define CNS3XXX_PCIE0_CFG0_BASE 0xAD000000 /* PCIe Port 0 CFG Type 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) #define CNS3XXX_PCIE0_CFG0_BASE_VIRT 0xE3000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) #define CNS3XXX_PCIE0_CFG1_BASE 0xAE000000 /* PCIe Port 0 CFG Type 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) #define CNS3XXX_PCIE0_CFG1_BASE_VIRT 0xE4000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) #define CNS3XXX_PCIE0_MSG_BASE 0xAF000000 /* PCIe Port 0 Message Space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) #define CNS3XXX_PCIE1_MEM_BASE 0xB0000000 /* PCIe Port 1 IO/Memory Space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) #define CNS3XXX_PCIE1_HOST_BASE 0xBB000000 /* PCIe Port 1 RC Base */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) #define CNS3XXX_PCIE1_HOST_BASE_VIRT 0xE9000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) #define CNS3XXX_PCIE1_IO_BASE 0xBC000000 /* PCIe Port 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) #define CNS3XXX_PCIE1_CFG0_BASE 0xBD000000 /* PCIe Port 1 CFG Type 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) #define CNS3XXX_PCIE1_CFG0_BASE_VIRT 0xEB000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) #define CNS3XXX_PCIE1_CFG1_BASE 0xBE000000 /* PCIe Port 1 CFG Type 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) #define CNS3XXX_PCIE1_CFG1_BASE_VIRT 0xEC000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) #define CNS3XXX_PCIE1_MSG_BASE 0xBF000000 /* PCIe Port 1 Message Space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) * Testchip peripheral and fpga gic regions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) #define CNS3XXX_TC11MP_SCU_BASE 0x90000000 /* IRQ, Test chip */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) #define CNS3XXX_TC11MP_SCU_BASE_VIRT 0xFB004000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) #define CNS3XXX_TC11MP_GIC_CPU_BASE 0x90000100 /* Test chip interrupt controller CPU interface */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) #define CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) #define CNS3XXX_TC11MP_TWD_BASE 0x90000600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) #define CNS3XXX_TC11MP_TWD_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x600)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) #define CNS3XXX_TC11MP_GIC_DIST_BASE 0x90001000 /* Test chip interrupt controller distributor */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) #define CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x1000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) #define CNS3XXX_TC11MP_L220_BASE 0x92002000 /* L220 registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) * Misc block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) #define MISC_MEM_MAP(offs) (void __iomem *)(CNS3XXX_MISC_BASE_VIRT + (offs))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) #define MISC_MEMORY_REMAP_REG MISC_MEM_MAP(0x00)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) #define MISC_CHIP_CONFIG_REG MISC_MEM_MAP(0x04)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) #define MISC_DEBUG_PROBE_DATA_REG MISC_MEM_MAP(0x08)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) #define MISC_DEBUG_PROBE_SELECTION_REG MISC_MEM_MAP(0x0C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) #define MISC_IO_PIN_FUNC_SELECTION_REG MISC_MEM_MAP(0x10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) #define MISC_GPIOA_PIN_ENABLE_REG MISC_MEM_MAP(0x14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) #define MISC_GPIOB_PIN_ENABLE_REG MISC_MEM_MAP(0x18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) #define MISC_IO_PAD_DRIVE_STRENGTH_CTRL_A MISC_MEM_MAP(0x1C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) #define MISC_IO_PAD_DRIVE_STRENGTH_CTRL_B MISC_MEM_MAP(0x20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) #define MISC_GPIOA_15_0_PULL_CTRL_REG MISC_MEM_MAP(0x24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) #define MISC_GPIOA_16_31_PULL_CTRL_REG MISC_MEM_MAP(0x28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) #define MISC_GPIOB_15_0_PULL_CTRL_REG MISC_MEM_MAP(0x2C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) #define MISC_GPIOB_16_31_PULL_CTRL_REG MISC_MEM_MAP(0x30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) #define MISC_IO_PULL_CTRL_REG MISC_MEM_MAP(0x34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) #define MISC_E_FUSE_31_0_REG MISC_MEM_MAP(0x40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) #define MISC_E_FUSE_63_32_REG MISC_MEM_MAP(0x44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) #define MISC_E_FUSE_95_64_REG MISC_MEM_MAP(0x48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) #define MISC_E_FUSE_127_96_REG MISC_MEM_MAP(0x4C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) #define MISC_SOFTWARE_TEST_1_REG MISC_MEM_MAP(0x50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) #define MISC_SOFTWARE_TEST_2_REG MISC_MEM_MAP(0x54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) #define MISC_SATA_POWER_MODE MISC_MEM_MAP(0x310)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) #define MISC_USB_CFG_REG MISC_MEM_MAP(0x800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) #define MISC_USB_STS_REG MISC_MEM_MAP(0x804)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) #define MISC_USBPHY00_CFG_REG MISC_MEM_MAP(0x808)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) #define MISC_USBPHY01_CFG_REG MISC_MEM_MAP(0x80c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) #define MISC_USBPHY10_CFG_REG MISC_MEM_MAP(0x810)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) #define MISC_USBPHY11_CFG_REG MISC_MEM_MAP(0x814)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) #define MISC_PCIEPHY_CMCTL(x) MISC_MEM_MAP(0x900 + (x) * 0x004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) #define MISC_PCIEPHY_CTL(x) MISC_MEM_MAP(0x940 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) #define MISC_PCIE_AXIS_AWMISC(x) MISC_MEM_MAP(0x944 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) #define MISC_PCIE_AXIS_ARMISC(x) MISC_MEM_MAP(0x948 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) #define MISC_PCIE_AXIS_RMISC(x) MISC_MEM_MAP(0x94C + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) #define MISC_PCIE_AXIS_BMISC(x) MISC_MEM_MAP(0x950 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) #define MISC_PCIE_AXIM_RMISC(x) MISC_MEM_MAP(0x954 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) #define MISC_PCIE_AXIM_BMISC(x) MISC_MEM_MAP(0x958 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) #define MISC_PCIE_CTRL(x) MISC_MEM_MAP(0x95C + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) #define MISC_PCIE_PM_DEBUG(x) MISC_MEM_MAP(0x960 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) #define MISC_PCIE_RFC_DEBUG(x) MISC_MEM_MAP(0x964 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) #define MISC_PCIE_CXPL_DEBUGL(x) MISC_MEM_MAP(0x968 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) #define MISC_PCIE_CXPL_DEBUGH(x) MISC_MEM_MAP(0x96C + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) #define MISC_PCIE_DIAG_DEBUGH(x) MISC_MEM_MAP(0x970 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) #define MISC_PCIE_W1CLR(x) MISC_MEM_MAP(0x974 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) #define MISC_PCIE_INT_MASK(x) MISC_MEM_MAP(0x978 + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) #define MISC_PCIE_INT_STATUS(x) MISC_MEM_MAP(0x97C + (x) * 0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) * Power management and clock control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) #define PMU_MEM_MAP(offs) (void __iomem *)(CNS3XXX_PM_BASE_VIRT + (offs))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) #define PM_CLK_GATE_REG PMU_MEM_MAP(0x000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) #define PM_SOFT_RST_REG PMU_MEM_MAP(0x004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) #define PM_HS_CFG_REG PMU_MEM_MAP(0x008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) #define PM_CACTIVE_STA_REG PMU_MEM_MAP(0x00C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) #define PM_PWR_STA_REG PMU_MEM_MAP(0x010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) #define PM_CLK_CTRL_REG PMU_MEM_MAP(0x014)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) #define PM_PLL_LCD_I2S_CTRL_REG PMU_MEM_MAP(0x018)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) #define PM_PLL_HM_PD_CTRL_REG PMU_MEM_MAP(0x01C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) #define PM_REGULAT_CTRL_REG PMU_MEM_MAP(0x020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) #define PM_WDT_CTRL_REG PMU_MEM_MAP(0x024)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) #define PM_WU_CTRL0_REG PMU_MEM_MAP(0x028)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) #define PM_WU_CTRL1_REG PMU_MEM_MAP(0x02C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) #define PM_CSR_REG PMU_MEM_MAP(0x030)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) /* PM_CLK_GATE_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) #define PM_CLK_GATE_REG_OFFSET_SDIO (25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) #define PM_CLK_GATE_REG_OFFSET_GPU (24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) #define PM_CLK_GATE_REG_OFFSET_CIM (23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) #define PM_CLK_GATE_REG_OFFSET_LCDC (22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) #define PM_CLK_GATE_REG_OFFSET_I2S (21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) #define PM_CLK_GATE_REG_OFFSET_RAID (20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) #define PM_CLK_GATE_REG_OFFSET_SATA (19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) #define PM_CLK_GATE_REG_OFFSET_PCIE(x) (17 + (x))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) #define PM_CLK_GATE_REG_OFFSET_USB_HOST (16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) #define PM_CLK_GATE_REG_OFFSET_USB_OTG (15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) #define PM_CLK_GATE_REG_OFFSET_TIMER (14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) #define PM_CLK_GATE_REG_OFFSET_CRYPTO (13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) #define PM_CLK_GATE_REG_OFFSET_HCIE (12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) #define PM_CLK_GATE_REG_OFFSET_SWITCH (11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) #define PM_CLK_GATE_REG_OFFSET_GPIO (10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) #define PM_CLK_GATE_REG_OFFSET_UART3 (9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) #define PM_CLK_GATE_REG_OFFSET_UART2 (8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) #define PM_CLK_GATE_REG_OFFSET_UART1 (7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) #define PM_CLK_GATE_REG_OFFSET_RTC (5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) #define PM_CLK_GATE_REG_OFFSET_GDMA (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) #define PM_CLK_GATE_REG_OFFSET_SPI_PCM_I2C (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) #define PM_CLK_GATE_REG_OFFSET_SMC_NFI (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) #define PM_CLK_GATE_REG_MASK (0x03FFFFBA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) /* PM_SOFT_RST_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) #define PM_SOFT_RST_REG_OFFST_WARM_RST_FLAG (31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) #define PM_SOFT_RST_REG_OFFST_CPU1 (29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) #define PM_SOFT_RST_REG_OFFST_CPU0 (28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) #define PM_SOFT_RST_REG_OFFST_SDIO (25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) #define PM_SOFT_RST_REG_OFFST_GPU (24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) #define PM_SOFT_RST_REG_OFFST_CIM (23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) #define PM_SOFT_RST_REG_OFFST_LCDC (22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) #define PM_SOFT_RST_REG_OFFST_I2S (21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) #define PM_SOFT_RST_REG_OFFST_RAID (20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) #define PM_SOFT_RST_REG_OFFST_SATA (19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) #define PM_SOFT_RST_REG_OFFST_PCIE(x) (17 + (x))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) #define PM_SOFT_RST_REG_OFFST_USB_HOST (16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) #define PM_SOFT_RST_REG_OFFST_USB_OTG (15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) #define PM_SOFT_RST_REG_OFFST_TIMER (14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) #define PM_SOFT_RST_REG_OFFST_CRYPTO (13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) #define PM_SOFT_RST_REG_OFFST_HCIE (12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) #define PM_SOFT_RST_REG_OFFST_SWITCH (11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) #define PM_SOFT_RST_REG_OFFST_GPIO (10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) #define PM_SOFT_RST_REG_OFFST_UART3 (9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) #define PM_SOFT_RST_REG_OFFST_UART2 (8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) #define PM_SOFT_RST_REG_OFFST_UART1 (7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) #define PM_SOFT_RST_REG_OFFST_RTC (5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) #define PM_SOFT_RST_REG_OFFST_GDMA (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) #define PM_SOFT_RST_REG_OFFST_SPI_PCM_I2C (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) #define PM_SOFT_RST_REG_OFFST_DMC (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) #define PM_SOFT_RST_REG_OFFST_SMC_NFI (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) #define PM_SOFT_RST_REG_OFFST_GLOBAL (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) #define PM_SOFT_RST_REG_MASK (0xF3FFFFBF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) /* PMHS_CFG_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) #define PM_HS_CFG_REG_OFFSET_SDIO (25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) #define PM_HS_CFG_REG_OFFSET_GPU (24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) #define PM_HS_CFG_REG_OFFSET_CIM (23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) #define PM_HS_CFG_REG_OFFSET_LCDC (22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) #define PM_HS_CFG_REG_OFFSET_I2S (21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) #define PM_HS_CFG_REG_OFFSET_RAID (20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) #define PM_HS_CFG_REG_OFFSET_SATA (19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) #define PM_HS_CFG_REG_OFFSET_PCIE1 (18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) #define PM_HS_CFG_REG_OFFSET_PCIE0 (17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) #define PM_HS_CFG_REG_OFFSET_USB_HOST (16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) #define PM_HS_CFG_REG_OFFSET_USB_OTG (15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) #define PM_HS_CFG_REG_OFFSET_TIMER (14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) #define PM_HS_CFG_REG_OFFSET_CRYPTO (13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) #define PM_HS_CFG_REG_OFFSET_HCIE (12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) #define PM_HS_CFG_REG_OFFSET_SWITCH (11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) #define PM_HS_CFG_REG_OFFSET_GPIO (10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) #define PM_HS_CFG_REG_OFFSET_UART3 (9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) #define PM_HS_CFG_REG_OFFSET_UART2 (8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) #define PM_HS_CFG_REG_OFFSET_UART1 (7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) #define PM_HS_CFG_REG_OFFSET_RTC (5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) #define PM_HS_CFG_REG_OFFSET_GDMA (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) #define PM_HS_CFG_REG_OFFSET_SPI_PCM_I2S (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) #define PM_HS_CFG_REG_OFFSET_DMC (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) #define PM_HS_CFG_REG_OFFSET_SMC_NFI (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) #define PM_HS_CFG_REG_MASK (0x03FFFFBE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) #define PM_HS_CFG_REG_MASK_SUPPORT (0x01100806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) /* PM_CACTIVE_STA_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) #define PM_CACTIVE_STA_REG_OFFSET_SDIO (25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) #define PM_CACTIVE_STA_REG_OFFSET_GPU (24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) #define PM_CACTIVE_STA_REG_OFFSET_CIM (23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) #define PM_CACTIVE_STA_REG_OFFSET_LCDC (22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) #define PM_CACTIVE_STA_REG_OFFSET_I2S (21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) #define PM_CACTIVE_STA_REG_OFFSET_RAID (20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) #define PM_CACTIVE_STA_REG_OFFSET_SATA (19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) #define PM_CACTIVE_STA_REG_OFFSET_PCIE1 (18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) #define PM_CACTIVE_STA_REG_OFFSET_PCIE0 (17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) #define PM_CACTIVE_STA_REG_OFFSET_USB_HOST (16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) #define PM_CACTIVE_STA_REG_OFFSET_USB_OTG (15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) #define PM_CACTIVE_STA_REG_OFFSET_TIMER (14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) #define PM_CACTIVE_STA_REG_OFFSET_CRYPTO (13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) #define PM_CACTIVE_STA_REG_OFFSET_HCIE (12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) #define PM_CACTIVE_STA_REG_OFFSET_SWITCH (11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) #define PM_CACTIVE_STA_REG_OFFSET_GPIO (10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) #define PM_CACTIVE_STA_REG_OFFSET_UART3 (9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) #define PM_CACTIVE_STA_REG_OFFSET_UART2 (8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) #define PM_CACTIVE_STA_REG_OFFSET_UART1 (7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) #define PM_CACTIVE_STA_REG_OFFSET_RTC (5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) #define PM_CACTIVE_STA_REG_OFFSET_GDMA (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) #define PM_CACTIVE_STA_REG_OFFSET_SPI_PCM_I2S (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) #define PM_CACTIVE_STA_REG_OFFSET_DMC (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) #define PM_CACTIVE_STA_REG_OFFSET_SMC_NFI (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) #define PM_CACTIVE_STA_REG_MASK (0x03FFFFBE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) /* PM_PWR_STA_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) #define PM_PWR_STA_REG_REG_OFFSET_SDIO (25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) #define PM_PWR_STA_REG_REG_OFFSET_GPU (24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) #define PM_PWR_STA_REG_REG_OFFSET_CIM (23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) #define PM_PWR_STA_REG_REG_OFFSET_LCDC (22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) #define PM_PWR_STA_REG_REG_OFFSET_I2S (21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) #define PM_PWR_STA_REG_REG_OFFSET_RAID (20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) #define PM_PWR_STA_REG_REG_OFFSET_SATA (19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) #define PM_PWR_STA_REG_REG_OFFSET_PCIE1 (18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) #define PM_PWR_STA_REG_REG_OFFSET_PCIE0 (17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) #define PM_PWR_STA_REG_REG_OFFSET_USB_HOST (16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) #define PM_PWR_STA_REG_REG_OFFSET_USB_OTG (15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) #define PM_PWR_STA_REG_REG_OFFSET_TIMER (14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) #define PM_PWR_STA_REG_REG_OFFSET_CRYPTO (13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) #define PM_PWR_STA_REG_REG_OFFSET_HCIE (12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) #define PM_PWR_STA_REG_REG_OFFSET_SWITCH (11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) #define PM_PWR_STA_REG_REG_OFFSET_GPIO (10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) #define PM_PWR_STA_REG_REG_OFFSET_UART3 (9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) #define PM_PWR_STA_REG_REG_OFFSET_UART2 (8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) #define PM_PWR_STA_REG_REG_OFFSET_UART1 (7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) #define PM_PWR_STA_REG_REG_OFFSET_RTC (5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) #define PM_PWR_STA_REG_REG_OFFSET_GDMA (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) #define PM_PWR_STA_REG_REG_OFFSET_SPI_PCM_I2S (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) #define PM_PWR_STA_REG_REG_OFFSET_DMC (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) #define PM_PWR_STA_REG_REG_OFFSET_SMC_NFI (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) #define PM_PWR_STA_REG_REG_MASK (0x03FFFFBE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) /* PM_CLK_CTRL_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) #define PM_CLK_CTRL_REG_OFFSET_I2S_MCLK (31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) #define PM_CLK_CTRL_REG_OFFSET_DDR2_CHG_EN (30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) #define PM_CLK_CTRL_REG_OFFSET_PCIE_REF1_EN (29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) #define PM_CLK_CTRL_REG_OFFSET_PCIE_REF0_EN (28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) #define PM_CLK_CTRL_REG_OFFSET_TIMER_SIM_MODE (27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) #define PM_CLK_CTRL_REG_OFFSET_I2SCLK_DIV (24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) #define PM_CLK_CTRL_REG_OFFSET_I2SCLK_SEL (22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) #define PM_CLK_CTRL_REG_OFFSET_CLKOUT_DIV (20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) #define PM_CLK_CTRL_REG_OFFSET_CLKOUT_SEL (16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) #define PM_CLK_CTRL_REG_OFFSET_MDC_DIV (14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) #define PM_CLK_CTRL_REG_OFFSET_CRYPTO_CLK_SEL (12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) #define PM_CLK_CTRL_REG_OFFSET_CPU_PWR_MODE (9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) #define PM_CLK_CTRL_REG_OFFSET_PLL_DDR2_SEL (7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) #define PM_CLK_CTRL_REG_OFFSET_DIV_IMMEDIATE (6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) #define PM_CLK_CTRL_REG_OFFSET_CPU_CLK_DIV (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) #define PM_CLK_CTRL_REG_OFFSET_PLL_CPU_SEL (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) #define PM_CPU_CLK_DIV(DIV) { \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) PM_CLK_CTRL_REG &= ~((0x3) << PM_CLK_CTRL_REG_OFFSET_CPU_CLK_DIV); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) PM_CLK_CTRL_REG |= (((DIV)&0x3) << PM_CLK_CTRL_REG_OFFSET_CPU_CLK_DIV); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) #define PM_PLL_CPU_SEL(CPU) { \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) PM_CLK_CTRL_REG &= ~((0xF) << PM_CLK_CTRL_REG_OFFSET_PLL_CPU_SEL); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) PM_CLK_CTRL_REG |= (((CPU)&0xF) << PM_CLK_CTRL_REG_OFFSET_PLL_CPU_SEL); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) /* PM_PLL_LCD_I2S_CTRL_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_MCLK_SMC_DIV (22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_R_SEL (17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_PLL_LCD_P (11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_PLL_LCD_M (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) #define PM_PLL_LCD_I2S_CTRL_REG_OFFSET_PLL_LCD_S (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) /* PM_PLL_HM_PD_CTRL_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) #define PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY1 (11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) #define PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY0 (10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_I2SCD (6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_I2S (5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_LCD (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_USB (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) #define PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_RGMII (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) #define PM_PLL_HM_PD_CTRL_REG_MASK (0x00000C7C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) /* PM_WDT_CTRL_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) #define PM_WDT_CTRL_REG_OFFSET_RESET_CPU_ONLY (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) /* PM_CSR_REG - Clock Scaling Register*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) #define PM_CSR_REG_OFFSET_CSR_EN (30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) #define PM_CSR_REG_OFFSET_CSR_NUM (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) #define CNS3XXX_PWR_CLK_EN(BLOCK) (0x1<<PM_CLK_GATE_REG_OFFSET_##BLOCK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) /* Software reset*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) #define CNS3XXX_PWR_SOFTWARE_RST(BLOCK) (0x1<<PM_SOFT_RST_REG_OFFST_##BLOCK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) * CNS3XXX support several power saving mode as following,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) * DFS, IDLE, HALT, DOZE, SLEEP, Hibernate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) #define CNS3XXX_PWR_CPU_MODE_DFS (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) #define CNS3XXX_PWR_CPU_MODE_IDLE (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) #define CNS3XXX_PWR_CPU_MODE_HALT (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) #define CNS3XXX_PWR_CPU_MODE_DOZE (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) #define CNS3XXX_PWR_CPU_MODE_SLEEP (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) #define CNS3XXX_PWR_CPU_MODE_HIBERNATE (5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) #define CNS3XXX_PWR_PLL(BLOCK) (0x1<<PM_PLL_HM_PD_CTRL_REG_OFFSET_##BLOCK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) #define CNS3XXX_PWR_PLL_ALL PM_PLL_HM_PD_CTRL_REG_MASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) /* Change CPU frequency and divider */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) #define CNS3XXX_PWR_PLL_CPU_300MHZ (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) #define CNS3XXX_PWR_PLL_CPU_333MHZ (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) #define CNS3XXX_PWR_PLL_CPU_366MHZ (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) #define CNS3XXX_PWR_PLL_CPU_400MHZ (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) #define CNS3XXX_PWR_PLL_CPU_433MHZ (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) #define CNS3XXX_PWR_PLL_CPU_466MHZ (5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) #define CNS3XXX_PWR_PLL_CPU_500MHZ (6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) #define CNS3XXX_PWR_PLL_CPU_533MHZ (7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) #define CNS3XXX_PWR_PLL_CPU_566MHZ (8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) #define CNS3XXX_PWR_PLL_CPU_600MHZ (9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) #define CNS3XXX_PWR_PLL_CPU_633MHZ (10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) #define CNS3XXX_PWR_PLL_CPU_666MHZ (11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) #define CNS3XXX_PWR_PLL_CPU_700MHZ (12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) #define CNS3XXX_PWR_CPU_CLK_DIV_BY1 (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) #define CNS3XXX_PWR_CPU_CLK_DIV_BY2 (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) #define CNS3XXX_PWR_CPU_CLK_DIV_BY4 (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) /* Change DDR2 frequency */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) #define CNS3XXX_PWR_PLL_DDR2_200MHZ (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) #define CNS3XXX_PWR_PLL_DDR2_266MHZ (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) #define CNS3XXX_PWR_PLL_DDR2_333MHZ (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) #define CNS3XXX_PWR_PLL_DDR2_400MHZ (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) void cns3xxx_pwr_soft_rst(unsigned int block);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) void cns3xxx_pwr_clk_en(unsigned int block);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) int cns3xxx_cpu_clock(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) * ARM11 MPCore interrupt sources (primary GIC)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) #define IRQ_TC11MP_GIC_START 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) #define IRQ_CNS3XXX_PMU (IRQ_TC11MP_GIC_START + 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) #define IRQ_CNS3XXX_SDIO (IRQ_TC11MP_GIC_START + 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) #define IRQ_CNS3XXX_L2CC (IRQ_TC11MP_GIC_START + 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) #define IRQ_CNS3XXX_RTC (IRQ_TC11MP_GIC_START + 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) #define IRQ_CNS3XXX_I2S (IRQ_TC11MP_GIC_START + 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) #define IRQ_CNS3XXX_PCM (IRQ_TC11MP_GIC_START + 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) #define IRQ_CNS3XXX_SPI (IRQ_TC11MP_GIC_START + 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) #define IRQ_CNS3XXX_I2C (IRQ_TC11MP_GIC_START + 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) #define IRQ_CNS3XXX_CIM (IRQ_TC11MP_GIC_START + 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) #define IRQ_CNS3XXX_GPU (IRQ_TC11MP_GIC_START + 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) #define IRQ_CNS3XXX_LCD (IRQ_TC11MP_GIC_START + 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) #define IRQ_CNS3XXX_GPIOA (IRQ_TC11MP_GIC_START + 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) #define IRQ_CNS3XXX_GPIOB (IRQ_TC11MP_GIC_START + 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) #define IRQ_CNS3XXX_UART0 (IRQ_TC11MP_GIC_START + 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) #define IRQ_CNS3XXX_UART1 (IRQ_TC11MP_GIC_START + 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) #define IRQ_CNS3XXX_UART2 (IRQ_TC11MP_GIC_START + 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) #define IRQ_CNS3XXX_ARM11 (IRQ_TC11MP_GIC_START + 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) #define IRQ_CNS3XXX_SW_STATUS (IRQ_TC11MP_GIC_START + 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) #define IRQ_CNS3XXX_SW_R0TXC (IRQ_TC11MP_GIC_START + 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) #define IRQ_CNS3XXX_SW_R0RXC (IRQ_TC11MP_GIC_START + 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) #define IRQ_CNS3XXX_SW_R0QE (IRQ_TC11MP_GIC_START + 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) #define IRQ_CNS3XXX_SW_R0QF (IRQ_TC11MP_GIC_START + 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) #define IRQ_CNS3XXX_SW_R1TXC (IRQ_TC11MP_GIC_START + 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) #define IRQ_CNS3XXX_SW_R1RXC (IRQ_TC11MP_GIC_START + 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) #define IRQ_CNS3XXX_SW_R1QE (IRQ_TC11MP_GIC_START + 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) #define IRQ_CNS3XXX_SW_R1QF (IRQ_TC11MP_GIC_START + 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) #define IRQ_CNS3XXX_SW_PPE (IRQ_TC11MP_GIC_START + 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) #define IRQ_CNS3XXX_CRYPTO (IRQ_TC11MP_GIC_START + 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) #define IRQ_CNS3XXX_HCIE (IRQ_TC11MP_GIC_START + 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) #define IRQ_CNS3XXX_PCIE0_DEVICE (IRQ_TC11MP_GIC_START + 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) #define IRQ_CNS3XXX_PCIE1_DEVICE (IRQ_TC11MP_GIC_START + 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) #define IRQ_CNS3XXX_USB_OTG (IRQ_TC11MP_GIC_START + 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) #define IRQ_CNS3XXX_USB_EHCI (IRQ_TC11MP_GIC_START + 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) #define IRQ_CNS3XXX_SATA (IRQ_TC11MP_GIC_START + 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) #define IRQ_CNS3XXX_RAID (IRQ_TC11MP_GIC_START + 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) #define IRQ_CNS3XXX_SMC (IRQ_TC11MP_GIC_START + 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) #define IRQ_CNS3XXX_DMAC_ABORT (IRQ_TC11MP_GIC_START + 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) #define IRQ_CNS3XXX_DMAC0 (IRQ_TC11MP_GIC_START + 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) #define IRQ_CNS3XXX_DMAC1 (IRQ_TC11MP_GIC_START + 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) #define IRQ_CNS3XXX_DMAC2 (IRQ_TC11MP_GIC_START + 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) #define IRQ_CNS3XXX_DMAC3 (IRQ_TC11MP_GIC_START + 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) #define IRQ_CNS3XXX_DMAC4 (IRQ_TC11MP_GIC_START + 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) #define IRQ_CNS3XXX_DMAC5 (IRQ_TC11MP_GIC_START + 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) #define IRQ_CNS3XXX_DMAC6 (IRQ_TC11MP_GIC_START + 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) #define IRQ_CNS3XXX_DMAC7 (IRQ_TC11MP_GIC_START + 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) #define IRQ_CNS3XXX_DMAC8 (IRQ_TC11MP_GIC_START + 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) #define IRQ_CNS3XXX_DMAC9 (IRQ_TC11MP_GIC_START + 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) #define IRQ_CNS3XXX_DMAC10 (IRQ_TC11MP_GIC_START + 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) #define IRQ_CNS3XXX_DMAC11 (IRQ_TC11MP_GIC_START + 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) #define IRQ_CNS3XXX_DMAC12 (IRQ_TC11MP_GIC_START + 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) #define IRQ_CNS3XXX_DMAC13 (IRQ_TC11MP_GIC_START + 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) #define IRQ_CNS3XXX_DMAC14 (IRQ_TC11MP_GIC_START + 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) #define IRQ_CNS3XXX_DMAC15 (IRQ_TC11MP_GIC_START + 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) #define IRQ_CNS3XXX_DMAC16 (IRQ_TC11MP_GIC_START + 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) #define IRQ_CNS3XXX_DMAC17 (IRQ_TC11MP_GIC_START + 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) #define IRQ_CNS3XXX_PCIE0_RC (IRQ_TC11MP_GIC_START + 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) #define IRQ_CNS3XXX_PCIE1_RC (IRQ_TC11MP_GIC_START + 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) #define IRQ_CNS3XXX_TIMER0 (IRQ_TC11MP_GIC_START + 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) #define IRQ_CNS3XXX_TIMER1 (IRQ_TC11MP_GIC_START + 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) #define IRQ_CNS3XXX_USB_OHCI (IRQ_TC11MP_GIC_START + 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) #define IRQ_CNS3XXX_TIMER2 (IRQ_TC11MP_GIC_START + 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) #define IRQ_CNS3XXX_EXTERNAL_PIN0 (IRQ_TC11MP_GIC_START + 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) #define IRQ_CNS3XXX_EXTERNAL_PIN1 (IRQ_TC11MP_GIC_START + 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) #define IRQ_CNS3XXX_EXTERNAL_PIN2 (IRQ_TC11MP_GIC_START + 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) #define NR_IRQS_CNS3XXX (IRQ_TC11MP_GIC_START + 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) #endif /* __MACH_BOARD_CNS3XXX_H */