Symbol: cm3605
drivers/iio/light/cm3605.c
109
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
116
ret = cm3605_get_lux(cm3605);
drivers/iio/light/cm3605.c
156
struct cm3605 *cm3605;
drivers/iio/light/cm3605.c
164
indio_dev = devm_iio_device_alloc(dev, sizeof(*cm3605));
drivers/iio/light/cm3605.c
169
cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
170
cm3605->dev = dev;
drivers/iio/light/cm3605.c
171
cm3605->dir = IIO_EV_DIR_FALLING;
drivers/iio/light/cm3605.c
180
cm3605->als_max = 650;
drivers/iio/light/cm3605.c
183
cm3605->als_max = 300;
drivers/iio/light/cm3605.c
186
cm3605->als_max = 100;
drivers/iio/light/cm3605.c
189
cm3605->als_max = 50;
drivers/iio/light/cm3605.c
196
cm3605->aout = devm_iio_channel_get(dev, "aout");
drivers/iio/light/cm3605.c
197
if (IS_ERR(cm3605->aout)) {
drivers/iio/light/cm3605.c
198
ret = PTR_ERR(cm3605->aout);
drivers/iio/light/cm3605.c
202
ret = iio_get_channel_type(cm3605->aout, &ch_type);
drivers/iio/light/cm3605.c
210
cm3605->vdd = devm_regulator_get(dev, "vdd");
drivers/iio/light/cm3605.c
211
if (IS_ERR(cm3605->vdd))
drivers/iio/light/cm3605.c
212
return dev_err_probe(dev, PTR_ERR(cm3605->vdd),
drivers/iio/light/cm3605.c
215
ret = regulator_enable(cm3605->vdd);
drivers/iio/light/cm3605.c
221
cm3605->aset = devm_gpiod_get(dev, "aset", GPIOD_OUT_HIGH);
drivers/iio/light/cm3605.c
222
if (IS_ERR(cm3605->aset)) {
drivers/iio/light/cm3605.c
223
ret = dev_err_probe(dev, PTR_ERR(cm3605->aset), "no ASET GPIO\n");
drivers/iio/light/cm3605.c
241
led_trigger_register_simple("cm3605", &cm3605->led);
drivers/iio/light/cm3605.c
242
led_trigger_event(cm3605->led, LED_FULL);
drivers/iio/light/cm3605.c
254
cm3605->als_max);
drivers/iio/light/cm3605.c
259
led_trigger_event(cm3605->led, LED_OFF);
drivers/iio/light/cm3605.c
260
led_trigger_unregister_simple(cm3605->led);
drivers/iio/light/cm3605.c
262
gpiod_set_value_cansleep(cm3605->aset, 0);
drivers/iio/light/cm3605.c
264
regulator_disable(cm3605->vdd);
drivers/iio/light/cm3605.c
271
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
273
led_trigger_event(cm3605->led, LED_OFF);
drivers/iio/light/cm3605.c
274
led_trigger_unregister_simple(cm3605->led);
drivers/iio/light/cm3605.c
275
gpiod_set_value_cansleep(cm3605->aset, 0);
drivers/iio/light/cm3605.c
277
regulator_disable(cm3605->vdd);
drivers/iio/light/cm3605.c
283
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
285
led_trigger_event(cm3605->led, LED_OFF);
drivers/iio/light/cm3605.c
286
regulator_disable(cm3605->vdd);
drivers/iio/light/cm3605.c
294
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
297
ret = regulator_enable(cm3605->vdd);
drivers/iio/light/cm3605.c
300
led_trigger_event(cm3605->led, LED_FULL);
drivers/iio/light/cm3605.c
57
struct cm3605 *cm3605 = iio_priv(indio_dev);
drivers/iio/light/cm3605.c
61
IIO_EV_TYPE_THRESH, cm3605->dir);
drivers/iio/light/cm3605.c
65
if (cm3605->dir == IIO_EV_DIR_RISING)
drivers/iio/light/cm3605.c
66
cm3605->dir = IIO_EV_DIR_FALLING;
drivers/iio/light/cm3605.c
68
cm3605->dir = IIO_EV_DIR_RISING;
drivers/iio/light/cm3605.c
73
static int cm3605_get_lux(struct cm3605 *cm3605)
drivers/iio/light/cm3605.c
78
ret = iio_read_channel_processed(cm3605->aout, &res);
drivers/iio/light/cm3605.c
82
dev_dbg(cm3605->dev, "read %d mV from ADC\n", res);
drivers/iio/light/cm3605.c
93
dev_err(cm3605->dev, "device out of range\n");
drivers/iio/light/cm3605.c
99
lux *= cm3605->als_max;