diff options
| author | Denis CIOCCA <denis.ciocca@st.com> | 2013-06-19 04:28:00 -0400 |
|---|---|---|
| committer | Jonathan Cameron <jic23@kernel.org> | 2013-08-03 13:40:28 -0400 |
| commit | 23cde4d65cc7d11e2048d2b240cdf13927ac50d0 (patch) | |
| tree | 3fd2d23f8c092056244e14703bce9842c203ba13 /include/linux/iio/common | |
| parent | 36e607a16b8def1b184d48a4489b716d6dbe3379 (diff) | |
iio: Added ST-sensors platform data to select the DRDY interrupt pin
This patch add support to redirect the DRDY interrupt on INT1 or INT2
on accelerometer and pressure sensors.
Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'include/linux/iio/common')
| -rw-r--r-- | include/linux/iio/common/st_sensors.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h index 72b26940730d..e51f65480ea5 100644 --- a/include/linux/iio/common/st_sensors.h +++ b/include/linux/iio/common/st_sensors.h | |||
| @@ -17,6 +17,8 @@ | |||
| 17 | #include <linux/iio/trigger.h> | 17 | #include <linux/iio/trigger.h> |
| 18 | #include <linux/bitops.h> | 18 | #include <linux/bitops.h> |
| 19 | 19 | ||
| 20 | #include <linux/platform_data/st_sensors_pdata.h> | ||
| 21 | |||
| 20 | #define ST_SENSORS_TX_MAX_LENGTH 2 | 22 | #define ST_SENSORS_TX_MAX_LENGTH 2 |
| 21 | #define ST_SENSORS_RX_MAX_LENGTH 6 | 23 | #define ST_SENSORS_RX_MAX_LENGTH 6 |
| 22 | 24 | ||
| @@ -118,14 +120,16 @@ struct st_sensor_bdu { | |||
| 118 | /** | 120 | /** |
| 119 | * struct st_sensor_data_ready_irq - ST sensor device data-ready interrupt | 121 | * struct st_sensor_data_ready_irq - ST sensor device data-ready interrupt |
| 120 | * @addr: address of the register. | 122 | * @addr: address of the register. |
| 121 | * @mask: mask to write the on/off value. | 123 | * @mask_int1: mask to enable/disable IRQ on INT1 pin. |
| 124 | * @mask_int2: mask to enable/disable IRQ on INT2 pin. | ||
| 122 | * struct ig1 - represents the Interrupt Generator 1 of sensors. | 125 | * struct ig1 - represents the Interrupt Generator 1 of sensors. |
| 123 | * @en_addr: address of the enable ig1 register. | 126 | * @en_addr: address of the enable ig1 register. |
| 124 | * @en_mask: mask to write the on/off value for enable. | 127 | * @en_mask: mask to write the on/off value for enable. |
| 125 | */ | 128 | */ |
| 126 | struct st_sensor_data_ready_irq { | 129 | struct st_sensor_data_ready_irq { |
| 127 | u8 addr; | 130 | u8 addr; |
| 128 | u8 mask; | 131 | u8 mask_int1; |
| 132 | u8 mask_int2; | ||
| 129 | struct { | 133 | struct { |
| 130 | u8 en_addr; | 134 | u8 en_addr; |
| 131 | u8 en_mask; | 135 | u8 en_mask; |
| @@ -201,6 +205,7 @@ struct st_sensors { | |||
| 201 | * @buffer_data: Data used by buffer part. | 205 | * @buffer_data: Data used by buffer part. |
| 202 | * @odr: Output data rate of the sensor [Hz]. | 206 | * @odr: Output data rate of the sensor [Hz]. |
| 203 | * num_data_channels: Number of data channels used in buffer. | 207 | * num_data_channels: Number of data channels used in buffer. |
| 208 | * @drdy_int_pin: Redirect DRDY on pin 1 (1) or pin 2 (2). | ||
| 204 | * @get_irq_data_ready: Function to get the IRQ used for data ready signal. | 209 | * @get_irq_data_ready: Function to get the IRQ used for data ready signal. |
| 205 | * @tf: Transfer function structure used by I/O operations. | 210 | * @tf: Transfer function structure used by I/O operations. |
| 206 | * @tb: Transfer buffers and mutex used by I/O operations. | 211 | * @tb: Transfer buffers and mutex used by I/O operations. |
| @@ -219,6 +224,8 @@ struct st_sensor_data { | |||
| 219 | unsigned int odr; | 224 | unsigned int odr; |
| 220 | unsigned int num_data_channels; | 225 | unsigned int num_data_channels; |
| 221 | 226 | ||
| 227 | u8 drdy_int_pin; | ||
| 228 | |||
| 222 | unsigned int (*get_irq_data_ready) (struct iio_dev *indio_dev); | 229 | unsigned int (*get_irq_data_ready) (struct iio_dev *indio_dev); |
| 223 | 230 | ||
| 224 | const struct st_sensor_transfer_function *tf; | 231 | const struct st_sensor_transfer_function *tf; |
| @@ -249,7 +256,8 @@ static inline void st_sensors_deallocate_trigger(struct iio_dev *indio_dev) | |||
| 249 | } | 256 | } |
| 250 | #endif | 257 | #endif |
| 251 | 258 | ||
| 252 | int st_sensors_init_sensor(struct iio_dev *indio_dev); | 259 | int st_sensors_init_sensor(struct iio_dev *indio_dev, |
| 260 | struct st_sensors_platform_data *pdata); | ||
| 253 | 261 | ||
| 254 | int st_sensors_set_enable(struct iio_dev *indio_dev, bool enable); | 262 | int st_sensors_set_enable(struct iio_dev *indio_dev, bool enable); |
| 255 | 263 | ||
