Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4701fd6 authored by Gregor Boirie's avatar Gregor Boirie Committed by Jonathan Cameron
Browse files

iio:st_pressure: temperature triggered buffering



Enable support for triggered buffering of temperature samples.

Signed-off-by: default avatarGregor Boirie <gregor.boirie@parrot.com>
Tested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 19b7b8a8
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -105,8 +105,6 @@
#define ST_PRESS_LSB_PER_CELSIUS		480UL
#define ST_PRESS_MILLI_CELSIUS_OFFSET		42500UL

#define ST_PRESS_NUMBER_DATA_CHANNELS		1

/* FULLSCALE */
#define ST_PRESS_FS_AVL_1100MB			1100
#define ST_PRESS_FS_AVL_1260MB			1260
@@ -222,7 +220,7 @@ static const struct iio_chan_spec st_press_1_channels[] = {
		.type = IIO_PRESSURE,
		.channel2 = IIO_NO_MOD,
		.address = ST_PRESS_1_OUT_XL_ADDR,
		.scan_index = ST_SENSORS_SCAN_X,
		.scan_index = 0,
		.scan_type = {
			.sign = 'u',
			.realbits = 24,
@@ -237,7 +235,7 @@ static const struct iio_chan_spec st_press_1_channels[] = {
		.type = IIO_TEMP,
		.channel2 = IIO_NO_MOD,
		.address = ST_TEMP_1_OUT_L_ADDR,
		.scan_index = -1,
		.scan_index = 1,
		.scan_type = {
			.sign = 'u',
			.realbits = 16,
@@ -250,7 +248,7 @@ static const struct iio_chan_spec st_press_1_channels[] = {
			BIT(IIO_CHAN_INFO_OFFSET),
		.modified = 0,
	},
	IIO_CHAN_SOFT_TIMESTAMP(1)
	IIO_CHAN_SOFT_TIMESTAMP(2)
};

static const struct iio_chan_spec st_press_lps001wp_channels[] = {
@@ -258,7 +256,7 @@ static const struct iio_chan_spec st_press_lps001wp_channels[] = {
		.type = IIO_PRESSURE,
		.channel2 = IIO_NO_MOD,
		.address = ST_PRESS_LPS001WP_OUT_L_ADDR,
		.scan_index = ST_SENSORS_SCAN_X,
		.scan_index = 0,
		.scan_type = {
			.sign = 'u',
			.realbits = 16,
@@ -274,7 +272,7 @@ static const struct iio_chan_spec st_press_lps001wp_channels[] = {
		.type = IIO_TEMP,
		.channel2 = IIO_NO_MOD,
		.address = ST_TEMP_LPS001WP_OUT_L_ADDR,
		.scan_index = -1,
		.scan_index = 1,
		.scan_type = {
			.sign = 'u',
			.realbits = 16,
@@ -286,7 +284,7 @@ static const struct iio_chan_spec st_press_lps001wp_channels[] = {
			BIT(IIO_CHAN_INFO_SCALE),
		.modified = 0,
	},
	IIO_CHAN_SOFT_TIMESTAMP(1)
	IIO_CHAN_SOFT_TIMESTAMP(2)
};

static const struct iio_chan_spec st_press_lps22hb_channels[] = {
@@ -642,7 +640,13 @@ int st_press_common_probe(struct iio_dev *indio_dev)
	if (err < 0)
		goto st_press_power_off;

	press_data->num_data_channels = ST_PRESS_NUMBER_DATA_CHANNELS;
	/*
	 * Skip timestamping channel while declaring available channels to
	 * common st_sensor layer. Look at st_sensors_get_buffer_element() to
	 * see how timestamps are explicitly pushed as last samples block
	 * element.
	 */
	press_data->num_data_channels = press_data->sensor_settings->num_ch - 1;
	press_data->multiread_bit = press_data->sensor_settings->multi_read_bit;
	indio_dev->channels = press_data->sensor_settings->ch;
	indio_dev->num_channels = press_data->sensor_settings->num_ch;