aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis CIOCCA <denis.ciocca@st.com>2013-06-03 10:58:00 -0400
committerJonathan Cameron <jic23@kernel.org>2013-06-04 13:53:56 -0400
commit762011d6193f8b9af9b491ded87dde3221d0600a (patch)
treedcb4407f84566ab08c12ee739ab77954a4af8057
parent0a4510a6cbee270820871e60ab0cac7058b2f394 (diff)
iio:common: ST_SENSORS_LSM_CHANNELS macro changed
Signed-off-by: Denis Ciocca <denis.ciocca@st.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r--drivers/iio/accel/st_accel_core.c36
-rw-r--r--drivers/iio/gyro/st_gyro_core.c21
-rw-r--r--drivers/iio/magnetometer/st_magn_core.c36
-rw-r--r--include/linux/iio/common/st_sensors.h20
4 files changed, 69 insertions, 44 deletions
diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
index e0f5a3ceba5e..40236d5d8753 100644
--- a/drivers/iio/accel/st_accel_core.c
+++ b/drivers/iio/accel/st_accel_core.c
@@ -125,22 +125,34 @@
125#define ST_ACCEL_3_MULTIREAD_BIT false 125#define ST_ACCEL_3_MULTIREAD_BIT false
126 126
127static const struct iio_chan_spec st_accel_12bit_channels[] = { 127static const struct iio_chan_spec st_accel_12bit_channels[] = {
128 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_X, IIO_MOD_X, IIO_LE, 128 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
129 ST_SENSORS_DEFAULT_12_REALBITS, ST_ACCEL_DEFAULT_OUT_X_L_ADDR), 129 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
130 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_Y, IIO_MOD_Y, IIO_LE, 130 ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 12, 16,
131 ST_SENSORS_DEFAULT_12_REALBITS, ST_ACCEL_DEFAULT_OUT_Y_L_ADDR), 131 ST_ACCEL_DEFAULT_OUT_X_L_ADDR),
132 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_Z, IIO_MOD_Z, IIO_LE, 132 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
133 ST_SENSORS_DEFAULT_12_REALBITS, ST_ACCEL_DEFAULT_OUT_Z_L_ADDR), 133 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
134 ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_LE, 12, 16,
135 ST_ACCEL_DEFAULT_OUT_Y_L_ADDR),
136 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
137 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
138 ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_LE, 12, 16,
139 ST_ACCEL_DEFAULT_OUT_Z_L_ADDR),
134 IIO_CHAN_SOFT_TIMESTAMP(3) 140 IIO_CHAN_SOFT_TIMESTAMP(3)
135}; 141};
136 142
137static const struct iio_chan_spec st_accel_16bit_channels[] = { 143static const struct iio_chan_spec st_accel_16bit_channels[] = {
138 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_X, IIO_MOD_X, IIO_LE, 144 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
139 ST_SENSORS_DEFAULT_16_REALBITS, ST_ACCEL_DEFAULT_OUT_X_L_ADDR), 145 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
140 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_Y, IIO_MOD_Y, IIO_LE, 146 ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
141 ST_SENSORS_DEFAULT_16_REALBITS, ST_ACCEL_DEFAULT_OUT_Y_L_ADDR), 147 ST_ACCEL_DEFAULT_OUT_X_L_ADDR),
142 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_Z, IIO_MOD_Z, IIO_LE, 148 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
143 ST_SENSORS_DEFAULT_16_REALBITS, ST_ACCEL_DEFAULT_OUT_Z_L_ADDR), 149 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
150 ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_LE, 16, 16,
151 ST_ACCEL_DEFAULT_OUT_Y_L_ADDR),
152 ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
153 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
154 ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_LE, 16, 16,
155 ST_ACCEL_DEFAULT_OUT_Z_L_ADDR),
144 IIO_CHAN_SOFT_TIMESTAMP(3) 156 IIO_CHAN_SOFT_TIMESTAMP(3)
145}; 157};
146 158
diff --git a/drivers/iio/gyro/st_gyro_core.c b/drivers/iio/gyro/st_gyro_core.c
index fa9b24219987..9bae46bcccee 100644
--- a/drivers/iio/gyro/st_gyro_core.c
+++ b/drivers/iio/gyro/st_gyro_core.c
@@ -86,15 +86,18 @@
86#define ST_GYRO_2_MULTIREAD_BIT true 86#define ST_GYRO_2_MULTIREAD_BIT true
87 87
88static const struct iio_chan_spec st_gyro_16bit_channels[] = { 88static const struct iio_chan_spec st_gyro_16bit_channels[] = {
89 ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL, ST_SENSORS_SCAN_X, 89 ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL,
90 IIO_MOD_X, IIO_LE, ST_SENSORS_DEFAULT_16_REALBITS, 90 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
91 ST_GYRO_DEFAULT_OUT_X_L_ADDR), 91 ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
92 ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL, ST_SENSORS_SCAN_Y, 92 ST_GYRO_DEFAULT_OUT_X_L_ADDR),
93 IIO_MOD_Y, IIO_LE, ST_SENSORS_DEFAULT_16_REALBITS, 93 ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL,
94 ST_GYRO_DEFAULT_OUT_Y_L_ADDR), 94 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
95 ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL, ST_SENSORS_SCAN_Z, 95 ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_LE, 16, 16,
96 IIO_MOD_Z, IIO_LE, ST_SENSORS_DEFAULT_16_REALBITS, 96 ST_GYRO_DEFAULT_OUT_Y_L_ADDR),
97 ST_GYRO_DEFAULT_OUT_Z_L_ADDR), 97 ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL,
98 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
99 ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_LE, 16, 16,
100 ST_GYRO_DEFAULT_OUT_Z_L_ADDR),
98 IIO_CHAN_SOFT_TIMESTAMP(3) 101 IIO_CHAN_SOFT_TIMESTAMP(3)
99}; 102};
100 103
diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c
index 16f0d6df239f..715d61681df3 100644
--- a/drivers/iio/magnetometer/st_magn_core.c
+++ b/drivers/iio/magnetometer/st_magn_core.c
@@ -113,22 +113,34 @@
113#define ST_MAGN_2_OUT_Z_L_ADDR 0x2c 113#define ST_MAGN_2_OUT_Z_L_ADDR 0x2c
114 114
115static const struct iio_chan_spec st_magn_16bit_channels[] = { 115static const struct iio_chan_spec st_magn_16bit_channels[] = {
116 ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_X, IIO_MOD_X, IIO_LE, 116 ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
117 ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_DEFAULT_OUT_X_L_ADDR), 117 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
118 ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_Y, IIO_MOD_Y, IIO_LE, 118 ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
119 ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_DEFAULT_OUT_Y_L_ADDR), 119 ST_MAGN_DEFAULT_OUT_X_L_ADDR),
120 ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_Z, IIO_MOD_Z, IIO_LE, 120 ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
121 ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_DEFAULT_OUT_Z_L_ADDR), 121 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
122 ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_LE, 16, 16,
123 ST_MAGN_DEFAULT_OUT_Y_L_ADDR),
124 ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
125 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
126 ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_LE, 16, 16,
127 ST_MAGN_DEFAULT_OUT_Z_L_ADDR),
122 IIO_CHAN_SOFT_TIMESTAMP(3) 128 IIO_CHAN_SOFT_TIMESTAMP(3)
123}; 129};
124 130
125static const struct iio_chan_spec st_magn_2_16bit_channels[] = { 131static const struct iio_chan_spec st_magn_2_16bit_channels[] = {
126 ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_X, IIO_MOD_X, IIO_LE, 132 ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
127 ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_2_OUT_X_L_ADDR), 133 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
128 ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_Y, IIO_MOD_Y, IIO_LE, 134 ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
129 ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_2_OUT_Y_L_ADDR), 135 ST_MAGN_2_OUT_X_L_ADDR),
130 ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_Z, IIO_MOD_Z, IIO_LE, 136 ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
131 ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_2_OUT_Z_L_ADDR), 137 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
138 ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_LE, 16, 16,
139 ST_MAGN_2_OUT_Y_L_ADDR),
140 ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
141 BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
142 ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_LE, 16, 16,
143 ST_MAGN_2_OUT_Z_L_ADDR),
132 IIO_CHAN_SOFT_TIMESTAMP(3) 144 IIO_CHAN_SOFT_TIMESTAMP(3)
133}; 145};
134 146
diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h
index 172c5b23cb84..5ffd763702dc 100644
--- a/include/linux/iio/common/st_sensors.h
+++ b/include/linux/iio/common/st_sensors.h
@@ -30,8 +30,6 @@
30#define ST_SENSORS_SCAN_X 0 30#define ST_SENSORS_SCAN_X 0
31#define ST_SENSORS_SCAN_Y 1 31#define ST_SENSORS_SCAN_Y 1
32#define ST_SENSORS_SCAN_Z 2 32#define ST_SENSORS_SCAN_Z 2
33#define ST_SENSORS_DEFAULT_12_REALBITS 12
34#define ST_SENSORS_DEFAULT_16_REALBITS 16
35#define ST_SENSORS_DEFAULT_POWER_ON_VALUE 0x01 33#define ST_SENSORS_DEFAULT_POWER_ON_VALUE 0x01
36#define ST_SENSORS_DEFAULT_POWER_OFF_VALUE 0x00 34#define ST_SENSORS_DEFAULT_POWER_OFF_VALUE 0x00
37#define ST_SENSORS_DEFAULT_WAI_ADDRESS 0x0f 35#define ST_SENSORS_DEFAULT_WAI_ADDRESS 0x0f
@@ -42,20 +40,20 @@
42#define ST_SENSORS_MAX_NAME 17 40#define ST_SENSORS_MAX_NAME 17
43#define ST_SENSORS_MAX_4WAI 7 41#define ST_SENSORS_MAX_4WAI 7
44 42
45#define ST_SENSORS_LSM_CHANNELS(device_type, index, mod, endian, bits, addr) \ 43#define ST_SENSORS_LSM_CHANNELS(device_type, mask, index, mod, \
44 ch2, s, endian, rbits, sbits, addr) \
46{ \ 45{ \
47 .type = device_type, \ 46 .type = device_type, \
48 .modified = 1, \ 47 .modified = mod, \
49 .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \ 48 .info_mask_separate = mask, \
50 BIT(IIO_CHAN_INFO_SCALE), \
51 .scan_index = index, \ 49 .scan_index = index, \
52 .channel2 = mod, \ 50 .channel2 = ch2, \
53 .address = addr, \ 51 .address = addr, \
54 .scan_type = { \ 52 .scan_type = { \
55 .sign = 's', \ 53 .sign = s, \
56 .realbits = bits, \ 54 .realbits = rbits, \
57 .shift = 16 - bits, \ 55 .shift = sbits - rbits, \
58 .storagebits = 16, \ 56 .storagebits = sbits, \
59 .endianness = endian, \ 57 .endianness = endian, \
60 }, \ 58 }, \
61} 59}