Symbol: cm3605
drivers/iio/light/cm3605.c
100
lux *= cm3605->als_max;
drivers/iio/light/cm3605.c
110
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
117
ret = cm3605_get_lux(cm3605);
drivers/iio/light/cm3605.c
157
struct cm3605 *cm3605;
drivers/iio/light/cm3605.c
165
indio_dev = devm_iio_device_alloc(dev, sizeof(*cm3605));
drivers/iio/light/cm3605.c
170
cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
171
cm3605->dev = dev;
drivers/iio/light/cm3605.c
172
cm3605->dir = IIO_EV_DIR_FALLING;
drivers/iio/light/cm3605.c
181
cm3605->als_max = 650;
drivers/iio/light/cm3605.c
184
cm3605->als_max = 300;
drivers/iio/light/cm3605.c
187
cm3605->als_max = 100;
drivers/iio/light/cm3605.c
190
cm3605->als_max = 50;
drivers/iio/light/cm3605.c
197
cm3605->aout = devm_iio_channel_get(dev, "aout");
drivers/iio/light/cm3605.c
198
if (IS_ERR(cm3605->aout)) {
drivers/iio/light/cm3605.c
199
ret = PTR_ERR(cm3605->aout);
drivers/iio/light/cm3605.c
203
ret = iio_get_channel_type(cm3605->aout, &ch_type);
drivers/iio/light/cm3605.c
211
cm3605->vdd = devm_regulator_get(dev, "vdd");
drivers/iio/light/cm3605.c
212
if (IS_ERR(cm3605->vdd))
drivers/iio/light/cm3605.c
213
return dev_err_probe(dev, PTR_ERR(cm3605->vdd),
drivers/iio/light/cm3605.c
216
ret = regulator_enable(cm3605->vdd);
drivers/iio/light/cm3605.c
222
cm3605->aset = devm_gpiod_get(dev, "aset", GPIOD_OUT_HIGH);
drivers/iio/light/cm3605.c
223
if (IS_ERR(cm3605->aset)) {
drivers/iio/light/cm3605.c
224
ret = dev_err_probe(dev, PTR_ERR(cm3605->aset), "no ASET GPIO\n");
drivers/iio/light/cm3605.c
242
led_trigger_register_simple("cm3605", &cm3605->led);
drivers/iio/light/cm3605.c
243
led_trigger_event(cm3605->led, LED_FULL);
drivers/iio/light/cm3605.c
255
cm3605->als_max);
drivers/iio/light/cm3605.c
260
led_trigger_event(cm3605->led, LED_OFF);
drivers/iio/light/cm3605.c
261
led_trigger_unregister_simple(cm3605->led);
drivers/iio/light/cm3605.c
263
gpiod_set_value_cansleep(cm3605->aset, 0);
drivers/iio/light/cm3605.c
265
regulator_disable(cm3605->vdd);
drivers/iio/light/cm3605.c
272
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
274
led_trigger_event(cm3605->led, LED_OFF);
drivers/iio/light/cm3605.c
275
led_trigger_unregister_simple(cm3605->led);
drivers/iio/light/cm3605.c
276
gpiod_set_value_cansleep(cm3605->aset, 0);
drivers/iio/light/cm3605.c
278
regulator_disable(cm3605->vdd);
drivers/iio/light/cm3605.c
284
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
286
led_trigger_event(cm3605->led, LED_OFF);
drivers/iio/light/cm3605.c
287
regulator_disable(cm3605->vdd);
drivers/iio/light/cm3605.c
295
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
298
ret = regulator_enable(cm3605->vdd);
drivers/iio/light/cm3605.c
301
led_trigger_event(cm3605->led, LED_FULL);
drivers/iio/light/cm3605.c
58
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
62
IIO_EV_TYPE_THRESH, cm3605->dir);
drivers/iio/light/cm3605.c
66
if (cm3605->dir == IIO_EV_DIR_RISING)
drivers/iio/light/cm3605.c
67
cm3605->dir = IIO_EV_DIR_FALLING;
drivers/iio/light/cm3605.c
69
cm3605->dir = IIO_EV_DIR_RISING;
drivers/iio/light/cm3605.c
74
static int cm3605_get_lux(struct cm3605 *cm3605)
drivers/iio/light/cm3605.c
79
ret = iio_read_channel_processed(cm3605->aout, &res);
drivers/iio/light/cm3605.c
83
dev_dbg(cm3605->dev, "read %d mV from ADC\n", res);
drivers/iio/light/cm3605.c
94
dev_err(cm3605->dev, "device out of range\n");