void subpm_output_enable(void) { u8 data; struct lp8720_platform_data *pdata; if(lp8720_client == NULL) { printk(KERN_ERR "%s lp8720_client NULL\n", __func__); return; } pdata = lp8720_client->dev.platform_data; #if 0 lp8720_read_reg(lp8720_client, LP8720_GENERAL_SETTING, &data); printk(KERN_ERR "%s GENERAL_SETTING %02x\n", __func__, data); lp8720_read_reg(lp8720_client, LP8720_OUTPUT_ENABLE, &data); printk(KERN_ERR "%s OUTPUT_ENABLE %02x\n", __func__, data); lp8720_read_reg(lp8720_client, LP8720_LDO1_SETTING, &data); printk(KERN_ERR "%s LDO1_SETTING %02x\n", __func__, data); lp8720_read_reg(lp8720_client, LP8720_LDO2_SETTING, &data); printk(KERN_ERR "%s LDO2_SETTING %02x\n", __func__, data); lp8720_read_reg(lp8720_client, LP8720_LDO3_SETTING, &data); printk(KERN_ERR "%s LDO3_SETTING %02x\n", __func__, data); lp8720_read_reg(lp8720_client, LP8720_LDO4_SETTING, &data); printk(KERN_ERR "%s LDO4_SETTING %02x\n", __func__, data); lp8720_read_reg(lp8720_client, LP8720_LDO5_SETTING, &data); printk(KERN_ERR "%s LDO5_SETTING %02x\n", __func__, data); lp8720_read_reg(lp8720_client, LP8720_BUCK_SETTING1, &data); printk(KERN_ERR "%s BUCK_SETTING1 %02x\n", __func__, data); lp8720_read_reg(lp8720_client, LP8720_BUCK_SETTING2, &data); printk(KERN_ERR "%s BUCK_SETTING2 %02x\n", __func__, data); #endif lp8720_write_reg(lp8720_client, LP8720_OUTPUT_ENABLE, 0x80 | lp8720_output_status); /* <*****@*****.**> recover settings after thermal shutdown or any reset */ #if 0 lp8720_read_reg(lp8720_client, LP8720_LDO5_SETTING, &data); //printk(KERN_ERR "LP8720_LDO5_SETTING %02x\n", data); if (data == 0xff) { lp8720_init(); printk(KERN_ERR "%s LP8720 registers recovered.\n", __func__); } #endif }
void subpm_set_output(subpm_output_enum outnum, int onoff) { struct lp8720_platform_data *pdata; if(lp8720_client == NULL) { printk(KERN_ERR "[lp8720] %s lp8720_client NULL\n", __func__); return; } if(outnum > 5) { dev_err(&lp8720_client->dev, "[lp8720] outnum error\n"); return; } if(onoff == 0) lp8720_output_status &= ~(1<<outnum); else lp8720_output_status |= (1<<outnum); pdata = lp8720_client->dev.platform_data; lp8720_write_reg(lp8720_client, LP8720_OUTPUT_ENABLE, 0x80 | lp8720_output_status); udelay(10); /* */ #if 0 lp8720_read_reg(lp8720_client, LP8720_LDO5_SETTING, &data); //printk(KERN_ERR "LP8720_LDO5_SETTING %02x\n", data); if (data == 0xff) { lp8720_init(); printk(KERN_ERR "%s LP8720 registers recovered.\n", __func__); } #endif }