static ssize_t lcd_backlight_show_pwm(struct device *dev, struct device_attribute *attr, char *buf) { int r; u8 level, pwm_low, pwm_high, config; mutex_lock(&main_lm3630_dev->bl_mutex); lm3630_read_reg(main_lm3630_dev->client, 0x01, &config); mdelay(3); lm3630_read_reg(main_lm3630_dev->client, 0x03, &level); mdelay(3); lm3630_read_reg(main_lm3630_dev->client, 0x12, &pwm_low); mdelay(3); lm3630_read_reg(main_lm3630_dev->client, 0x13, &pwm_high); mdelay(3); mutex_unlock(&main_lm3630_dev->bl_mutex); r = snprintf(buf, PAGE_SIZE, "Show PWM level: %d pwm_low: %d " "pwm_high: %d config: %d\n", level, pwm_low, pwm_high, config); return r; }
static int get_reg(void *data, u64 *val) { u32 addr = (u32) data; u8 temp; int ret; struct i2c_client *client = lm3630_dev->client; ret = lm3630_read_reg(client, addr, &temp); if (ret < 0) return ret; *val = temp; return 0; }