Skip to content

Commit 762011d

Browse files
ciocca-djic23
authored andcommitted
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>
1 parent 0a4510a commit 762011d

4 files changed

Lines changed: 69 additions & 44 deletions

File tree

drivers/iio/accel/st_accel_core.c

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -125,22 +125,34 @@
125125
#define ST_ACCEL_3_MULTIREAD_BIT false
126126

127127
static 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,
129-
ST_SENSORS_DEFAULT_12_REALBITS, ST_ACCEL_DEFAULT_OUT_X_L_ADDR),
130-
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_Y, IIO_MOD_Y, IIO_LE,
131-
ST_SENSORS_DEFAULT_12_REALBITS, ST_ACCEL_DEFAULT_OUT_Y_L_ADDR),
132-
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_Z, IIO_MOD_Z, IIO_LE,
133-
ST_SENSORS_DEFAULT_12_REALBITS, ST_ACCEL_DEFAULT_OUT_Z_L_ADDR),
128+
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
129+
BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
130+
ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 12, 16,
131+
ST_ACCEL_DEFAULT_OUT_X_L_ADDR),
132+
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
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),
134140
IIO_CHAN_SOFT_TIMESTAMP(3)
135141
};
136142

137143
static 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,
139-
ST_SENSORS_DEFAULT_16_REALBITS, ST_ACCEL_DEFAULT_OUT_X_L_ADDR),
140-
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_Y, IIO_MOD_Y, IIO_LE,
141-
ST_SENSORS_DEFAULT_16_REALBITS, ST_ACCEL_DEFAULT_OUT_Y_L_ADDR),
142-
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL, ST_SENSORS_SCAN_Z, IIO_MOD_Z, IIO_LE,
143-
ST_SENSORS_DEFAULT_16_REALBITS, ST_ACCEL_DEFAULT_OUT_Z_L_ADDR),
144+
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
145+
BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
146+
ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
147+
ST_ACCEL_DEFAULT_OUT_X_L_ADDR),
148+
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
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),
144156
IIO_CHAN_SOFT_TIMESTAMP(3)
145157
};
146158

drivers/iio/gyro/st_gyro_core.c

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,18 @@
8686
#define ST_GYRO_2_MULTIREAD_BIT true
8787

8888
static const struct iio_chan_spec st_gyro_16bit_channels[] = {
89-
ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL, ST_SENSORS_SCAN_X,
90-
IIO_MOD_X, IIO_LE, ST_SENSORS_DEFAULT_16_REALBITS,
91-
ST_GYRO_DEFAULT_OUT_X_L_ADDR),
92-
ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL, ST_SENSORS_SCAN_Y,
93-
IIO_MOD_Y, IIO_LE, ST_SENSORS_DEFAULT_16_REALBITS,
94-
ST_GYRO_DEFAULT_OUT_Y_L_ADDR),
95-
ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL, ST_SENSORS_SCAN_Z,
96-
IIO_MOD_Z, IIO_LE, ST_SENSORS_DEFAULT_16_REALBITS,
97-
ST_GYRO_DEFAULT_OUT_Z_L_ADDR),
89+
ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL,
90+
BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
91+
ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
92+
ST_GYRO_DEFAULT_OUT_X_L_ADDR),
93+
ST_SENSORS_LSM_CHANNELS(IIO_ANGL_VEL,
94+
BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
95+
ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_LE, 16, 16,
96+
ST_GYRO_DEFAULT_OUT_Y_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),
98101
IIO_CHAN_SOFT_TIMESTAMP(3)
99102
};
100103

drivers/iio/magnetometer/st_magn_core.c

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -113,22 +113,34 @@
113113
#define ST_MAGN_2_OUT_Z_L_ADDR 0x2c
114114

115115
static 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,
117-
ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_DEFAULT_OUT_X_L_ADDR),
118-
ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_Y, IIO_MOD_Y, IIO_LE,
119-
ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_DEFAULT_OUT_Y_L_ADDR),
120-
ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_Z, IIO_MOD_Z, IIO_LE,
121-
ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_DEFAULT_OUT_Z_L_ADDR),
116+
ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
117+
BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
118+
ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
119+
ST_MAGN_DEFAULT_OUT_X_L_ADDR),
120+
ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
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),
122128
IIO_CHAN_SOFT_TIMESTAMP(3)
123129
};
124130

125131
static 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,
127-
ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_2_OUT_X_L_ADDR),
128-
ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_Y, IIO_MOD_Y, IIO_LE,
129-
ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_2_OUT_Y_L_ADDR),
130-
ST_SENSORS_LSM_CHANNELS(IIO_MAGN, ST_SENSORS_SCAN_Z, IIO_MOD_Z, IIO_LE,
131-
ST_SENSORS_DEFAULT_16_REALBITS, ST_MAGN_2_OUT_Z_L_ADDR),
132+
ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
133+
BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
134+
ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
135+
ST_MAGN_2_OUT_X_L_ADDR),
136+
ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
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),
132144
IIO_CHAN_SOFT_TIMESTAMP(3)
133145
};
134146

include/linux/iio/common/st_sensors.h

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
#define ST_SENSORS_SCAN_X 0
3131
#define ST_SENSORS_SCAN_Y 1
3232
#define ST_SENSORS_SCAN_Z 2
33-
#define ST_SENSORS_DEFAULT_12_REALBITS 12
34-
#define ST_SENSORS_DEFAULT_16_REALBITS 16
3533
#define ST_SENSORS_DEFAULT_POWER_ON_VALUE 0x01
3634
#define ST_SENSORS_DEFAULT_POWER_OFF_VALUE 0x00
3735
#define ST_SENSORS_DEFAULT_WAI_ADDRESS 0x0f
@@ -42,20 +40,20 @@
4240
#define ST_SENSORS_MAX_NAME 17
4341
#define ST_SENSORS_MAX_4WAI 7
4442

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) \
4645
{ \
4746
.type = device_type, \
48-
.modified = 1, \
49-
.info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
50-
BIT(IIO_CHAN_INFO_SCALE), \
47+
.modified = mod, \
48+
.info_mask_separate = mask, \
5149
.scan_index = index, \
52-
.channel2 = mod, \
50+
.channel2 = ch2, \
5351
.address = addr, \
5452
.scan_type = { \
55-
.sign = 's', \
56-
.realbits = bits, \
57-
.shift = 16 - bits, \
58-
.storagebits = 16, \
53+
.sign = s, \
54+
.realbits = rbits, \
55+
.shift = sbits - rbits, \
56+
.storagebits = sbits, \
5957
.endianness = endian, \
6058
}, \
6159
}

0 commit comments

Comments
 (0)