mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-10-30 15:48:52 +01:00
104 lines
2.8 KiB
C
104 lines
2.8 KiB
C
#include "../pwrcal.h"
|
|
#include "../pwrcal-env.h"
|
|
#include "../pwrcal-rae.h"
|
|
#include "../pwrcal-pmu.h"
|
|
#include "S5E7570-cmusfr.h"
|
|
#include "S5E7570-pmusfr.h"
|
|
#include "S5E7570-cmu.h"
|
|
|
|
static void dispaud_prev(int enable)
|
|
{
|
|
pwrcal_setbit(CLKRUN_CMU_DISPAUD_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setbit(CLKSTOP_CMU_DISPAUD_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setbit(DISABLE_PLL_CMU_DISPAUD_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setf(RESET_LOGIC_DISPAUD_SYS_PWR_REG, 0, 0x3, 0);
|
|
pwrcal_setf(RESET_CMU_DISPAUD_SYS_PWR_REG, 0, 0x3, 0);
|
|
}
|
|
|
|
static void g3d_prev(int enable)
|
|
{
|
|
pwrcal_setbit(CLKRUN_CMU_G3D_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setbit(CLKSTOP_CMU_G3D_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setbit(DISABLE_PLL_CMU_G3D_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setf(RESET_LOGIC_G3D_SYS_PWR_REG, 0, 0x3, 0);
|
|
pwrcal_setf(RESET_CMU_G3D_SYS_PWR_REG, 0, 0x3, 0);
|
|
}
|
|
|
|
static void isp_prev(int enable)
|
|
{
|
|
pwrcal_setbit(CLKRUN_CMU_ISP_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setbit(CLKSTOP_CMU_ISP_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setbit(DISABLE_PLL_CMU_ISP_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setf(RESET_LOGIC_ISP_SYS_PWR_REG, 0, 0x3, 0);
|
|
pwrcal_setf(RESET_CMU_ISP_SYS_PWR_REG, 0, 0x3, 0);
|
|
}
|
|
|
|
static void mfcmscl_prev(int enable)
|
|
{
|
|
pwrcal_setbit(CLKRUN_CMU_MFCMSCL_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setbit(CLKSTOP_CMU_MFCMSCL_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setbit(DISABLE_PLL_CMU_MFCMSCL_SYS_PWR_REG, 0, 0);
|
|
pwrcal_setf(RESET_LOGIC_MFCMSCL_SYS_PWR_REG, 0, 0x3, 0);
|
|
pwrcal_setf(RESET_CMU_MFCMSCL_SYS_PWR_REG, 0, 0x3, 0);
|
|
}
|
|
|
|
static void dispaud_post(int enable)
|
|
{
|
|
pwrcal_setbit(PAD_RETENTION_AUD_OPTION, 28, 1);
|
|
}
|
|
|
|
static void g3d_post(int enable)
|
|
{
|
|
}
|
|
|
|
static void isp_post(int enable)
|
|
{
|
|
}
|
|
|
|
static void mfcmscl_post(int enable)
|
|
{
|
|
}
|
|
|
|
static void dispaud_config(int enable)
|
|
{
|
|
pwrcal_setf(DISPAUD_OPTION, 0, 0xFFFFFFFF, 0x2);
|
|
}
|
|
|
|
static void g3d_config(int enable)
|
|
{
|
|
pwrcal_setf(G3D_OPTION, 0, 0xFFFFFFFF, 0x1);
|
|
}
|
|
|
|
static void isp_config(int enable)
|
|
{
|
|
pwrcal_setf(ISP_OPTION, 0, 0xFFFFFFFF, 0x2);
|
|
}
|
|
|
|
static void mfcmscl_config(int enable)
|
|
{
|
|
pwrcal_setf(MFCMSCL_OPTION, 0, 0xFFFFFFFF, 0x2);
|
|
}
|
|
|
|
BLKPWR(blkpwr_dispaud, DISPAUD_CONFIGURATION, 0, 0xF, DISPAUD_STATUS, 0, 0xF, dispaud_config, dispaud_prev, dispaud_post);
|
|
BLKPWR(blkpwr_g3d, G3D_CONFIGURATION, 0, 0xF, G3D_STATUS, 0, 0xF, g3d_config, g3d_prev, g3d_post);
|
|
BLKPWR(blkpwr_isp, ISP_CONFIGURATION, 0, 0xF, ISP_STATUS, 0, 0xF, isp_config, isp_prev, isp_post);
|
|
BLKPWR(blkpwr_mfcmscl, MFCMSCL_CONFIGURATION, 0, 0xF, MFCMSCL_STATUS, 0, 0xF, mfcmscl_config, mfcmscl_prev, mfcmscl_post);
|
|
|
|
struct cal_pd *pwrcal_blkpwr_list[4];
|
|
unsigned int pwrcal_blkpwr_size = 4;
|
|
|
|
static int blkpwr_init(void)
|
|
{
|
|
pwrcal_blkpwr_list[0] = &blkpwr_blkpwr_dispaud;
|
|
pwrcal_blkpwr_list[1] = &blkpwr_blkpwr_g3d;
|
|
pwrcal_blkpwr_list[2] = &blkpwr_blkpwr_isp;
|
|
pwrcal_blkpwr_list[3] = &blkpwr_blkpwr_mfcmscl;
|
|
|
|
return 0;
|
|
}
|
|
|
|
struct cal_pd_ops cal_pd_ops = {
|
|
.pd_control = blkpwr_control,
|
|
.pd_status = blkpwr_status,
|
|
.pd_init = blkpwr_init,
|
|
};
|