Hi All,
I Need some help on the supply voltage of "MPU".
on my device ,the "vdd_mpu" is supplied by the pmic tps62361. but sometimes, the system will stuck, and the LCD is still on, the the cpu has crashed. after about ten seconds, the system restarts.
Now, I think this caused by the SmartReflex. when I locked the frequency at 1.5G or others, the system works well . I tried to improve the voltage of echo frequecy by below
diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-omap2/opp4xxx_data.c
index 8bebfca..642309f 100644
--- a/arch/arm/mach-omap2/opp4xxx_data.c
+++ b/arch/arm/mach-omap2/opp4xxx_data.c
@@ -358,6 +358,7 @@ static struct omap_opp_def __initdata omap446x_opp_def_list[] = {
* Structures containing OMAP4470 voltage supported and various
* voltage dependent data for each VDD.
*/
+#if 0
#define OMAP4470_VDD_MPU_OPP50_UV 1025000
#define OMAP4470_VDD_MPU_OPP100_UV 1200000
#define OMAP4470_VDD_MPU_OPPTURBO_UV 1312000
@@ -365,13 +366,29 @@ static struct omap_opp_def __initdata omap446x_opp_def_list[] = {
#define OMAP4470_VDD_MPU_OPPNITROSB_UV 1380000
struct omap_volt_data omap447x_vdd_mpu_volt_data[] = {
- VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPP50_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP),
- VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPP100_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP),
- VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPTURBO_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP),
- VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPNITRO_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27, OMAP_ABB_FAST_OPP),
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPP50_UV, 90000, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP),
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPP100_UV, 60000, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP),
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPTURBO_UV, 30000, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP),
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPNITRO_UV, 30000, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27, OMAP_ABB_FAST_OPP),
VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPNITROSB_UV, 30000, OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB, 0xfa, 0x27, OMAP_ABB_FAST_OPP),
VOLT_DATA_DEFINE(0, 0, 0, 0, 0, 0),
};
+#else
+#define OMAP4470_VDD_MPU_OPP50_UV 1040000
+#define OMAP4470_VDD_MPU_OPP100_UV 1100000
+#define OMAP4470_VDD_MPU_OPPTURBO_UV 1170000
+#define OMAP4470_VDD_MPU_OPPNITRO_UV 1310000
+#define OMAP4470_VDD_MPU_OPPNITROSB_UV 1410000
+
+struct omap_volt_data omap447x_vdd_mpu_volt_data[] = {
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPP50_UV, 1, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP),
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPP100_UV, 1, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP),
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPTURBO_UV, 1, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP),
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPNITRO_UV, 1, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27, OMAP_ABB_FAST_OPP),
+ VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPNITROSB_UV, 1, OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB, 0xfa, 0x27, OMAP_ABB_FAST_OPP),
And I disabled the calibation. now the system work better, but still sometimes stuck.
So, what is the suggestion about this issue ?
thanks for your reply !