Lines Matching +full:rng +full:- +full:lock +full:- +full:conf
1 // SPDX-License-Identifier: GPL-2.0-only
52 /* JSA1212 CONF REG bits */
92 /* JSA1212 ALS RNG REG bits */
118 struct mutex lock; member
134 ret = regmap_update_bits(data->regmap, JSA1212_CONF_REG, in jsa1212_als_enable()
140 data->als_en = !!status; in jsa1212_als_enable()
150 ret = regmap_update_bits(data->regmap, JSA1212_CONF_REG, in jsa1212_pxs_enable()
156 data->pxs_en = !!status; in jsa1212_pxs_enable()
175 ret = regmap_bulk_read(data->regmap, JSA1212_ALS_DT1_REG, &als_data, 2); in jsa1212_read_als_data()
177 dev_err(&data->client->dev, "als data read err\n"); in jsa1212_read_als_data()
201 ret = regmap_read(data->regmap, JSA1212_PXS_DATA_REG, &pxs_data); in jsa1212_read_pxs_data()
203 dev_err(&data->client->dev, "pxs data read err\n"); in jsa1212_read_pxs_data()
222 mutex_lock(&data->lock); in jsa1212_read_raw()
223 switch (chan->type) { in jsa1212_read_raw()
231 ret = -EINVAL; in jsa1212_read_raw()
234 mutex_unlock(&data->lock); in jsa1212_read_raw()
237 switch (chan->type) { in jsa1212_read_raw()
239 *val = jsa1212_als_range_val[data->als_rng_idx]; in jsa1212_read_raw()
250 return -EINVAL; in jsa1212_read_raw()
273 ret = regmap_write(data->regmap, JSA1212_CONF_REG, in jsa1212_chip_init()
279 ret = regmap_write(data->regmap, JSA1212_INT_REG, in jsa1212_chip_init()
284 data->als_rng_idx = JSA1212_ALS_RNG_0_2048; in jsa1212_chip_init()
318 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); in jsa1212_probe()
320 return -ENOMEM; in jsa1212_probe()
324 dev_err(&client->dev, "Regmap initialization failed.\n"); in jsa1212_probe()
331 data->client = client; in jsa1212_probe()
332 data->regmap = regmap; in jsa1212_probe()
334 mutex_init(&data->lock); in jsa1212_probe()
340 indio_dev->channels = jsa1212_channels; in jsa1212_probe()
341 indio_dev->num_channels = ARRAY_SIZE(jsa1212_channels); in jsa1212_probe()
342 indio_dev->name = JSA1212_DRIVER_NAME; in jsa1212_probe()
343 indio_dev->modes = INDIO_DIRECT_MODE; in jsa1212_probe()
345 indio_dev->info = &jsa1212_info; in jsa1212_probe()
349 dev_err(&client->dev, "%s: register device failed\n", __func__); in jsa1212_probe()
359 mutex_lock(&data->lock); in jsa1212_power_off()
361 ret = regmap_update_bits(data->regmap, JSA1212_CONF_REG, in jsa1212_power_off()
368 dev_err(&data->client->dev, "power off cmd failed\n"); in jsa1212_power_off()
370 mutex_unlock(&data->lock); in jsa1212_power_off()
401 mutex_lock(&data->lock); in jsa1212_resume()
403 if (data->als_en) { in jsa1212_resume()
411 if (data->pxs_en) { in jsa1212_resume()
418 mutex_unlock(&data->lock); in jsa1212_resume()