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
}
Exemplo n.º 2
0
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

}