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

Commit 8310b86c authored by Jonathan Cameron's avatar Jonathan Cameron Committed by Greg Kroah-Hartman
Browse files

staging:iio:scan element types: introduce endian description to the data format.



If not set in chan_spec, cpu endianness used.

Signed-off-by: default avatarJonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent a37b549e
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -80,6 +80,12 @@ enum iio_chan_info_enum {
	IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE,
};

enum iio_endian {
	IIO_CPU,
	IIO_BE,
	IIO_LE,
};

/**
 * struct iio_chan_spec - specification of a single channel
 * @type:		What type of measurement is the channel making.
@@ -95,6 +101,7 @@ enum iio_chan_info_enum {
 *			storage_bits:	Realbits + padding
 *			shift:		Shift right by this before masking out
 *					realbits.
 *			endianness:	little or big endian
 * @info_mask:		What information is to be exported about this channel.
 *			This includes calibbias, scale etc.
 * @event_mask:	What events can this channel produce.
@@ -123,6 +130,7 @@ struct iio_chan_spec {
		u8	realbits;
		u8	storagebits;
		u8	shift;
		enum iio_endian endianness;
	} scan_type;
	long			info_mask;
	long			event_mask;
+14 −1
Original line number Diff line number Diff line
@@ -25,6 +25,10 @@
#include "sysfs.h"
#include "ring_generic.h"

static const char * const iio_endian_prefix[] = {
	[IIO_BE] = "be",
	[IIO_LE] = "le",
};

/**
 * iio_ring_read_first_n_outer() - chrdev read for ring buffer access
@@ -96,7 +100,16 @@ static ssize_t iio_show_fixed_type(struct device *dev,
				   char *buf)
{
	struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
	return sprintf(buf, "%c%d/%d>>%u\n",
	u8 type = this_attr->c->scan_type.endianness;

	if (type == IIO_CPU) {
		if (__LITTLE_ENDIAN)
			type = IIO_LE;
		else
			type = IIO_BE;
	}
	return sprintf(buf, "%s:%c%d/%d>>%u\n",
		       iio_endian_prefix[type],
		       this_attr->c->scan_type.sign,
		       this_attr->c->scan_type.realbits,
		       this_attr->c->scan_type.storagebits,