rk2926:a713:compat act8931 and tps65910 in i2c_sram.c
author张晴 <zhangqing@rock-chips.com>
Fri, 28 Sep 2012 07:59:04 +0000 (15:59 +0800)
committer张晴 <zhangqing@rock-chips.com>
Fri, 28 Sep 2012 07:59:04 +0000 (15:59 +0800)
arch/arm/mach-rk2928/i2c_sram.c [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index 11c6477..4fac927
@@ -308,24 +308,45 @@ uint8 __sramfunc sram_i2c_read(uint8 I2CSlaveAddr, uint8 regAddr)
        sram_i2c_disenable();
        return data;
 }
-
+extern int __sramdata g_pmic_type ;
+#define PMIC_TYPE_TPS65910     2
+#define PMIC_TYPE_ACT8931      3
 void __sramfunc rk30_suspend_voltage_set(unsigned int vol)
 {
     uint8 slaveaddr;
     uint16 slavereg;
     uint8 data,ret = 0;
        uint8 rtc_status_reg = 0x11;
-       slaveaddr = I2C_SADDR;            //slave device addr
-    slavereg = 0x22;            // reg addr
-    data = 0x23;       //set arm 1.0v
-    
-    sram_i2c_init();  //init i2c device
-    ret = sram_i2c_read(slaveaddr, rtc_status_reg);
+       sram_i2c_init();  //init i2c device
+       #if defined(CONFIG_MFD_TPS65910)        
+       if(g_pmic_type == PMIC_TYPE_TPS65910)
+       {
+       slaveaddr = 0x2d;            //slave device addr
+       slavereg = 0x22;            // reg addr
+       data = 0x23;       //set arm 1.0v
+
+       ret = sram_i2c_read(slaveaddr, rtc_status_reg);
        sram_i2c_write(slaveaddr, rtc_status_reg, ret);
-    arm_voltage = sram_i2c_read(slaveaddr, slavereg);
-//     sram_printhex(ret);
-    sram_i2c_write(slaveaddr, slavereg, data);//       
-    sram_i2c_deinit();  //deinit i2c device
+       arm_voltage = sram_i2c_read(slaveaddr, slavereg);
+       //sram_printhex(ret);
+       sram_i2c_write(slaveaddr, slavereg, data);//    
+       }
+       #endif
+       
+       #if defined(CONFIG_REGULATOR_ACT8931)   
+       if(g_pmic_type == PMIC_TYPE_ACT8931)
+       {
+       slaveaddr = 0x5b;            //slave device addr
+       slavereg = 0x40;            // reg addr
+       data = 0x10;       //set arm 1.0v
+
+       arm_voltage = sram_i2c_read(slaveaddr, slavereg);
+       //sram_printhex(ret);
+       sram_i2c_write(slaveaddr, slavereg, data);//    
+       sram_i2c_write(slaveaddr,( slavereg+0x1), data);//      
+       }
+       #endif
+         sram_i2c_deinit();  //deinit i2c device
 
 }
 
@@ -334,19 +355,28 @@ void __sramfunc rk30_suspend_voltage_resume(unsigned int vol)
     uint8 slaveaddr;
     uint16 slavereg;
     uint8 data,ret = 0;
-       slaveaddr = I2C_SADDR;            //slave device addr
-    slavereg = 0x22;            // reg addr  
        
-    sram_i2c_init();  //init i2c device
-       if (arm_voltage >= 0x3b ){   // set arm <= 1.3v
-               data = 0x3b;
+       data = arm_voltage;
+       sram_i2c_init();  //init i2c device
+       #if defined(CONFIG_MFD_TPS65910)        
+       if(g_pmic_type == PMIC_TYPE_TPS65910)
+       {
+               slaveaddr = 0x2d;            //slave device addr
+               slavereg = 0x22;            // reg add
+                sram_i2c_write(slaveaddr, slavereg, data);
+                sram_udelay(20000);
        }
-       else if(arm_voltage <= 0x1f){
-               data = 0x1f;                     // set arm >= 0.95v
+       #endif
+       #if defined(CONFIG_REGULATOR_ACT8931)   
+       if(g_pmic_type == PMIC_TYPE_ACT8931)
+       {
+               slaveaddr = 0x5b;            //slave device addr
+               slavereg = 0x40;            // reg addr
+               sram_i2c_write(slaveaddr, slavereg, data);
+               sram_i2c_write(slaveaddr, (slavereg+0x1), data);
+               sram_udelay(20000);
        }
-       else
-               data = arm_voltage;
-    sram_i2c_write(slaveaddr, slavereg, data);
+       #endif
     sram_i2c_deinit();  //deinit i2c device
 }