Lines Matching refs:cm3605

35  * struct cm3605 - CM3605 state
44 struct cm3605 {
57 struct cm3605 *cm3605 = iio_priv(indio_dev);
61 IIO_EV_TYPE_THRESH, cm3605->dir);
65 if (cm3605->dir == IIO_EV_DIR_RISING)
66 cm3605->dir = IIO_EV_DIR_FALLING;
68 cm3605->dir = IIO_EV_DIR_RISING;
73 static int cm3605_get_lux(struct cm3605 *cm3605)
78 ret = iio_read_channel_processed(cm3605->aout, &res);
82 dev_dbg(cm3605->dev, "read %d mV from ADC\n", res);
93 dev_err(cm3605->dev, "device out of range\n");
99 lux *= cm3605->als_max;
109 struct cm3605 *cm3605 = iio_priv(indio_dev);
116 ret = cm3605_get_lux(cm3605);
156 struct cm3605 *cm3605;
164 indio_dev = devm_iio_device_alloc(dev, sizeof(*cm3605));
169 cm3605 = iio_priv(indio_dev);
170 cm3605->dev = dev;
171 cm3605->dir = IIO_EV_DIR_FALLING;
180 cm3605->als_max = 650;
183 cm3605->als_max = 300;
186 cm3605->als_max = 100;
189 cm3605->als_max = 50;
196 cm3605->aout = devm_iio_channel_get(dev, "aout");
197 if (IS_ERR(cm3605->aout)) {
198 if (PTR_ERR(cm3605->aout) == -ENODEV) {
203 return PTR_ERR(cm3605->aout);
205 ret = iio_get_channel_type(cm3605->aout, &ch_type);
213 cm3605->vdd = devm_regulator_get(dev, "vdd");
214 if (IS_ERR(cm3605->vdd)) {
216 return PTR_ERR(cm3605->vdd);
218 ret = regulator_enable(cm3605->vdd);
224 cm3605->aset = devm_gpiod_get(dev, "aset", GPIOD_OUT_HIGH);
225 if (IS_ERR(cm3605->aset)) {
227 ret = PTR_ERR(cm3605->aset);
232 cm3605_prox_irq, NULL, 0, "cm3605", indio_dev);
239 led_trigger_register_simple("cm3605", &cm3605->led);
240 led_trigger_event(cm3605->led, LED_FULL);
243 indio_dev->name = "cm3605";
252 cm3605->als_max);
257 led_trigger_event(cm3605->led, LED_OFF);
258 led_trigger_unregister_simple(cm3605->led);
260 gpiod_set_value_cansleep(cm3605->aset, 0);
262 regulator_disable(cm3605->vdd);
269 struct cm3605 *cm3605 = iio_priv(indio_dev);
271 led_trigger_event(cm3605->led, LED_OFF);
272 led_trigger_unregister_simple(cm3605->led);
273 gpiod_set_value_cansleep(cm3605->aset, 0);
275 regulator_disable(cm3605->vdd);
283 struct cm3605 *cm3605 = iio_priv(indio_dev);
285 led_trigger_event(cm3605->led, LED_OFF);
286 regulator_disable(cm3605->vdd);
294 struct cm3605 *cm3605 = iio_priv(indio_dev);
297 ret = regulator_enable(cm3605->vdd);
300 led_trigger_event(cm3605->led, LED_FULL);
311 {.compatible = "capella,cm3605"},
318 .name = "cm3605",