diff options
| author | Yuval Adam <_@yuv.al> | 2017-08-30 08:25:59 +0000 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2017-08-30 08:25:59 +0000 |
| commit | 8e4bff4cab0ddac6060645b0715210484d02ff40 (patch) | |
| tree | 3a5c3024371a04692a3a6d9974d001cdff8ebf84 /include/soc/sprd/__sc8830_dmc_dfs.h | |
Diffstat (limited to 'include/soc/sprd/__sc8830_dmc_dfs.h')
| -rw-r--r-- | include/soc/sprd/__sc8830_dmc_dfs.h | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/include/soc/sprd/__sc8830_dmc_dfs.h b/include/soc/sprd/__sc8830_dmc_dfs.h new file mode 100644 index 00000000..6afc127c --- /dev/null +++ b/include/soc/sprd/__sc8830_dmc_dfs.h @@ -0,0 +1,166 @@ + #ifndef __SC8830_DMC_DFS_H +#define __SC8830_DMC_DFS_H +#define EMC_DLL_SWITCH_DISABLE_MODE 0x0 +#define EMC_DLL_SWITCH_ENABLE_MODE 0x1 +#define EMC_DLL_NOT_SWITCH_MODE 0x2 +#define EMC_DLL_MODE_MASK (0x3) +#define EMC_CLK_DIV_OFFSET 2 + +#define EMC_FREQ_SWITCH_STATUS_OFFSET (4) +#define EMC_FREQ_SWITCH_COMPLETE (1) +#define EMC_FREQ_SWITCH_STATUS_MASK (0xf << EMC_FREQ_SWITCH_STATUS_OFFSET) + +#define EMC_DDR_TYPE_LPDDR1 0 +#define EMC_DDR_TYPE_LPDDR2 1 +#define EMC_DDR_TYPE_LPDDR3 2 +#define EMC_DDR_TYPE_DDR2 3 +#define EMC_DDR_TYPE_DDR3 4 +#define EMC_DDR_TYPE_OFFSET 8 +#define EMC_DDR_TYPE_MASK (0xf << EMC_DDR_TYPE_OFFSET) + +#define EMC_CLK_FREQ_OFFSET (12) +#define EMC_CLK_FREQ_MASK (0xfff << EMC_CLK_FREQ_OFFSET) + +#define EMC_FREQ_NORMAL_SCENE 0x0 //normal lcd power off +#define EMC_FREQ_MP4_SENE 0x1 //play mp4 mode +#define EMC_FREQ_NORMAL_SWITCH_SENE 0x02 +#define EMC_FREQ_DEEP_SLEEP_SENE 0x03 +#define EMC_FREQ_RESUME_SENE 0x04 +#define EMC_FREQ_SENE_OFFSET 24 +#define EMC_FREQ_SENE_MASK (0xf << EMC_FREQ_SENE_OFFSET) + +#define EMC_BSP_BPS_200_CLR 0x0 +#define EMC_BSP_BPS_200_SET 0x1 +#define EMC_BSP_BPS_200_NOT_CHANGE 0x2 +#define EMC_BSP_BPS_200_OFFSET 28 +#define EMC_BSP_BPS_200_MASK (0xf << EMC_BSP_BPS_200_OFFSET) + +#define EMC_PARAM_IDX_OFFSET 28 +#define EMC_PARAM_IDX_MASK (0XF << EMC_PARAM_IDX_OFFSET) +#define DMC_CHANGE_FREQ_WAIT_TIMEOUT 100 +typedef struct +{ + u32 ddr_clk; + //umctl reg + u32 umctl2_rfshtmg; + u32 umctl2_init0; + u32 umctl2_init1; + u32 umctl2_init2; + u32 umctl2_init3; + u32 umctl2_init4; + u32 umctl2_init5; + u32 umctl2_dramtmg0; + u32 umctl2_dramtmg1; + u32 umctl2_dramtmg2; + u32 umctl2_dramtmg3; + u32 umctl2_dramtmg4; + u32 umctl2_dramtmg5; + u32 umctl2_dramtmg6; + u32 umctl2_dramtmg7; + u32 umctl2_dramtmg8; + u32 umctl2_dfitmg0; + u32 umctl2_dfitmg1; + //publ reg + u32 publ_ptr0; + u32 publ_ptr1; + u32 publ_dtpr0; + u32 publ_dtpr1; + u32 publ_dtpr2; + u32 publ_mr0; + u32 publ_mr1; + u32 publ_mr2; + u32 publ_mr3; + u32 publ_dx0gcr; + u32 publ_dx1gcr; + u32 publ_dx2gcr; + u32 publ_dx3gcr; + u32 publ_dx0dqstr; + u32 publ_dx1dqstr; + u32 publ_dx2dqstr; + u32 publ_dx3dqstr; +}ddr_dfs_val_t; + +typedef struct +{ + u32 ddr_clk; + + //umctl reg + u32 umctl_rfshtmg; + u32 umctl_dramtmg0; + u32 umctl_dramtmg1; + u32 umctl_dramtmg2; + u32 umctl_dramtmg3; + u32 umctl_dramtmg4; + u32 umctl_dramtmg5; + u32 umctl_dramtmg7; + u32 umctl_dramtmg8; + u32 umctl_dfitmg0; + u32 umctl_init3; + u32 umctl_zqctl0; + u32 umctl_zqctl1; + + //publ reg + u32 publ_mr2; + u32 publ_dx0gtr; + u32 publ_dx1gtr; + u32 publ_dx2gtr; + u32 publ_dx3gtr; + u32 publ_pgcr3; + u32 publ_acmdlr; + u32 publ_dx0mdlr; + u32 publ_dx1mdlr; + u32 publ_dx2mdlr; + u32 publ_dx3mdlr; + u32 publ_aclcdlr; + u32 publ_dx0lcdlr0; + u32 publ_dx1lcdlr0; + u32 publ_dx2lcdlr0; + u32 publ_dx3lcdlr0; + u32 publ_dx0lcdlr1; + u32 publ_dx1lcdlr1; + u32 publ_dx2lcdlr1; + u32 publ_dx3lcdlr1; + u32 publ_dx0lcdlr2; + u32 publ_dx1lcdlr2; + u32 publ_dx2lcdlr2; + u32 publ_dx3lcdlr2; + u32 publ_dsgcr; + u32 publ_dtpr0; + u32 publ_dtpr1; + u32 publ_dtpr2; + u32 publ_dtpr3; + u32 resevered; +}ddr_dfs_v2_t; + +typedef struct +{ + u32 ddr_clk; + + u32 publ_acmdlr; + u32 publ_dx0mdlr; + u32 publ_dx1mdlr; + u32 publ_dx2mdlr; + u32 publ_dx3mdlr; + + u32 publ_aclcdlr; + u32 publ_dx0lcdlr0; + u32 publ_dx1lcdlr0; + u32 publ_dx2lcdlr0; + u32 publ_dx3lcdlr0; + u32 publ_dx0lcdlr1; + u32 publ_dx1lcdlr1; + u32 publ_dx2lcdlr1; + u32 publ_dx3lcdlr1; + u32 publ_dx0lcdlr2; + u32 publ_dx1lcdlr2; + u32 publ_dx2lcdlr2; + u32 publ_dx3lcdlr2; +} publ_calc_t; + +#define AP_DMC_DFS_MAX_REQ 3 +#define AP_UNVALID_REQ 0 +struct dmc_req_array { + /*if the req[n] is 0 the req[n] is the last request from AP*/ + u32 req[AP_DMC_DFS_MAX_REQ]; +}; +#endif //__SC8830_DMC_DFS_H |
