Lines Matching defs:sunrise
53 struct sunrise_dev *sunrise = i2c_get_clientdata(client);
71 sunrise->ignore_nak ? I2C_M_IGNORE_NAK : 0,
90 struct sunrise_dev *sunrise = i2c_get_clientdata(client);
103 sunrise->ignore_nak ? I2C_M_IGNORE_NAK : 0,
118 static int sunrise_read_byte(struct sunrise_dev *sunrise, u8 reg)
120 const struct i2c_client *client = sunrise->client;
126 ret = regmap_read(sunrise->regmap, reg, &val);
136 static int sunrise_read_word(struct sunrise_dev *sunrise, u8 reg, u16 *val)
138 const struct i2c_client *client = sunrise->client;
144 ret = regmap_bulk_read(sunrise->regmap, reg, &be_val, sizeof(be_val));
156 static int sunrise_write_byte(struct sunrise_dev *sunrise, u8 reg, u8 val)
158 const struct i2c_client *client = sunrise->client;
163 ret = regmap_write(sunrise->regmap, reg, val);
171 static int sunrise_write_word(struct sunrise_dev *sunrise, u8 reg, u16 data)
173 const struct i2c_client *client = sunrise->client;
179 ret = regmap_bulk_write(sunrise->regmap, reg, &be_data, sizeof(be_data));
211 static int sunrise_calibrate(struct sunrise_dev *sunrise,
218 ret = sunrise_write_byte(sunrise, SUNRISE_CALIBRATION_STATUS_REG, 0x00);
223 ret = sunrise_write_word(sunrise, SUNRISE_CALIBRATION_COMMAND_REG, data->cmd);
227 dev_dbg(&sunrise->client->dev, "%s in progress\n", data->name);
235 sunrise, SUNRISE_CALIBRATION_STATUS_REG);
243 struct sunrise_dev *sunrise = iio_priv(iiodev);
254 mutex_lock(&sunrise->lock);
255 ret = sunrise_calibrate(sunrise, &calib_data[SUNRISE_CALIBRATION_FACTORY]);
256 mutex_unlock(&sunrise->lock);
268 struct sunrise_dev *sunrise = iio_priv(iiodev);
279 mutex_lock(&sunrise->lock);
280 ret = sunrise_calibrate(sunrise, &calib_data[SUNRISE_CALIBRATION_BACKGROUND]);
281 mutex_unlock(&sunrise->lock);
325 struct sunrise_dev *sunrise = iio_priv(iiodev);
332 mutex_lock(&sunrise->lock);
333 ret = sunrise_read_word(sunrise, SUNRISE_ERROR_STATUS_REG, &value);
335 mutex_unlock(&sunrise->lock);
346 mutex_unlock(&sunrise->lock);
399 struct sunrise_dev *sunrise = iio_priv(iio_dev);
407 mutex_lock(&sunrise->lock);
408 ret = sunrise_read_word(sunrise, SUNRISE_CO2_FILTERED_COMP_REG,
410 mutex_unlock(&sunrise->lock);
419 mutex_lock(&sunrise->lock);
420 ret = sunrise_read_word(sunrise, SUNRISE_CHIP_TEMPERATURE_REG,
422 mutex_unlock(&sunrise->lock);
476 struct sunrise_dev *sunrise;
486 iio_dev = devm_iio_device_alloc(&client->dev, sizeof(*sunrise));
490 sunrise = iio_priv(iio_dev);
491 sunrise->client = client;
492 mutex_init(&sunrise->lock);
494 i2c_set_clientdata(client, sunrise);
496 sunrise->regmap = devm_regmap_init(&client->dev, &sunrise_regmap_bus,
498 if (IS_ERR(sunrise->regmap)) {
500 return PTR_ERR(sunrise->regmap);
509 sunrise->ignore_nak = true;
521 { .compatible = "senseair,sunrise-006-0-0007" },