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

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
...@@ -80,6 +80,12 @@ enum iio_chan_info_enum { ...@@ -80,6 +80,12 @@ enum iio_chan_info_enum {
IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE, 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 * struct iio_chan_spec - specification of a single channel
* @type: What type of measurement is the channel making. * @type: What type of measurement is the channel making.
...@@ -95,6 +101,7 @@ enum iio_chan_info_enum { ...@@ -95,6 +101,7 @@ enum iio_chan_info_enum {
* storage_bits: Realbits + padding * storage_bits: Realbits + padding
* shift: Shift right by this before masking out * shift: Shift right by this before masking out
* realbits. * realbits.
* endianness: little or big endian
* @info_mask: What information is to be exported about this channel. * @info_mask: What information is to be exported about this channel.
* This includes calibbias, scale etc. * This includes calibbias, scale etc.
* @event_mask: What events can this channel produce. * @event_mask: What events can this channel produce.
...@@ -123,6 +130,7 @@ struct iio_chan_spec { ...@@ -123,6 +130,7 @@ struct iio_chan_spec {
u8 realbits; u8 realbits;
u8 storagebits; u8 storagebits;
u8 shift; u8 shift;
enum iio_endian endianness;
} scan_type; } scan_type;
long info_mask; long info_mask;
long event_mask; long event_mask;
......
...@@ -25,6 +25,10 @@ ...@@ -25,6 +25,10 @@
#include "sysfs.h" #include "sysfs.h"
#include "ring_generic.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 * 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, ...@@ -96,7 +100,16 @@ static ssize_t iio_show_fixed_type(struct device *dev,
char *buf) char *buf)
{ {
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); 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.sign,
this_attr->c->scan_type.realbits, this_attr->c->scan_type.realbits,
this_attr->c->scan_type.storagebits, this_attr->c->scan_type.storagebits,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment