static int __devinit vt1603_bat_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id) { int ret = 0; struct vt1603_bat_drvdata *bat_drv = NULL; struct vt1603_bat_platform_data *bat_pdata; bat_dbg("Enter\n"); bat_pdata = i2c->dev.platform_data; if (NULL == bat_pdata) { bat_dbg("vt1603_bat: platform data NULL\n"); ret = -ENODATA; goto out; } bat_drv = kzalloc(sizeof(*bat_drv), GFP_KERNEL); if (!bat_drv) { bat_dbg("vt1603_bat: alloc driver data failed\n"); ret = -ENOMEM; goto out; } vt1603_bat = bat_drv; bat_drv->i2c = i2c; dev_set_drvdata(&i2c->dev, bat_drv); vt1603_reg_dump(bat_drv, 0xc0, 12); #ifdef CONFIG_VT1603_BATTERY_ENABLE vt1603_bat_info_init(bat_drv); vt1603_bat_work(&bat_drv->work); #endif printk(KERN_INFO "VT1603 SAR-ADC Battery Driver OK!\n"); goto out; out: bat_dbg("Exit\n"); return ret; }
static int __devinit vt1603_bat_probe(struct platform_device *pdev) { int ret = 0; struct vt1603_bat_drvdata *bat_drv = vt1603_bat; dbg("Enter\n"); bat_drv->alarm_threshold = 0xc0; bat_drv->wakeup_src = BA_WAKEUP_SRC_0; bat_drv->tdev = dev_get_platdata(&pdev->dev); dev_set_drvdata(&pdev->dev, bat_drv); #ifdef VT1603_BATTERY_EN vt1603_bat_info_init(bat_drv); // vt1603_bat_work(&bat_drv->work); #endif vt1603_reg_dump(bat_drv, 0xc0, 12); //printk("VT160X SAR-ADC Battery Driver Installed!\n"); goto out; out: dbg("Exit\n"); return ret; }