Пример #1
0
/* Applies to max1363 */
static const enum max1363_modes max1363_mode_list[] = {
	_s0, _s1, _s2, _s3,
	s0to1, s0to2, s0to3,
	d0m1, d2m3, d1m0, d3m2,
	d0m1to2m3, d1m0to3m2,
};

#define MAX1363_EV_M						\
	(IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING)	\
	 | IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING))
#define MAX1363_INFO_MASK (1 << IIO_CHAN_INFO_SCALE_SHARED)

static struct iio_chan_spec max1363_channels[] = {
	IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 0, 0, MAX1363_INFO_MASK,
		 _s0, 0, IIO_ST('u', 12, 16, 0), MAX1363_EV_M),
	IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, MAX1363_INFO_MASK,
		 _s1, 1, IIO_ST('u', 12, 16, 0), MAX1363_EV_M),
	IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 2, 0, MAX1363_INFO_MASK,
		 _s2, 2, IIO_ST('u', 12, 16, 0), MAX1363_EV_M),
	IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 3, 0, MAX1363_INFO_MASK,
		 _s3, 3, IIO_ST('u', 12, 16, 0), MAX1363_EV_M),
	IIO_CHAN(IIO_IN_DIFF, 0, 1, 0, NULL, 0, 1, MAX1363_INFO_MASK,
		 d0m1, 4, IIO_ST('s', 12, 16, 0), MAX1363_EV_M),
	IIO_CHAN(IIO_IN_DIFF, 0, 1, 0, NULL, 2, 3, MAX1363_INFO_MASK,
		 d2m3, 5, IIO_ST('s', 12, 16, 0), MAX1363_EV_M),
	IIO_CHAN(IIO_IN_DIFF, 0, 1, 0, NULL, 1, 0, MAX1363_INFO_MASK,
		 d1m0, 6, IIO_ST('s', 12, 16, 0), MAX1363_EV_M),
	IIO_CHAN(IIO_IN_DIFF, 0, 1, 0, NULL, 3, 2, MAX1363_INFO_MASK,
		 d3m2, 7, IIO_ST('s', 12, 16, 0), MAX1363_EV_M),
	IIO_CHAN_SOFT_TIMESTAMP(8)
Пример #2
0
		.sign = 's', \
		.realbits = 16, \
		.storagebits = 16, \
		.endianness = IIO_BE, \
	}, \
}

static const struct iio_chan_spec mag3110_channels[] = {
	MAG3110_CHANNEL(X, 0),
	MAG3110_CHANNEL(Y, 1),
	MAG3110_CHANNEL(Z, 2),
	{
		.type = IIO_TEMP,
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.scan_index = 3,
		.scan_type = IIO_ST('s', 8, 8, 0),
	},
	IIO_CHAN_SOFT_TIMESTAMP(4),
};

static struct attribute *mag3110_attributes[] = {
	&iio_dev_attr_sampling_frequency_available.dev_attr.attr,
	NULL
};

static const struct attribute_group mag3110_group = {
	.attrs = mag3110_attributes,
};

static const struct iio_info mag3110_info = {
	.attrs = &mag3110_group,
Пример #3
0
#include <linux/spi/spi.h>
#include <linux/regulator/consumer.h>
#include <linux/err.h>
#include <linux/delay.h>

#include "../iio.h"
#include "../sysfs.h"
#include "../ring_generic.h"
#include "adc.h"

#include "ad7298.h"

static struct iio_chan_spec ad7298_channels[] = {
    IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
    (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
    9, AD7298_CH_TEMP, IIO_ST('s', 32, 32, 0), 0),
    IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 0, 0,
    (1 << IIO_CHAN_INFO_SCALE_SHARED),
    0, 0, IIO_ST('u', 12, 16, 0), 0),
    IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0,
    (1 << IIO_CHAN_INFO_SCALE_SHARED),
    1, 1, IIO_ST('u', 12, 16, 0), 0),
    IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 2, 0,
    (1 << IIO_CHAN_INFO_SCALE_SHARED),
    2, 2, IIO_ST('u', 12, 16, 0), 0),
    IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 3, 0,
    (1 << IIO_CHAN_INFO_SCALE_SHARED),
    3, 3, IIO_ST('u', 12, 16, 0), 0),
    IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 4, 0,
    (1 << IIO_CHAN_INFO_SCALE_SHARED),
    4, 4, IIO_ST('u', 12, 16, 0), 0),
Пример #4
0
            IIO_PROXIMITY,
            0,
            IIO_MOD_X,
            16,
            REGS_PS1_DATA0
            ),
	OPTICAL_CHANNELS( 
            IIO_LIGHT,
            1,
            IIO_MOD_X,
            16,
            REGS_ALS_VIS_DATA0
            ),*/
	IIO_CHAN(IIO_PROXIMITY, 1, 0, 0, NULL, 0, IIO_MOD_X,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 REGS_PS1_DATA0,L1PH03_SCAN_PROX_X, IIO_ST('s', 16, 16, 0), 0),

	IIO_CHAN(IIO_LIGHT, 1, 0, 0, NULL, 0, IIO_MOD_X,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 REGS_ALS_VIS_DATA0, L1PH03_SCAN_LIGHT_X , IIO_ST('s', 16, 16, 0), 0),
	IIO_CHAN_SOFT_TIMESTAMP(2)
};


static const struct optical_sensors_list optical_sensors[] = //co 1 sensor su dung lam heartRate
{
    {
        .wai = { 0x43 },
        .sensors_supported = {
            [0] = OPTICAL_DEV_NAME,
        },
Пример #5
0
 * Description of available channels
 *
 * This array of structures tells the IIO core about what the device
 * actually provides for a given channel.
 */
static struct iio_chan_spec step_channels[] = {
	{
		.type = IIO_ACCEL,	/* Nothing better defined */
		.modified = 1,
		.channel = 0,
		.address = 0,
		/* Channel 2 is use for modifiers */
		.channel2 = IIO_MOD_X,
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.scan_index = axis_x,
		.scan_type = IIO_ST('u', 32, 32, 24),
	},
	{
		.type = IIO_ACCEL,
		.modified = 1,
		.channel = 1,
		.address = 1,
		/* Channel 2 is use for modifiers */
		.channel2 = IIO_MOD_Y,
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.scan_index = axis_y,
		.scan_type = IIO_ST('u', 32, 32, 24),
	},
	IIO_CHAN_SOFT_TIMESTAMP(3),
};