Lines Matching refs:cm3605

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