Lines Matching refs:data
129 static inline int pa12203001_als_enable(struct pa12203001_data *data, u8 enable)
133 ret = regmap_update_bits(data->map, PA12203001_REG_CFG0,
138 data->als_enabled = !!enable;
143 static inline int pa12203001_px_enable(struct pa12203001_data *data, u8 enable)
147 ret = regmap_update_bits(data->map, PA12203001_REG_CFG0,
152 data->px_enabled = !!enable;
157 static int pa12203001_set_power_state(struct pa12203001_data *data, bool on,
164 mutex_lock(&data->lock);
165 if (data->px_enabled) {
166 ret = pa12203001_als_enable(data,
171 data->als_needs_enable = true;
173 mutex_unlock(&data->lock);
177 mutex_lock(&data->lock);
178 if (data->als_enabled) {
179 ret = pa12203001_px_enable(data, PA12203001_PX_EN_MASK);
183 data->px_needs_enable = true;
185 mutex_unlock(&data->lock);
189 ret = pm_runtime_get_sync(&data->client->dev);
191 pm_runtime_put_noidle(&data->client->dev);
194 pm_runtime_mark_last_busy(&data->client->dev);
195 ret = pm_runtime_put_autosuspend(&data->client->dev);
201 mutex_unlock(&data->lock);
212 struct pa12203001_data *data = iio_priv(indio_dev);
223 ret = pa12203001_set_power_state(data, true, dev_mask);
230 ret = regmap_bulk_read(data->map, PA12203001_REG_ADL,
236 ret = pa12203001_set_power_state(data, false, dev_mask);
242 ret = pa12203001_set_power_state(data, true, dev_mask);
245 ret = regmap_read(data->map, PA12203001_REG_PDH,
251 ret = pa12203001_set_power_state(data, false, dev_mask);
260 ret = regmap_read(data->map, PA12203001_REG_CFG0, ®_byte);
272 pa12203001_set_power_state(data, false, dev_mask);
280 struct pa12203001_data *data = iio_priv(indio_dev);
286 ret = regmap_read(data->map, PA12203001_REG_CFG0, ®_byte);
292 return regmap_update_bits(data->map,
314 struct pa12203001_data *data = iio_priv(indio_dev);
318 ret = regmap_write(data->map, regvals[i].reg, regvals[i].val);
328 struct pa12203001_data *data = iio_priv(indio_dev);
331 mutex_lock(&data->lock);
332 ret = pa12203001_als_enable(data, state);
336 ret = pa12203001_px_enable(data, state);
339 mutex_unlock(&data->lock);
346 struct pa12203001_data *data;
355 data = iio_priv(indio_dev);
357 data->client = client;
359 data->map = devm_regmap_init_i2c(client, &pa12203001_regmap_config);
360 if (IS_ERR(data->map))
361 return PTR_ERR(data->map);
363 mutex_init(&data->lock);
432 struct pa12203001_data *data;
434 data = iio_priv(i2c_get_clientdata(to_i2c_client(dev)));
436 mutex_lock(&data->lock);
437 if (data->als_needs_enable) {
438 pa12203001_als_enable(data, PA12203001_ALS_EN_MASK);
439 data->als_needs_enable = false;
441 if (data->px_needs_enable) {
442 pa12203001_px_enable(data, PA12203001_PX_EN_MASK);
443 data->px_needs_enable = false;
445 mutex_unlock(&data->lock);