cm3605 57 drivers/iio/light/cm3605.c struct cm3605 *cm3605 = iio_priv(indio_dev); cm3605 61 drivers/iio/light/cm3605.c IIO_EV_TYPE_THRESH, cm3605->dir); cm3605 65 drivers/iio/light/cm3605.c if (cm3605->dir == IIO_EV_DIR_RISING) cm3605 66 drivers/iio/light/cm3605.c cm3605->dir = IIO_EV_DIR_FALLING; cm3605 68 drivers/iio/light/cm3605.c cm3605->dir = IIO_EV_DIR_RISING; cm3605 73 drivers/iio/light/cm3605.c static int cm3605_get_lux(struct cm3605 *cm3605) cm3605 78 drivers/iio/light/cm3605.c ret = iio_read_channel_processed(cm3605->aout, &res); cm3605 82 drivers/iio/light/cm3605.c dev_dbg(cm3605->dev, "read %d mV from ADC\n", res); cm3605 93 drivers/iio/light/cm3605.c dev_err(cm3605->dev, "device out of range\n"); cm3605 99 drivers/iio/light/cm3605.c lux *= cm3605->als_max; cm3605 109 drivers/iio/light/cm3605.c struct cm3605 *cm3605 = iio_priv(indio_dev); cm3605 116 drivers/iio/light/cm3605.c ret = cm3605_get_lux(cm3605); cm3605 156 drivers/iio/light/cm3605.c struct cm3605 *cm3605; cm3605 164 drivers/iio/light/cm3605.c indio_dev = devm_iio_device_alloc(dev, sizeof(*cm3605)); cm3605 169 drivers/iio/light/cm3605.c cm3605 = iio_priv(indio_dev); cm3605 170 drivers/iio/light/cm3605.c cm3605->dev = dev; cm3605 171 drivers/iio/light/cm3605.c cm3605->dir = IIO_EV_DIR_FALLING; cm3605 180 drivers/iio/light/cm3605.c cm3605->als_max = 650; cm3605 183 drivers/iio/light/cm3605.c cm3605->als_max = 300; cm3605 186 drivers/iio/light/cm3605.c cm3605->als_max = 100; cm3605 189 drivers/iio/light/cm3605.c cm3605->als_max = 50; cm3605 196 drivers/iio/light/cm3605.c cm3605->aout = devm_iio_channel_get(dev, "aout"); cm3605 197 drivers/iio/light/cm3605.c if (IS_ERR(cm3605->aout)) { cm3605 198 drivers/iio/light/cm3605.c if (PTR_ERR(cm3605->aout) == -ENODEV) { cm3605 203 drivers/iio/light/cm3605.c return PTR_ERR(cm3605->aout); cm3605 205 drivers/iio/light/cm3605.c ret = iio_get_channel_type(cm3605->aout, &ch_type); cm3605 213 drivers/iio/light/cm3605.c cm3605->vdd = devm_regulator_get(dev, "vdd"); cm3605 214 drivers/iio/light/cm3605.c if (IS_ERR(cm3605->vdd)) { cm3605 216 drivers/iio/light/cm3605.c return PTR_ERR(cm3605->vdd); cm3605 218 drivers/iio/light/cm3605.c ret = regulator_enable(cm3605->vdd); cm3605 224 drivers/iio/light/cm3605.c cm3605->aset = devm_gpiod_get(dev, "aset", GPIOD_OUT_HIGH); cm3605 225 drivers/iio/light/cm3605.c if (IS_ERR(cm3605->aset)) { cm3605 227 drivers/iio/light/cm3605.c ret = PTR_ERR(cm3605->aset); cm3605 239 drivers/iio/light/cm3605.c led_trigger_register_simple("cm3605", &cm3605->led); cm3605 240 drivers/iio/light/cm3605.c led_trigger_event(cm3605->led, LED_FULL); cm3605 253 drivers/iio/light/cm3605.c cm3605->als_max); cm3605 258 drivers/iio/light/cm3605.c led_trigger_event(cm3605->led, LED_OFF); cm3605 259 drivers/iio/light/cm3605.c led_trigger_unregister_simple(cm3605->led); cm3605 261 drivers/iio/light/cm3605.c gpiod_set_value_cansleep(cm3605->aset, 0); cm3605 263 drivers/iio/light/cm3605.c regulator_disable(cm3605->vdd); cm3605 270 drivers/iio/light/cm3605.c struct cm3605 *cm3605 = iio_priv(indio_dev); cm3605 272 drivers/iio/light/cm3605.c led_trigger_event(cm3605->led, LED_OFF); cm3605 273 drivers/iio/light/cm3605.c led_trigger_unregister_simple(cm3605->led); cm3605 274 drivers/iio/light/cm3605.c gpiod_set_value_cansleep(cm3605->aset, 0); cm3605 276 drivers/iio/light/cm3605.c regulator_disable(cm3605->vdd); cm3605 284 drivers/iio/light/cm3605.c struct cm3605 *cm3605 = iio_priv(indio_dev); cm3605 286 drivers/iio/light/cm3605.c led_trigger_event(cm3605->led, LED_OFF); cm3605 287 drivers/iio/light/cm3605.c regulator_disable(cm3605->vdd); cm3605 295 drivers/iio/light/cm3605.c struct cm3605 *cm3605 = iio_priv(indio_dev); cm3605 298 drivers/iio/light/cm3605.c ret = regulator_enable(cm3605->vdd); cm3605 301 drivers/iio/light/cm3605.c led_trigger_event(cm3605->led, LED_FULL);