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);