diff options
3 files changed, 0 insertions, 148 deletions
diff --git a/bsp/virtio/virtio-scmi/0001-iio-core-Introduce-IIO_VAL_INT_64.patch b/bsp/virtio/virtio-scmi/0001-iio-core-Introduce-IIO_VAL_INT_64.patch deleted file mode 100644 index 2a18a04..0000000 --- a/bsp/virtio/virtio-scmi/0001-iio-core-Introduce-IIO_VAL_INT_64.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 3698bab1b1856a8146c8f8a83c888bd9cefcdde0 Mon Sep 17 00:00:00 2001 -From: Andriy Tryshnivskyy <andriy.tryshnivskyy@opensynergy.com> -Date: Sun, 24 Oct 2021 12:16:26 +0300 -Subject: [PATCH] iio: core: Introduce IIO_VAL_INT_64. - -Introduce IIO_VAL_INT_64 to read 64-bit value for -channel attribute. Val is used as lower 32 bits. - -Signed-off-by: Andriy Tryshnivskyy <andriy.tryshnivskyy@opensynergy.com> -Link: https://lore.kernel.org/r/20211024091627.28031-2-andriy.tryshnivskyy@opensynergy.com -Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> ---- - drivers/iio/industrialio-core.c | 3 +++ - include/linux/iio/types.h | 1 + - 2 files changed, 4 insertions(+) - -diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c -index 3e1e86d987cc..3f21e6b49a4a 100644 ---- a/drivers/iio/industrialio-core.c -+++ b/drivers/iio/industrialio-core.c -@@ -702,6 +702,9 @@ static ssize_t __iio_format_value(char *buf, size_t offset, unsigned int type, - } - case IIO_VAL_CHAR: - return sysfs_emit_at(buf, offset, "%c", (char)vals[0]); -+ case IIO_VAL_INT_64: -+ tmp2 = (s64)((((u64)vals[1]) << 32) | (u32)vals[0]); -+ return sysfs_emit_at(buf, offset, "%lld", tmp2); - default: - return 0; - } -diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h -index 84b3f8175cc6..a7aa91f3a8dc 100644 ---- a/include/linux/iio/types.h -+++ b/include/linux/iio/types.h -@@ -24,6 +24,7 @@ enum iio_event_info { - #define IIO_VAL_INT_PLUS_NANO 3 - #define IIO_VAL_INT_PLUS_MICRO_DB 4 - #define IIO_VAL_INT_MULTIPLE 5 -+#define IIO_VAL_INT_64 6 /* 64-bit data, val is lower 32 bits */ - #define IIO_VAL_FRACTIONAL 10 - #define IIO_VAL_FRACTIONAL_LOG2 11 - #define IIO_VAL_CHAR 12 --- -2.17.1 - diff --git a/bsp/virtio/virtio-scmi/0002-iio-scmi-Add-reading-raw-attribute.patch b/bsp/virtio/virtio-scmi/0002-iio-scmi-Add-reading-raw-attribute.patch deleted file mode 100644 index a11e5e2..0000000 --- a/bsp/virtio/virtio-scmi/0002-iio-scmi-Add-reading-raw-attribute.patch +++ /dev/null @@ -1,101 +0,0 @@ -From a58a59fa0d626990f32e84bd35e1326cf0532c4a Mon Sep 17 00:00:00 2001 -From: Andriy Tryshnivskyy <andriy.tryshnivskyy@opensynergy.com> -Date: Sun, 24 Oct 2021 12:16:27 +0300 -Subject: [PATCH] iio/scmi: Add reading "raw" attribute. - -Add IIO_CHAN_INFO_RAW to the mask and implement corresponding -reading "raw" attribute in scmi_iio_read_raw. - -Signed-off-by: Andriy Tryshnivskyy <andriy.tryshnivskyy@opensynergy.com> -Acked-by: Jyoti Bhayana <jbhayana@google.com> -Link: https://lore.kernel.org/r/20211024091627.28031-3-andriy.tryshnivskyy@opensynergy.com -Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> ---- - drivers/iio/common/scmi_sensors/scmi_iio.c | 57 +++++++++++++++++++++- - 1 file changed, 56 insertions(+), 1 deletion(-) - -diff --git a/drivers/iio/common/scmi_sensors/scmi_iio.c b/drivers/iio/common/scmi_sensors/scmi_iio.c -index 7cf2bf282cef..d538bf3ab1ef 100644 ---- a/drivers/iio/common/scmi_sensors/scmi_iio.c -+++ b/drivers/iio/common/scmi_sensors/scmi_iio.c -@@ -279,6 +279,52 @@ static int scmi_iio_get_odr_val(struct iio_dev *iio_dev, int *val, int *val2) - return 0; - } - -+static int scmi_iio_read_channel_data(struct iio_dev *iio_dev, -+ struct iio_chan_spec const *ch, int *val, int *val2) -+{ -+ struct scmi_iio_priv *sensor = iio_priv(iio_dev); -+ u32 sensor_config; -+ struct scmi_sensor_reading readings[SCMI_IIO_NUM_OF_AXIS]; -+ int err; -+ -+ sensor_config = FIELD_PREP(SCMI_SENS_CFG_SENSOR_ENABLED_MASK, -+ SCMI_SENS_CFG_SENSOR_ENABLE); -+ err = sensor->sensor_ops->config_set( -+ sensor->ph, sensor->sensor_info->id, sensor_config); -+ if (err) { -+ dev_err(&iio_dev->dev, -+ "Error in enabling sensor %s err %d", -+ sensor->sensor_info->name, err); -+ return err; -+ } -+ -+ err = sensor->sensor_ops->reading_get_timestamped( -+ sensor->ph, sensor->sensor_info->id, -+ sensor->sensor_info->num_axis, readings); -+ if (err) { -+ dev_err(&iio_dev->dev, -+ "Error in reading raw attribute for sensor %s err %d", -+ sensor->sensor_info->name, err); -+ return err; -+ } -+ -+ sensor_config = FIELD_PREP(SCMI_SENS_CFG_SENSOR_ENABLED_MASK, -+ SCMI_SENS_CFG_SENSOR_DISABLE); -+ err = sensor->sensor_ops->config_set( -+ sensor->ph, sensor->sensor_info->id, sensor_config); -+ if (err) { -+ dev_err(&iio_dev->dev, -+ "Error in disabling sensor %s err %d", -+ sensor->sensor_info->name, err); -+ return err; -+ } -+ -+ *val = lower_32_bits(readings[ch->scan_index].value); -+ *val2 = upper_32_bits(readings[ch->scan_index].value); -+ -+ return IIO_VAL_INT_64; -+} -+ - static int scmi_iio_read_raw(struct iio_dev *iio_dev, - struct iio_chan_spec const *ch, int *val, - int *val2, long mask) -@@ -300,6 +346,14 @@ static int scmi_iio_read_raw(struct iio_dev *iio_dev, - case IIO_CHAN_INFO_SAMP_FREQ: - ret = scmi_iio_get_odr_val(iio_dev, val, val2); - return ret ? ret : IIO_VAL_INT_PLUS_MICRO; -+ case IIO_CHAN_INFO_RAW: -+ ret = iio_device_claim_direct_mode(iio_dev); -+ if (ret) -+ return ret; -+ -+ ret = scmi_iio_read_channel_data(iio_dev, ch, val, val2); -+ iio_device_release_direct_mode(iio_dev); -+ return ret; - default: - return -EINVAL; - } -@@ -381,7 +435,8 @@ static void scmi_iio_set_data_channel(struct iio_chan_spec *iio_chan, - iio_chan->type = type; - iio_chan->modified = 1; - iio_chan->channel2 = mod; -- iio_chan->info_mask_separate = BIT(IIO_CHAN_INFO_SCALE); -+ iio_chan->info_mask_separate = -+ BIT(IIO_CHAN_INFO_SCALE) | BIT(IIO_CHAN_INFO_RAW); - iio_chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SAMP_FREQ); - iio_chan->info_mask_shared_by_type_available = - BIT(IIO_CHAN_INFO_SAMP_FREQ); --- -2.17.1 - diff --git a/bsp/virtio/virtio-scmi/virtio-scmi.scc b/bsp/virtio/virtio-scmi/virtio-scmi.scc index dea7dec..e96d2d7 100644 --- a/bsp/virtio/virtio-scmi/virtio-scmi.scc +++ b/bsp/virtio/virtio-scmi/virtio-scmi.scc @@ -1,5 +1,3 @@ # SPDX-License-Identifier: MIT kconf hardware virtio-scmi.cfg kconf hardware iio-scmi.cfg -patch 0001-iio-core-Introduce-IIO_VAL_INT_64.patch -patch 0002-iio-scmi-Add-reading-raw-attribute.patch |