From c3d3ccd5a7af4add3697dbaeedad5164bd83335f Mon Sep 17 00:00:00 2001 From: Vasyl Vavrychuk Date: Tue, 10 May 2022 17:33:56 +0200 Subject: virtio: Enable virtio-scmi and IIO SCMI drivers. VIRTIO-SCMI device implements the Arm System Control and Management Interface (SCMI) [1]. This VIRTIO device is part of "Virtual I/O Device (VIRTIO) Version 1.2" specification [2]. The SCMI can be used for sensors, power state management, clock management and performance management among other things. Enable IIO-SCMI driver that works on top of VIRTIO-SCMI and supports SCMI sensors. [1]: https://developer.arm.com/Architectures/System%20Control%20and%20Management%20Interface [2]: https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/virtio-v1.2-csd01.html Bug-AGL: SPEC-3865, SPEC-4365 Change-Id: Iaf2092d869d938d0b45029038d8eea36110d7e3e Signed-off-by: Vasyl Vavrychuk Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/27473 Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account Reviewed-by: Jan-Simon Moeller --- .../0001-iio-core-Introduce-IIO_VAL_INT_64.patch | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-kmeta/bsp/virtio/virtio-scmi/0001-iio-core-Introduce-IIO_VAL_INT_64.patch (limited to 'meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-kmeta/bsp/virtio/virtio-scmi/0001-iio-core-Introduce-IIO_VAL_INT_64.patch') diff --git a/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-kmeta/bsp/virtio/virtio-scmi/0001-iio-core-Introduce-IIO_VAL_INT_64.patch b/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-kmeta/bsp/virtio/virtio-scmi/0001-iio-core-Introduce-IIO_VAL_INT_64.patch new file mode 100644 index 000000000..2a18a04d3 --- /dev/null +++ b/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-kmeta/bsp/virtio/virtio-scmi/0001-iio-core-Introduce-IIO_VAL_INT_64.patch @@ -0,0 +1,45 @@ +From 3698bab1b1856a8146c8f8a83c888bd9cefcdde0 Mon Sep 17 00:00:00 2001 +From: Andriy Tryshnivskyy +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 +Link: https://lore.kernel.org/r/20211024091627.28031-2-andriy.tryshnivskyy@opensynergy.com +Signed-off-by: Jonathan Cameron +--- + 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 + -- cgit 1.2.3-korg