diff options
| author | Denis CIOCCA <denis.ciocca@st.com> | 2013-06-03 10:58:00 -0400 |
|---|---|---|
| committer | Jonathan Cameron <jic23@kernel.org> | 2013-06-04 13:53:56 -0400 |
| commit | 762011d6193f8b9af9b491ded87dde3221d0600a (patch) | |
| tree | dcb4407f84566ab08c12ee739ab77954a4af8057 | |
| parent | 0a4510a6cbee270820871e60ab0cac7058b2f394 (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.c | 36 | ||||
| -rw-r--r-- | drivers/iio/gyro/st_gyro_core.c | 21 | ||||
| -rw-r--r-- | drivers/iio/magnetometer/st_magn_core.c | 36 | ||||
| -rw-r--r-- | include/linux/iio/common/st_sensors.h | 20 |
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 | ||
| 127 | static const struct iio_chan_spec st_accel_12bit_channels[] = { | 127 | 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, | 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 | ||
| 137 | static const struct iio_chan_spec st_accel_16bit_channels[] = { | 143 | 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, | 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 | ||
| 88 | static const struct iio_chan_spec st_gyro_16bit_channels[] = { | 88 | static 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 | ||
| 115 | static const struct iio_chan_spec st_magn_16bit_channels[] = { | 115 | 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, | 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 | ||
| 125 | static const struct iio_chan_spec st_magn_2_16bit_channels[] = { | 131 | 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, | 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 | } |
