diff options
author | Neil Zhang <zhangwm@marvell.com> | 2012-09-04 15:48:29 +0800 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2019-07-22 19:39:59 +0200 |
commit | f6bd75597a06a709f13294169d329b52c9b91c45 (patch) | |
tree | 484c615ab092f5044c7c61541ab2dc7db8f80117 | |
parent | 1510248ebb957c126bc5a0e832b5d5609b1e4207 (diff) | |
download | linux-mmp3-dell-ariel-f6bd75597a06a709f13294169d329b52c9b91c45.tar.gz |
ARM: mmp: adjust xtc for 988 GPU/VPU sram
Adjust GPU/VPU sram xtc to achieve better Vmin floor.
Change-Id: Ie0cffc119e02b8ac2b57d6f27a67988577b13794
Signed-off-by: Neil Zhang <zhangwm@marvell.com>
-rw-r--r-- | arch/arm/mach-mmp/include/mach/regs-ciu.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-mmp/pxa988.c | 15 |
2 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mach-mmp/include/mach/regs-ciu.h b/arch/arm/mach-mmp/include/mach/regs-ciu.h index 625d472b8408ba..cddbe1d84119c9 100644 --- a/arch/arm/mach-mmp/include/mach/regs-ciu.h +++ b/arch/arm/mach-mmp/include/mach/regs-ciu.h @@ -44,6 +44,12 @@ /* This is used by pxa988 for warm reset */ #define CIU_WARM_RESET_VECTOR CIU_REG(0x00d8) +/* used for set xtc */ +#define CIU_GPU_XTC_REG CIU_REG(0x00a4) +#define CIU_VPU_XTC_REG CIU_REG(0x00a8) +#define CIU_CA9_CPU_CONF_SRAM0 CIU_REG(0Xc8) +#define CIU_CA9_CPU_CONF_SRAM1 CIU_REG(0Xcc) + static __maybe_unused int ciu_ddr_ilv_on(void) { return ((__raw_readl(CIU_DDR_ILV_CTRL) & 0x7f) != 0); diff --git a/arch/arm/mach-mmp/pxa988.c b/arch/arm/mach-mmp/pxa988.c index 9997c533334f4d..3d7f1293c7776c 100644 --- a/arch/arm/mach-mmp/pxa988.c +++ b/arch/arm/mach-mmp/pxa988.c @@ -42,6 +42,7 @@ #include <mach/soc_coda7542.h> #include <mach/reset-pxa988.h> #include <mach/isp_dev.h> +#include <mach/regs-ciu.h> #include <mach/regs-usb.h> #include <mach/gpio-edge.h> #include <mach/mfp-pxa988.h> /* for 988 mfp fix */ @@ -701,6 +702,19 @@ static void __init pxa988_init_gpio(void) pxa_init_gpio(IRQ_PXA988_GPIO_AP, 0, 127, NULL); } +/* + * This function is used to adjust the xtc for sram. + * It is used to achieve better Vmin floor. + */ +static void pxa988_set_xtc(void) +{ + u32 tmp; + + writel_relaxed(0x44444, CIU_GPU_XTC_REG); + tmp = readl_relaxed(CIU_VPU_XTC_REG) & (~0x300); + writel_relaxed(tmp, CIU_VPU_XTC_REG); +} + static int __init pxa988_init(void) { pxa988_l2_cache_init(); @@ -725,6 +739,7 @@ static int __init pxa988_init(void) platform_device_register(&pxa988_device_vnc_touch); #endif /* CONFIG_TOUCHSCREEN_VNC */ + pxa988_set_xtc(); return 0; } |