0001
0002
0003
0004
0005
0006
0007
0008 #include <linux/soc/samsung/exynos-regs-pmu.h>
0009 #include <linux/soc/samsung/exynos-pmu.h>
0010
0011 #include "exynos-pmu.h"
0012
0013 static const struct exynos_pmu_conf exynos4210_pmu_config[] = {
0014
0015 { S5P_ARM_CORE0_LOWPWR, { 0x0, 0x0, 0x2 } },
0016 { S5P_DIS_IRQ_CORE0, { 0x0, 0x0, 0x0 } },
0017 { S5P_DIS_IRQ_CENTRAL0, { 0x0, 0x0, 0x0 } },
0018 { S5P_ARM_CORE1_LOWPWR, { 0x0, 0x0, 0x2 } },
0019 { S5P_DIS_IRQ_CORE1, { 0x0, 0x0, 0x0 } },
0020 { S5P_DIS_IRQ_CENTRAL1, { 0x0, 0x0, 0x0 } },
0021 { S5P_ARM_COMMON_LOWPWR, { 0x0, 0x0, 0x2 } },
0022 { S5P_L2_0_LOWPWR, { 0x2, 0x2, 0x3 } },
0023 { S5P_L2_1_LOWPWR, { 0x2, 0x2, 0x3 } },
0024 { S5P_CMU_ACLKSTOP_LOWPWR, { 0x1, 0x0, 0x0 } },
0025 { S5P_CMU_SCLKSTOP_LOWPWR, { 0x1, 0x0, 0x0 } },
0026 { S5P_CMU_RESET_LOWPWR, { 0x1, 0x1, 0x0 } },
0027 { S5P_APLL_SYSCLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0028 { S5P_MPLL_SYSCLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0029 { S5P_VPLL_SYSCLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0030 { S5P_EPLL_SYSCLK_LOWPWR, { 0x1, 0x1, 0x0 } },
0031 { S5P_CMU_CLKSTOP_GPS_ALIVE_LOWPWR, { 0x1, 0x1, 0x0 } },
0032 { S5P_CMU_RESET_GPSALIVE_LOWPWR, { 0x1, 0x1, 0x0 } },
0033 { S5P_CMU_CLKSTOP_CAM_LOWPWR, { 0x1, 0x1, 0x0 } },
0034 { S5P_CMU_CLKSTOP_TV_LOWPWR, { 0x1, 0x1, 0x0 } },
0035 { S5P_CMU_CLKSTOP_MFC_LOWPWR, { 0x1, 0x1, 0x0 } },
0036 { S5P_CMU_CLKSTOP_G3D_LOWPWR, { 0x1, 0x1, 0x0 } },
0037 { S5P_CMU_CLKSTOP_LCD0_LOWPWR, { 0x1, 0x1, 0x0 } },
0038 { S5P_CMU_CLKSTOP_LCD1_LOWPWR, { 0x1, 0x1, 0x0 } },
0039 { S5P_CMU_CLKSTOP_MAUDIO_LOWPWR, { 0x1, 0x1, 0x0 } },
0040 { S5P_CMU_CLKSTOP_GPS_LOWPWR, { 0x1, 0x1, 0x0 } },
0041 { S5P_CMU_RESET_CAM_LOWPWR, { 0x1, 0x1, 0x0 } },
0042 { S5P_CMU_RESET_TV_LOWPWR, { 0x1, 0x1, 0x0 } },
0043 { S5P_CMU_RESET_MFC_LOWPWR, { 0x1, 0x1, 0x0 } },
0044 { S5P_CMU_RESET_G3D_LOWPWR, { 0x1, 0x1, 0x0 } },
0045 { S5P_CMU_RESET_LCD0_LOWPWR, { 0x1, 0x1, 0x0 } },
0046 { S5P_CMU_RESET_LCD1_LOWPWR, { 0x1, 0x1, 0x0 } },
0047 { S5P_CMU_RESET_MAUDIO_LOWPWR, { 0x1, 0x1, 0x0 } },
0048 { S5P_CMU_RESET_GPS_LOWPWR, { 0x1, 0x1, 0x0 } },
0049 { S5P_TOP_BUS_LOWPWR, { 0x3, 0x0, 0x0 } },
0050 { S5P_TOP_RETENTION_LOWPWR, { 0x1, 0x0, 0x1 } },
0051 { S5P_TOP_PWR_LOWPWR, { 0x3, 0x0, 0x3 } },
0052 { S5P_LOGIC_RESET_LOWPWR, { 0x1, 0x1, 0x0 } },
0053 { S5P_ONENAND_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0054 { S5P_MODIMIF_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0055 { S5P_G2D_ACP_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0056 { S5P_USBOTG_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0057 { S5P_HSMMC_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0058 { S5P_CSSYS_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0059 { S5P_SECSS_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0060 { S5P_PCIE_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0061 { S5P_SATA_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0062 { S5P_PAD_RETENTION_DRAM_LOWPWR, { 0x1, 0x0, 0x0 } },
0063 { S5P_PAD_RETENTION_MAUDIO_LOWPWR, { 0x1, 0x1, 0x0 } },
0064 { S5P_PAD_RETENTION_GPIO_LOWPWR, { 0x1, 0x0, 0x0 } },
0065 { S5P_PAD_RETENTION_UART_LOWPWR, { 0x1, 0x0, 0x0 } },
0066 { S5P_PAD_RETENTION_MMCA_LOWPWR, { 0x1, 0x0, 0x0 } },
0067 { S5P_PAD_RETENTION_MMCB_LOWPWR, { 0x1, 0x0, 0x0 } },
0068 { S5P_PAD_RETENTION_EBIA_LOWPWR, { 0x1, 0x0, 0x0 } },
0069 { S5P_PAD_RETENTION_EBIB_LOWPWR, { 0x1, 0x0, 0x0 } },
0070 { S5P_PAD_RETENTION_ISOLATION_LOWPWR, { 0x1, 0x0, 0x0 } },
0071 { S5P_PAD_RETENTION_ALV_SEL_LOWPWR, { 0x1, 0x0, 0x0 } },
0072 { S5P_XUSBXTI_LOWPWR, { 0x1, 0x1, 0x0 } },
0073 { S5P_XXTI_LOWPWR, { 0x1, 0x1, 0x0 } },
0074 { S5P_EXT_REGULATOR_LOWPWR, { 0x1, 0x1, 0x0 } },
0075 { S5P_GPIO_MODE_LOWPWR, { 0x1, 0x0, 0x0 } },
0076 { S5P_GPIO_MODE_MAUDIO_LOWPWR, { 0x1, 0x1, 0x0 } },
0077 { S5P_CAM_LOWPWR, { 0x7, 0x0, 0x0 } },
0078 { S5P_TV_LOWPWR, { 0x7, 0x0, 0x0 } },
0079 { S5P_MFC_LOWPWR, { 0x7, 0x0, 0x0 } },
0080 { S5P_G3D_LOWPWR, { 0x7, 0x0, 0x0 } },
0081 { S5P_LCD0_LOWPWR, { 0x7, 0x0, 0x0 } },
0082 { S5P_LCD1_LOWPWR, { 0x7, 0x0, 0x0 } },
0083 { S5P_MAUDIO_LOWPWR, { 0x7, 0x7, 0x0 } },
0084 { S5P_GPS_LOWPWR, { 0x7, 0x0, 0x0 } },
0085 { S5P_GPS_ALIVE_LOWPWR, { 0x7, 0x0, 0x0 } },
0086 { PMU_TABLE_END,},
0087 };
0088
0089 static const struct exynos_pmu_conf exynos4412_pmu_config[] = {
0090 { S5P_ARM_CORE0_LOWPWR, { 0x0, 0x0, 0x2 } },
0091 { S5P_DIS_IRQ_CORE0, { 0x0, 0x0, 0x0 } },
0092 { S5P_DIS_IRQ_CENTRAL0, { 0x0, 0x0, 0x0 } },
0093 { S5P_ARM_CORE1_LOWPWR, { 0x0, 0x0, 0x2 } },
0094 { S5P_DIS_IRQ_CORE1, { 0x0, 0x0, 0x0 } },
0095 { S5P_DIS_IRQ_CENTRAL1, { 0x0, 0x0, 0x0 } },
0096 { S5P_ISP_ARM_LOWPWR, { 0x1, 0x0, 0x0 } },
0097 { S5P_DIS_IRQ_ISP_ARM_LOCAL_LOWPWR, { 0x0, 0x0, 0x0 } },
0098 { S5P_DIS_IRQ_ISP_ARM_CENTRAL_LOWPWR, { 0x0, 0x0, 0x0 } },
0099 { S5P_ARM_COMMON_LOWPWR, { 0x0, 0x0, 0x2 } },
0100 { S5P_L2_0_LOWPWR, { 0x0, 0x0, 0x3 } },
0101
0102 { S5P_ARM_L2_0_OPTION, { 0x10, 0x10, 0x0 } },
0103 { S5P_L2_1_LOWPWR, { 0x0, 0x0, 0x3 } },
0104 { S5P_ARM_L2_1_OPTION, { 0x10, 0x10, 0x0 } },
0105 { S5P_CMU_ACLKSTOP_LOWPWR, { 0x1, 0x0, 0x0 } },
0106 { S5P_CMU_SCLKSTOP_LOWPWR, { 0x1, 0x0, 0x0 } },
0107 { S5P_CMU_RESET_LOWPWR, { 0x1, 0x1, 0x0 } },
0108 { S5P_DRAM_FREQ_DOWN_LOWPWR, { 0x1, 0x1, 0x1 } },
0109 { S5P_DDRPHY_DLLOFF_LOWPWR, { 0x1, 0x1, 0x1 } },
0110 { S5P_LPDDR_PHY_DLL_LOCK_LOWPWR, { 0x1, 0x1, 0x1 } },
0111 { S5P_CMU_ACLKSTOP_COREBLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0112 { S5P_CMU_SCLKSTOP_COREBLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0113 { S5P_CMU_RESET_COREBLK_LOWPWR, { 0x1, 0x1, 0x0 } },
0114 { S5P_APLL_SYSCLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0115 { S5P_MPLL_SYSCLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0116 { S5P_VPLL_SYSCLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0117 { S5P_EPLL_SYSCLK_LOWPWR, { 0x1, 0x1, 0x0 } },
0118 { S5P_MPLLUSER_SYSCLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0119 { S5P_CMU_CLKSTOP_GPS_ALIVE_LOWPWR, { 0x1, 0x0, 0x0 } },
0120 { S5P_CMU_RESET_GPSALIVE_LOWPWR, { 0x1, 0x0, 0x0 } },
0121 { S5P_CMU_CLKSTOP_CAM_LOWPWR, { 0x1, 0x0, 0x0 } },
0122 { S5P_CMU_CLKSTOP_TV_LOWPWR, { 0x1, 0x0, 0x0 } },
0123 { S5P_CMU_CLKSTOP_MFC_LOWPWR, { 0x1, 0x0, 0x0 } },
0124 { S5P_CMU_CLKSTOP_G3D_LOWPWR, { 0x1, 0x0, 0x0 } },
0125 { S5P_CMU_CLKSTOP_LCD0_LOWPWR, { 0x1, 0x0, 0x0 } },
0126 { S5P_CMU_CLKSTOP_ISP_LOWPWR, { 0x1, 0x0, 0x0 } },
0127 { S5P_CMU_CLKSTOP_MAUDIO_LOWPWR, { 0x1, 0x0, 0x0 } },
0128 { S5P_CMU_CLKSTOP_GPS_LOWPWR, { 0x1, 0x0, 0x0 } },
0129 { S5P_CMU_RESET_CAM_LOWPWR, { 0x1, 0x0, 0x0 } },
0130 { S5P_CMU_RESET_TV_LOWPWR, { 0x1, 0x0, 0x0 } },
0131 { S5P_CMU_RESET_MFC_LOWPWR, { 0x1, 0x0, 0x0 } },
0132 { S5P_CMU_RESET_G3D_LOWPWR, { 0x1, 0x0, 0x0 } },
0133 { S5P_CMU_RESET_LCD0_LOWPWR, { 0x1, 0x0, 0x0 } },
0134 { S5P_CMU_RESET_ISP_LOWPWR, { 0x1, 0x0, 0x0 } },
0135 { S5P_CMU_RESET_MAUDIO_LOWPWR, { 0x1, 0x1, 0x0 } },
0136 { S5P_CMU_RESET_GPS_LOWPWR, { 0x1, 0x0, 0x0 } },
0137 { S5P_TOP_BUS_LOWPWR, { 0x3, 0x0, 0x0 } },
0138 { S5P_TOP_RETENTION_LOWPWR, { 0x1, 0x0, 0x1 } },
0139 { S5P_TOP_PWR_LOWPWR, { 0x3, 0x0, 0x3 } },
0140 { S5P_TOP_BUS_COREBLK_LOWPWR, { 0x3, 0x0, 0x0 } },
0141 { S5P_TOP_RETENTION_COREBLK_LOWPWR, { 0x1, 0x0, 0x1 } },
0142 { S5P_TOP_PWR_COREBLK_LOWPWR, { 0x3, 0x0, 0x3 } },
0143 { S5P_LOGIC_RESET_LOWPWR, { 0x1, 0x1, 0x0 } },
0144 { S5P_OSCCLK_GATE_LOWPWR, { 0x1, 0x0, 0x1 } },
0145 { S5P_LOGIC_RESET_COREBLK_LOWPWR, { 0x1, 0x1, 0x0 } },
0146 { S5P_OSCCLK_GATE_COREBLK_LOWPWR, { 0x1, 0x0, 0x1 } },
0147 { S5P_ONENAND_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0148 { S5P_ONENAND_MEM_OPTION, { 0x10, 0x10, 0x0 } },
0149 { S5P_HSI_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0150 { S5P_HSI_MEM_OPTION, { 0x10, 0x10, 0x0 } },
0151 { S5P_G2D_ACP_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0152 { S5P_G2D_ACP_MEM_OPTION, { 0x10, 0x10, 0x0 } },
0153 { S5P_USBOTG_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0154 { S5P_USBOTG_MEM_OPTION, { 0x10, 0x10, 0x0 } },
0155 { S5P_HSMMC_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0156 { S5P_HSMMC_MEM_OPTION, { 0x10, 0x10, 0x0 } },
0157 { S5P_CSSYS_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0158 { S5P_CSSYS_MEM_OPTION, { 0x10, 0x10, 0x0 } },
0159 { S5P_SECSS_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0160 { S5P_SECSS_MEM_OPTION, { 0x10, 0x10, 0x0 } },
0161 { S5P_ROTATOR_MEM_LOWPWR, { 0x3, 0x0, 0x0 } },
0162 { S5P_ROTATOR_MEM_OPTION, { 0x10, 0x10, 0x0 } },
0163 { S5P_PAD_RETENTION_DRAM_LOWPWR, { 0x1, 0x0, 0x0 } },
0164 { S5P_PAD_RETENTION_MAUDIO_LOWPWR, { 0x1, 0x1, 0x0 } },
0165 { S5P_PAD_RETENTION_GPIO_LOWPWR, { 0x1, 0x0, 0x0 } },
0166 { S5P_PAD_RETENTION_UART_LOWPWR, { 0x1, 0x0, 0x0 } },
0167 { S5P_PAD_RETENTION_MMCA_LOWPWR, { 0x1, 0x0, 0x0 } },
0168 { S5P_PAD_RETENTION_MMCB_LOWPWR, { 0x1, 0x0, 0x0 } },
0169 { S5P_PAD_RETENTION_EBIA_LOWPWR, { 0x1, 0x0, 0x0 } },
0170 { S5P_PAD_RETENTION_EBIB_LOWPWR, { 0x1, 0x0, 0x0 } },
0171 { S5P_PAD_RETENTION_GPIO_COREBLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0172 { S5P_PAD_RETENTION_ISOLATION_LOWPWR, { 0x1, 0x0, 0x0 } },
0173 { S5P_PAD_ISOLATION_COREBLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0174 { S5P_PAD_RETENTION_ALV_SEL_LOWPWR, { 0x1, 0x0, 0x0 } },
0175 { S5P_XUSBXTI_LOWPWR, { 0x1, 0x1, 0x0 } },
0176 { S5P_XXTI_LOWPWR, { 0x1, 0x1, 0x0 } },
0177 { S5P_EXT_REGULATOR_LOWPWR, { 0x1, 0x1, 0x0 } },
0178 { S5P_GPIO_MODE_LOWPWR, { 0x1, 0x0, 0x0 } },
0179 { S5P_GPIO_MODE_COREBLK_LOWPWR, { 0x1, 0x0, 0x0 } },
0180 { S5P_GPIO_MODE_MAUDIO_LOWPWR, { 0x1, 0x1, 0x0 } },
0181 { S5P_TOP_ASB_RESET_LOWPWR, { 0x1, 0x1, 0x1 } },
0182 { S5P_TOP_ASB_ISOLATION_LOWPWR, { 0x1, 0x0, 0x1 } },
0183 { S5P_CAM_LOWPWR, { 0x7, 0x0, 0x0 } },
0184 { S5P_TV_LOWPWR, { 0x7, 0x0, 0x0 } },
0185 { S5P_MFC_LOWPWR, { 0x7, 0x0, 0x0 } },
0186 { S5P_G3D_LOWPWR, { 0x7, 0x0, 0x0 } },
0187 { S5P_LCD0_LOWPWR, { 0x7, 0x0, 0x0 } },
0188 { S5P_ISP_LOWPWR, { 0x7, 0x0, 0x0 } },
0189 { S5P_MAUDIO_LOWPWR, { 0x7, 0x7, 0x0 } },
0190 { S5P_GPS_LOWPWR, { 0x7, 0x0, 0x0 } },
0191 { S5P_GPS_ALIVE_LOWPWR, { 0x7, 0x0, 0x0 } },
0192 { S5P_CMU_SYSCLK_ISP_LOWPWR, { 0x1, 0x0, 0x0 } },
0193 { S5P_CMU_SYSCLK_GPS_LOWPWR, { 0x1, 0x0, 0x0 } },
0194 { S5P_ARM_CORE2_LOWPWR, { 0x0, 0x0, 0x2 } },
0195 { S5P_DIS_IRQ_CORE2, { 0x0, 0x0, 0x0 } },
0196 { S5P_DIS_IRQ_CENTRAL2, { 0x0, 0x0, 0x0 } },
0197 { S5P_ARM_CORE3_LOWPWR, { 0x0, 0x0, 0x2 } },
0198 { S5P_DIS_IRQ_CORE3, { 0x0, 0x0, 0x0 } },
0199 { S5P_DIS_IRQ_CENTRAL3, { 0x0, 0x0, 0x0 } },
0200 { PMU_TABLE_END,},
0201 };
0202
0203 const struct exynos_pmu_data exynos4210_pmu_data = {
0204 .pmu_config = exynos4210_pmu_config,
0205 };
0206
0207 const struct exynos_pmu_data exynos4412_pmu_data = {
0208 .pmu_config = exynos4412_pmu_config,
0209 };