• Home
  • Raw
  • Download

Lines Matching +full:ch0 +full:- +full:2

2  *  tsl2550.c - Linux kernel modules for ambient light sensor
9 * the Free Software Foundation; either version 2 of the License, or
57 static const u8 TSL2550_MODE_RANGE[2] = {
71 data->operating_mode = mode; in tsl2550_set_operating_mode()
87 tsl2550_set_operating_mode(client, data->operating_mode); in tsl2550_set_power_state()
90 data->power_state = state; in tsl2550_set_power_state()
103 return -EAGAIN; in tsl2550_get_adc_value()
134 0, 1, 2, 3, 4, 5, 6, 7,
154 * pages 2, 3.
156 static int tsl2550_calculate_lux(u8 ch0, u8 ch1) in tsl2550_calculate_lux() argument
161 u16 c0 = count_lut[ch0]; in tsl2550_calculate_lux()
176 lux = ((c0 - c1) * ratio_lut[r]) / 256; in tsl2550_calculate_lux()
195 return sprintf(buf, "%u\n", data->power_state); in tsl2550_show_power_state()
207 return -EINVAL; in tsl2550_store_power_state()
209 mutex_lock(&data->update_lock); in tsl2550_store_power_state()
211 mutex_unlock(&data->update_lock); in tsl2550_store_power_state()
227 return sprintf(buf, "%u\n", data->operating_mode); in tsl2550_show_operating_mode()
239 return -EINVAL; in tsl2550_store_operating_mode()
241 if (data->power_state == 0) in tsl2550_store_operating_mode()
242 return -EBUSY; in tsl2550_store_operating_mode()
244 mutex_lock(&data->update_lock); in tsl2550_store_operating_mode()
246 mutex_unlock(&data->update_lock); in tsl2550_store_operating_mode()
260 u8 ch0, ch1; in __tsl2550_show_lux() local
266 ch0 = ret; in __tsl2550_show_lux()
274 ret = tsl2550_calculate_lux(ch0, ch1); in __tsl2550_show_lux()
277 if (data->operating_mode == 1) in __tsl2550_show_lux()
291 if (!data->power_state) in tsl2550_show_lux1_input()
292 return -EBUSY; in tsl2550_show_lux1_input()
294 mutex_lock(&data->update_lock); in tsl2550_show_lux1_input()
296 mutex_unlock(&data->update_lock); in tsl2550_show_lux1_input()
332 return -ENODEV; in tsl2550_init_client()
333 data->power_state = 1; in tsl2550_init_client()
337 TSL2550_MODE_RANGE[data->operating_mode]); in tsl2550_init_client()
352 struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); in tsl2550_probe()
358 err = -EIO; in tsl2550_probe()
364 err = -ENOMEM; in tsl2550_probe()
367 data->client = client; in tsl2550_probe()
371 opmode = client->dev.platform_data; in tsl2550_probe()
374 dev_err(&client->dev, "invalid operating_mode (%d)\n", in tsl2550_probe()
376 err = -EINVAL; in tsl2550_probe()
379 data->operating_mode = *opmode; in tsl2550_probe()
381 data->operating_mode = 0; /* default mode is standard */ in tsl2550_probe()
382 dev_info(&client->dev, "%s operating mode\n", in tsl2550_probe()
383 data->operating_mode ? "extended" : "standard"); in tsl2550_probe()
385 mutex_init(&data->update_lock); in tsl2550_probe()
393 err = sysfs_create_group(&client->dev.kobj, &tsl2550_attr_group); in tsl2550_probe()
397 dev_info(&client->dev, "support ver. %s enabled\n", DRIVER_VERSION); in tsl2550_probe()
409 sysfs_remove_group(&client->dev.kobj, &tsl2550_attr_group); in tsl2550_remove()