Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (C) STMicroelectronics 2009
0004  * Copyright (C) ST-Ericsson SA 2010
0005  *
0006  * Author: Kumar Sanghvi <kumar.sanghvi@stericsson.com>
0007  * Author: Sundar Iyer <sundar.iyer@stericsson.com>
0008  *
0009  * PRCM Unit registers
0010  */
0011 
0012 #ifndef __DB8500_PRCMU_REGS_H
0013 #define __DB8500_PRCMU_REGS_H
0014 
0015 #define BITS(_start, _end) ((BIT(_end) - BIT(_start)) + BIT(_end))
0016 
0017 #define PRCM_ACLK_MGT       (0x004)
0018 #define PRCM_SVAMMCSPCLK_MGT    (0x008)
0019 #define PRCM_SIAMMDSPCLK_MGT    (0x00C)
0020 #define PRCM_SGACLK_MGT     (0x014)
0021 #define PRCM_UARTCLK_MGT    (0x018)
0022 #define PRCM_MSP02CLK_MGT   (0x01C)
0023 #define PRCM_I2CCLK_MGT     (0x020)
0024 #define PRCM_SDMMCCLK_MGT   (0x024)
0025 #define PRCM_SLIMCLK_MGT    (0x028)
0026 #define PRCM_PER1CLK_MGT    (0x02C)
0027 #define PRCM_PER2CLK_MGT    (0x030)
0028 #define PRCM_PER3CLK_MGT    (0x034)
0029 #define PRCM_PER5CLK_MGT    (0x038)
0030 #define PRCM_PER6CLK_MGT    (0x03C)
0031 #define PRCM_PER7CLK_MGT    (0x040)
0032 #define PRCM_LCDCLK_MGT     (0x044)
0033 #define PRCM_BMLCLK_MGT     (0x04C)
0034 #define PRCM_HSITXCLK_MGT   (0x050)
0035 #define PRCM_HSIRXCLK_MGT   (0x054)
0036 #define PRCM_HDMICLK_MGT    (0x058)
0037 #define PRCM_APEATCLK_MGT   (0x05C)
0038 #define PRCM_APETRACECLK_MGT    (0x060)
0039 #define PRCM_MCDECLK_MGT    (0x064)
0040 #define PRCM_IPI2CCLK_MGT   (0x068)
0041 #define PRCM_DSIALTCLK_MGT  (0x06C)
0042 #define PRCM_DMACLK_MGT     (0x074)
0043 #define PRCM_B2R2CLK_MGT    (0x078)
0044 #define PRCM_TVCLK_MGT      (0x07C)
0045 #define PRCM_UNIPROCLK_MGT  (0x278)
0046 #define PRCM_SSPCLK_MGT     (0x280)
0047 #define PRCM_RNGCLK_MGT     (0x284)
0048 #define PRCM_UICCCLK_MGT    (0x27C)
0049 #define PRCM_MSP1CLK_MGT    (0x288)
0050 
0051 #define PRCM_ARM_PLLDIVPS   (prcmu_base + 0x118)
0052 #define PRCM_ARM_PLLDIVPS_ARM_BRM_RATE      0x3f
0053 #define PRCM_ARM_PLLDIVPS_MAX_MASK      0xf
0054 
0055 #define PRCM_PLLARM_LOCKP       (prcmu_base + 0x0a8)
0056 #define PRCM_PLLARM_LOCKP_PRCM_PLLARM_LOCKP3    0x2
0057 
0058 #define PRCM_ARM_CHGCLKREQ  (prcmu_base + 0x114)
0059 #define PRCM_ARM_CHGCLKREQ_PRCM_ARM_CHGCLKREQ   BIT(0)
0060 #define PRCM_ARM_CHGCLKREQ_PRCM_ARM_DIVSEL  BIT(16)
0061 
0062 #define PRCM_PLLARM_ENABLE  (prcmu_base + 0x98)
0063 #define PRCM_PLLARM_ENABLE_PRCM_PLLARM_ENABLE   0x1
0064 #define PRCM_PLLARM_ENABLE_PRCM_PLLARM_COUNTON  0x100
0065 
0066 #define PRCM_ARMCLKFIX_MGT  (prcmu_base + 0x0)
0067 #define PRCM_A9PL_FORCE_CLKEN   (prcmu_base + 0x19C)
0068 #define PRCM_A9_RESETN_CLR  (prcmu_base + 0x1f4)
0069 #define PRCM_A9_RESETN_SET  (prcmu_base + 0x1f0)
0070 #define PRCM_ARM_LS_CLAMP   (prcmu_base + 0x30c)
0071 #define PRCM_SRAM_A9        (prcmu_base + 0x308)
0072 
0073 #define PRCM_A9PL_FORCE_CLKEN_PRCM_A9PL_FORCE_CLKEN BIT(0)
0074 #define PRCM_A9PL_FORCE_CLKEN_PRCM_A9AXI_FORCE_CLKEN BIT(1)
0075 
0076 /* CPU mailbox registers */
0077 #define PRCM_MBOX_CPU_VAL   (prcmu_base + 0x0fc)
0078 #define PRCM_MBOX_CPU_SET   (prcmu_base + 0x100)
0079 #define PRCM_MBOX_CPU_CLR   (prcmu_base + 0x104)
0080 
0081 #define PRCM_HOSTACCESS_REQ (prcmu_base + 0x334)
0082 #define PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ 0x1
0083 #define PRCM_HOSTACCESS_REQ_WAKE_REQ    BIT(16)
0084 #define ARM_WAKEUP_MODEM    0x1
0085 
0086 #define PRCM_ARM_IT1_CLR    (prcmu_base + 0x48C)
0087 #define PRCM_ARM_IT1_VAL    (prcmu_base + 0x494)
0088 #define PRCM_HOLD_EVT       (prcmu_base + 0x174)
0089 
0090 #define PRCM_MOD_AWAKE_STATUS   (prcmu_base + 0x4A0)
0091 #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_COREPD_AWAKE BIT(0)
0092 #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_AAPD_AWAKE   BIT(1)
0093 #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_VMODEM_OFF_ISO   BIT(2)
0094 
0095 #define PRCM_ITSTATUS0      (prcmu_base + 0x148)
0096 #define PRCM_ITSTATUS1      (prcmu_base + 0x150)
0097 #define PRCM_ITSTATUS2      (prcmu_base + 0x158)
0098 #define PRCM_ITSTATUS3      (prcmu_base + 0x160)
0099 #define PRCM_ITSTATUS4      (prcmu_base + 0x168)
0100 #define PRCM_ITSTATUS5      (prcmu_base + 0x484)
0101 #define PRCM_ITCLEAR5       (prcmu_base + 0x488)
0102 #define PRCM_ARMIT_MASKXP70_IT  (prcmu_base + 0x1018)
0103 
0104 /* System reset register */
0105 #define PRCM_APE_SOFTRST    (prcmu_base + 0x228)
0106 
0107 /* Level shifter and clamp control registers */
0108 #define PRCM_MMIP_LS_CLAMP_SET     (prcmu_base + 0x420)
0109 #define PRCM_MMIP_LS_CLAMP_CLR     (prcmu_base + 0x424)
0110 
0111 #define PRCM_MMIP_LS_CLAMP_DSIPLL_CLAMP     BIT(11)
0112 #define PRCM_MMIP_LS_CLAMP_DSIPLL_CLAMPI    BIT(22)
0113 
0114 /* PRCMU clock/PLL/reset registers */
0115 #define PRCM_PLLSOC0_FREQ      (prcmu_base + 0x080)
0116 #define PRCM_PLLSOC1_FREQ      (prcmu_base + 0x084)
0117 #define PRCM_PLLARM_FREQ       (prcmu_base + 0x088)
0118 #define PRCM_PLLDDR_FREQ       (prcmu_base + 0x08C)
0119 #define PRCM_PLL_FREQ_D_SHIFT   0
0120 #define PRCM_PLL_FREQ_D_MASK    BITS(0, 7)
0121 #define PRCM_PLL_FREQ_N_SHIFT   8
0122 #define PRCM_PLL_FREQ_N_MASK    BITS(8, 13)
0123 #define PRCM_PLL_FREQ_R_SHIFT   16
0124 #define PRCM_PLL_FREQ_R_MASK    BITS(16, 18)
0125 #define PRCM_PLL_FREQ_SELDIV2   BIT(24)
0126 #define PRCM_PLL_FREQ_DIV2EN    BIT(25)
0127 
0128 #define PRCM_PLLDSI_FREQ           (prcmu_base + 0x500)
0129 #define PRCM_PLLDSI_ENABLE         (prcmu_base + 0x504)
0130 #define PRCM_PLLDSI_LOCKP          (prcmu_base + 0x508)
0131 #define PRCM_DSI_PLLOUT_SEL        (prcmu_base + 0x530)
0132 #define PRCM_DSITVCLK_DIV          (prcmu_base + 0x52C)
0133 #define PRCM_PLLDSI_LOCKP          (prcmu_base + 0x508)
0134 #define PRCM_APE_RESETN_SET        (prcmu_base + 0x1E4)
0135 #define PRCM_APE_RESETN_CLR        (prcmu_base + 0x1E8)
0136 
0137 #define PRCM_PLLDSI_ENABLE_PRCM_PLLDSI_ENABLE BIT(0)
0138 
0139 #define PRCM_PLLDSI_LOCKP_PRCM_PLLDSI_LOCKP10   BIT(0)
0140 #define PRCM_PLLDSI_LOCKP_PRCM_PLLDSI_LOCKP3    BIT(1)
0141 
0142 #define PRCM_DSI_PLLOUT_SEL_DSI0_PLLOUT_DIVSEL_SHIFT    0
0143 #define PRCM_DSI_PLLOUT_SEL_DSI0_PLLOUT_DIVSEL_MASK BITS(0, 2)
0144 #define PRCM_DSI_PLLOUT_SEL_DSI1_PLLOUT_DIVSEL_SHIFT    8
0145 #define PRCM_DSI_PLLOUT_SEL_DSI1_PLLOUT_DIVSEL_MASK BITS(8, 10)
0146 
0147 #define PRCM_DSI_PLLOUT_SEL_OFF     0
0148 #define PRCM_DSI_PLLOUT_SEL_PHI     1
0149 #define PRCM_DSI_PLLOUT_SEL_PHI_2   2
0150 #define PRCM_DSI_PLLOUT_SEL_PHI_4   3
0151 
0152 #define PRCM_DSITVCLK_DIV_DSI0_ESC_CLK_DIV_SHIFT    0
0153 #define PRCM_DSITVCLK_DIV_DSI0_ESC_CLK_DIV_MASK     BITS(0, 7)
0154 #define PRCM_DSITVCLK_DIV_DSI1_ESC_CLK_DIV_SHIFT    8
0155 #define PRCM_DSITVCLK_DIV_DSI1_ESC_CLK_DIV_MASK     BITS(8, 15)
0156 #define PRCM_DSITVCLK_DIV_DSI2_ESC_CLK_DIV_SHIFT    16
0157 #define PRCM_DSITVCLK_DIV_DSI2_ESC_CLK_DIV_MASK     BITS(16, 23)
0158 #define PRCM_DSITVCLK_DIV_DSI0_ESC_CLK_EN       BIT(24)
0159 #define PRCM_DSITVCLK_DIV_DSI1_ESC_CLK_EN       BIT(25)
0160 #define PRCM_DSITVCLK_DIV_DSI2_ESC_CLK_EN       BIT(26)
0161 
0162 #define PRCM_APE_RESETN_DSIPLL_RESETN BIT(14)
0163 
0164 #define PRCM_CLKOCR        (prcmu_base + 0x1CC)
0165 #define PRCM_CLKOCR_CLKOUT0_REF_CLK (1 << 0)
0166 #define PRCM_CLKOCR_CLKOUT0_MASK    BITS(0, 13)
0167 #define PRCM_CLKOCR_CLKOUT1_REF_CLK (1 << 16)
0168 #define PRCM_CLKOCR_CLKOUT1_MASK    BITS(16, 29)
0169 
0170 /* ePOD and memory power signal control registers */
0171 #define PRCM_EPOD_C_SET            (prcmu_base + 0x410)
0172 #define PRCM_SRAM_LS_SLEEP         (prcmu_base + 0x304)
0173 
0174 /* Debug power control unit registers */
0175 #define PRCM_POWER_STATE_SET       (prcmu_base + 0x254)
0176 
0177 /* Miscellaneous unit registers */
0178 #define PRCM_DSI_SW_RESET          (prcmu_base + 0x324)
0179 #define PRCM_GPIOCR                (prcmu_base + 0x138)
0180 #define PRCM_GPIOCR_DBG_STM_MOD_CMD1            0x800
0181 #define PRCM_GPIOCR_DBG_UARTMOD_CMD0            0x1
0182 
0183 /* PRCMU HW semaphore */
0184 #define PRCM_SEM                   (prcmu_base + 0x400)
0185 #define PRCM_SEM_PRCM_SEM BIT(0)
0186 
0187 #define PRCM_TCR                   (prcmu_base + 0x1C8)
0188 #define PRCM_TCR_TENSEL_MASK       BITS(0, 7)
0189 #define PRCM_TCR_STOP_TIMERS       BIT(16)
0190 #define PRCM_TCR_DOZE_MODE         BIT(17)
0191 
0192 #define PRCM_CLKOCR_CLKODIV0_SHIFT  0
0193 #define PRCM_CLKOCR_CLKODIV0_MASK   BITS(0, 5)
0194 #define PRCM_CLKOCR_CLKOSEL0_SHIFT  6
0195 #define PRCM_CLKOCR_CLKOSEL0_MASK   BITS(6, 8)
0196 #define PRCM_CLKOCR_CLKODIV1_SHIFT  16
0197 #define PRCM_CLKOCR_CLKODIV1_MASK   BITS(16, 21)
0198 #define PRCM_CLKOCR_CLKOSEL1_SHIFT  22
0199 #define PRCM_CLKOCR_CLKOSEL1_MASK   BITS(22, 24)
0200 #define PRCM_CLKOCR_CLK1TYPE        BIT(28)
0201 
0202 #define PRCM_CLK_MGT_CLKPLLDIV_MASK     BITS(0, 4)
0203 #define PRCM_CLK_MGT_CLKPLLSW_SOC0      BIT(5)
0204 #define PRCM_CLK_MGT_CLKPLLSW_SOC1      BIT(6)
0205 #define PRCM_CLK_MGT_CLKPLLSW_DDR       BIT(7)
0206 #define PRCM_CLK_MGT_CLKPLLSW_MASK      BITS(5, 7)
0207 #define PRCM_CLK_MGT_CLKEN          BIT(8)
0208 #define PRCM_CLK_MGT_CLK38          BIT(9)
0209 #define PRCM_CLK_MGT_CLK38DIV           BIT(11)
0210 #define PRCM_SGACLK_MGT_SGACLKDIV_BY_2_5_EN BIT(12)
0211 
0212 /* GPIOCR register */
0213 #define PRCM_GPIOCR_SPI2_SELECT BIT(23)
0214 
0215 #define PRCM_DDR_SUBSYS_APE_MINBW   (prcmu_base + 0x438)
0216 #define PRCM_CGATING_BYPASS     (prcmu_base + 0x134)
0217 #define PRCM_CGATING_BYPASS_ICN2    BIT(6)
0218 
0219 /* Miscellaneous unit registers */
0220 #define PRCM_RESOUTN_SET        (prcmu_base + 0x214)
0221 #define PRCM_RESOUTN_CLR        (prcmu_base + 0x218)
0222 
0223 /* System reset register */
0224 #define PRCM_APE_SOFTRST        (prcmu_base + 0x228)
0225 
0226 #endif /* __DB8500_PRCMU_REGS_H */