Lines Matching refs:data
131 static inline int pa12203001_als_enable(struct pa12203001_data *data, u8 enable) in pa12203001_als_enable() argument
135 ret = regmap_update_bits(data->map, PA12203001_REG_CFG0, in pa12203001_als_enable()
140 data->als_enabled = !!enable; in pa12203001_als_enable()
145 static inline int pa12203001_px_enable(struct pa12203001_data *data, u8 enable) in pa12203001_px_enable() argument
149 ret = regmap_update_bits(data->map, PA12203001_REG_CFG0, in pa12203001_px_enable()
154 data->px_enabled = !!enable; in pa12203001_px_enable()
159 static int pa12203001_set_power_state(struct pa12203001_data *data, bool on, in pa12203001_set_power_state() argument
166 mutex_lock(&data->lock); in pa12203001_set_power_state()
167 if (data->px_enabled) { in pa12203001_set_power_state()
168 ret = pa12203001_als_enable(data, in pa12203001_set_power_state()
173 data->als_needs_enable = true; in pa12203001_set_power_state()
175 mutex_unlock(&data->lock); in pa12203001_set_power_state()
179 mutex_lock(&data->lock); in pa12203001_set_power_state()
180 if (data->als_enabled) { in pa12203001_set_power_state()
181 ret = pa12203001_px_enable(data, PA12203001_PX_EN_MASK); in pa12203001_set_power_state()
185 data->px_needs_enable = true; in pa12203001_set_power_state()
187 mutex_unlock(&data->lock); in pa12203001_set_power_state()
191 ret = pm_runtime_get_sync(&data->client->dev); in pa12203001_set_power_state()
193 pm_runtime_put_noidle(&data->client->dev); in pa12203001_set_power_state()
196 pm_runtime_mark_last_busy(&data->client->dev); in pa12203001_set_power_state()
197 ret = pm_runtime_put_autosuspend(&data->client->dev); in pa12203001_set_power_state()
203 mutex_unlock(&data->lock); in pa12203001_set_power_state()
214 struct pa12203001_data *data = iio_priv(indio_dev); in pa12203001_read_raw() local
225 ret = pa12203001_set_power_state(data, true, dev_mask); in pa12203001_read_raw()
232 ret = regmap_bulk_read(data->map, PA12203001_REG_ADL, in pa12203001_read_raw()
238 ret = pa12203001_set_power_state(data, false, dev_mask); in pa12203001_read_raw()
244 ret = pa12203001_set_power_state(data, true, dev_mask); in pa12203001_read_raw()
247 ret = regmap_read(data->map, PA12203001_REG_PDH, in pa12203001_read_raw()
253 ret = pa12203001_set_power_state(data, false, dev_mask); in pa12203001_read_raw()
262 ret = regmap_read(data->map, PA12203001_REG_CFG0, ®_byte); in pa12203001_read_raw()
274 pa12203001_set_power_state(data, false, dev_mask); in pa12203001_read_raw()
282 struct pa12203001_data *data = iio_priv(indio_dev); in pa12203001_write_raw() local
288 ret = regmap_read(data->map, PA12203001_REG_CFG0, ®_byte); in pa12203001_write_raw()
294 return regmap_update_bits(data->map, in pa12203001_write_raw()
317 struct pa12203001_data *data = iio_priv(indio_dev); in pa12203001_init() local
321 ret = regmap_write(data->map, regvals[i].reg, regvals[i].val); in pa12203001_init()
331 struct pa12203001_data *data = iio_priv(indio_dev); in pa12203001_power_chip() local
334 mutex_lock(&data->lock); in pa12203001_power_chip()
335 ret = pa12203001_als_enable(data, state); in pa12203001_power_chip()
339 ret = pa12203001_px_enable(data, state); in pa12203001_power_chip()
342 mutex_unlock(&data->lock); in pa12203001_power_chip()
349 struct pa12203001_data *data; in pa12203001_probe() local
358 data = iio_priv(indio_dev); in pa12203001_probe()
360 data->client = client; in pa12203001_probe()
362 data->map = devm_regmap_init_i2c(client, &pa12203001_regmap_config); in pa12203001_probe()
363 if (IS_ERR(data->map)) in pa12203001_probe()
364 return PTR_ERR(data->map); in pa12203001_probe()
366 mutex_init(&data->lock); in pa12203001_probe()
430 struct pa12203001_data *data; in pa12203001_runtime_resume() local
432 data = iio_priv(i2c_get_clientdata(to_i2c_client(dev))); in pa12203001_runtime_resume()
434 mutex_lock(&data->lock); in pa12203001_runtime_resume()
435 if (data->als_needs_enable) { in pa12203001_runtime_resume()
436 pa12203001_als_enable(data, PA12203001_ALS_EN_MASK); in pa12203001_runtime_resume()
437 data->als_needs_enable = false; in pa12203001_runtime_resume()
439 if (data->px_needs_enable) { in pa12203001_runtime_resume()
440 pa12203001_px_enable(data, PA12203001_PX_EN_MASK); in pa12203001_runtime_resume()
441 data->px_needs_enable = false; in pa12203001_runtime_resume()
443 mutex_unlock(&data->lock); in pa12203001_runtime_resume()