Lines Matching refs:data
138 static int jsa1212_als_enable(struct jsa1212_data *data, u8 status) in jsa1212_als_enable() argument
142 ret = regmap_update_bits(data->regmap, JSA1212_CONF_REG, in jsa1212_als_enable()
148 data->als_en = !!status; in jsa1212_als_enable()
154 static int jsa1212_pxs_enable(struct jsa1212_data *data, u8 status) in jsa1212_pxs_enable() argument
158 ret = regmap_update_bits(data->regmap, JSA1212_CONF_REG, in jsa1212_pxs_enable()
164 data->pxs_en = !!status; in jsa1212_pxs_enable()
169 static int jsa1212_read_als_data(struct jsa1212_data *data, in jsa1212_read_als_data() argument
175 ret = jsa1212_als_enable(data, JSA1212_CONF_ALS_ENABLE); in jsa1212_read_als_data()
183 ret = regmap_bulk_read(data->regmap, JSA1212_ALS_DT1_REG, &als_data, 2); in jsa1212_read_als_data()
185 dev_err(&data->client->dev, "als data read err\n"); in jsa1212_read_als_data()
192 return jsa1212_als_enable(data, JSA1212_CONF_ALS_DISABLE); in jsa1212_read_als_data()
195 static int jsa1212_read_pxs_data(struct jsa1212_data *data, in jsa1212_read_pxs_data() argument
201 ret = jsa1212_pxs_enable(data, JSA1212_CONF_PXS_ENABLE); in jsa1212_read_pxs_data()
209 ret = regmap_read(data->regmap, JSA1212_PXS_DATA_REG, &pxs_data); in jsa1212_read_pxs_data()
211 dev_err(&data->client->dev, "pxs data read err\n"); in jsa1212_read_pxs_data()
218 return jsa1212_pxs_enable(data, JSA1212_CONF_PXS_DISABLE); in jsa1212_read_pxs_data()
226 struct jsa1212_data *data = iio_priv(indio_dev); in jsa1212_read_raw() local
230 mutex_lock(&data->lock); in jsa1212_read_raw()
233 ret = jsa1212_read_als_data(data, val); in jsa1212_read_raw()
236 ret = jsa1212_read_pxs_data(data, val); in jsa1212_read_raw()
242 mutex_unlock(&data->lock); in jsa1212_read_raw()
247 *val = jsa1212_als_range_val[data->als_rng_idx]; in jsa1212_read_raw()
278 static int jsa1212_chip_init(struct jsa1212_data *data) in jsa1212_chip_init() argument
282 ret = regmap_write(data->regmap, JSA1212_CONF_REG, in jsa1212_chip_init()
288 ret = regmap_write(data->regmap, JSA1212_INT_REG, in jsa1212_chip_init()
293 data->als_rng_idx = JSA1212_ALS_RNG_0_2048; in jsa1212_chip_init()
323 struct jsa1212_data *data; in jsa1212_probe() local
331 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); in jsa1212_probe()
341 data = iio_priv(indio_dev); in jsa1212_probe()
344 data->client = client; in jsa1212_probe()
345 data->regmap = regmap; in jsa1212_probe()
347 mutex_init(&data->lock); in jsa1212_probe()
349 ret = jsa1212_chip_init(data); in jsa1212_probe()
369 static int jsa1212_power_off(struct jsa1212_data *data) in jsa1212_power_off() argument
373 mutex_lock(&data->lock); in jsa1212_power_off()
375 ret = regmap_update_bits(data->regmap, JSA1212_CONF_REG, in jsa1212_power_off()
382 dev_err(&data->client->dev, "power off cmd failed\n"); in jsa1212_power_off()
384 mutex_unlock(&data->lock); in jsa1212_power_off()
392 struct jsa1212_data *data = iio_priv(indio_dev); in jsa1212_remove() local
396 return jsa1212_power_off(data); in jsa1212_remove()
402 struct jsa1212_data *data; in jsa1212_suspend() local
404 data = iio_priv(i2c_get_clientdata(to_i2c_client(dev))); in jsa1212_suspend()
406 return jsa1212_power_off(data); in jsa1212_suspend()
412 struct jsa1212_data *data; in jsa1212_resume() local
414 data = iio_priv(i2c_get_clientdata(to_i2c_client(dev))); in jsa1212_resume()
416 mutex_lock(&data->lock); in jsa1212_resume()
418 if (data->als_en) { in jsa1212_resume()
419 ret = jsa1212_als_enable(data, JSA1212_CONF_ALS_ENABLE); in jsa1212_resume()
426 if (data->pxs_en) { in jsa1212_resume()
427 ret = jsa1212_pxs_enable(data, JSA1212_CONF_PXS_ENABLE); in jsa1212_resume()
433 mutex_unlock(&data->lock); in jsa1212_resume()