#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.32.9
-# Fri Sep 3 20:53:52 2010
+# Sat Sep 4 20:01:16 2010
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
+CONFIG_RK2818_REGULATOR_CHARGE=y
CONFIG_RK2818_REGULATOR_LP8725=y
CONFIG_MEDIA_SUPPORT=y
int gBatUseStatus = BAT_LOADER_STATUS;
static struct regulator *pChargeregulator;
+int gVbuscharge = 0;
extern int dwc_vbus_status(void);
extern int get_msc_connect_flag(void);
static int rk2818_get_charge_status(void)
{
+ struct regulator * rdev = pChargeregulator;
//DBG("gAdcValue[CHN_USB_ADC]=%d\n",gAdcValue[CHN_USB_ADC]);
if(gAdcValue[CHN_USB_ADC] > 250) //about 0.5V
{
}
else if((1 == dwc_vbus_status())&& (0 == get_msc_connect_flag()))
{
- regulator_set_current_limit(pChargeregulator,0,1200000);
+ if(gVbuscharge !=1)
+{
+ if(rdev== pChargeregulator )
+ regulator_set_current_limit(rdev,0,1200000);
+}
+ gVbuscharge = 1;
return 1;
}
else
{
- regulator_set_current_limit(pChargeregulator,0,475000);
+ if(gVbuscharge !=0 )
+{
+ if(rdev== pChargeregulator )
+ regulator_set_current_limit(rdev,0,475000);
+}
+ gVbuscharge = 0;
+
return 0;
}
}
static int charge_set_current(struct regulator_dev *dev,\r
int min_uA, int max_uA)\r
{\r
- printk("enter charge_set_current , max_uA = %d\n",max_uA);\r
+ DBG("enter charge_set_current , max_uA = %d\n",max_uA);\r
struct charge_platform_data *pdata = rdev_get_drvdata(dev);\r
const int *current_map = charge_current_map;\r
int max_mA = max_uA / 1000;\r
- printk("charge_set_current:pdata->gpio_charge=%d\n",pdata->gpio_charge);\r
if ( max_mA == current_map[0] )\r
gpio_direction_output(pdata->gpio_charge, GPIO_HIGH);\r
else \r
struct charge_platform_data *pdata = pdev->dev.platform_data;\r
struct regulator_dev *rdev;\r
int ret ;\r
-printk(KERN_INFO "enter charge regulator\n");\r
-#if 0\r
- rdev = regulator_register(&chargeregulator, &pdev->dev,\r
- pdev->dev.platform_data, pdata);\r
-#else\r
+
rdev = regulator_register(&chargeregulator, &pdev->dev,\r
pdata->init_data, pdata);\r
-#endif\r
if (IS_ERR(rdev)) {\r
dev_dbg(&pdev->dev, "couldn't register regulator\n");
return PTR_ERR(rdev);\r