iio: st_sensors: Make accel, gyro, magn and pressure probe shared
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 14 Apr 2021 19:54:52 +0000 (22:54 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 17 May 2021 12:54:22 +0000 (13:54 +0100)
Some IMUs may utilize existing library code for STMicro accelerometer,
gyroscope, magnetometer and pressure. Let's share them via st_sensors.h.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210414195454.84183-5-andriy.shevchenko@linux.intel.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/st_accel.h
drivers/iio/gyro/st_gyro.h
drivers/iio/magnetometer/st_magn.h
drivers/iio/pressure/st_pressure.h
include/linux/iio/common/st_sensors.h

index 181ebe79c4eb9da7b97f4f79c219f5f0d7173944..f5b0b8bbaff7487512fc51d82335b0fb0cfdb095 100644 (file)
@@ -62,10 +62,6 @@ enum st_accel_type {
 #define LIS2DE12_ACCEL_DEV_NAME                "lis2de12"
 #define LIS2HH12_ACCEL_DEV_NAME                "lis2hh12"
 
-const struct st_sensor_settings *st_accel_get_settings(const char *name);
-int st_accel_common_probe(struct iio_dev *indio_dev);
-void st_accel_common_remove(struct iio_dev *indio_dev);
-
 #ifdef CONFIG_IIO_BUFFER
 int st_accel_allocate_ring(struct iio_dev *indio_dev);
 void st_accel_deallocate_ring(struct iio_dev *indio_dev);
index b385fe664dcc69f7159b996671248bd387319621..6537f5cb83202bf35097de61f86b7713e1893a11 100644 (file)
 #define LSM330_GYRO_DEV_NAME           "lsm330_gyro"
 #define LSM9DS0_GYRO_DEV_NAME          "lsm9ds0_gyro"
 
-const struct st_sensor_settings *st_gyro_get_settings(const char *name);
-int st_gyro_common_probe(struct iio_dev *indio_dev);
-void st_gyro_common_remove(struct iio_dev *indio_dev);
-
 #ifdef CONFIG_IIO_BUFFER
 int st_gyro_allocate_ring(struct iio_dev *indio_dev);
 void st_gyro_deallocate_ring(struct iio_dev *indio_dev);
index 7ba6a6ba5c5873c31787181ad21b12703cc94b5c..fb6c906c4c0cc6185ff7935c5ccdf0edac1aeddb 100644 (file)
 #define LSM9DS1_MAGN_DEV_NAME          "lsm9ds1_magn"
 #define IIS2MDC_MAGN_DEV_NAME          "iis2mdc"
 
-const struct st_sensor_settings *st_magn_get_settings(const char *name);
-int st_magn_common_probe(struct iio_dev *indio_dev);
-void st_magn_common_remove(struct iio_dev *indio_dev);
-
 #ifdef CONFIG_IIO_BUFFER
 int st_magn_allocate_ring(struct iio_dev *indio_dev);
 void st_magn_deallocate_ring(struct iio_dev *indio_dev);
index 5c746ff6087e04946dfdee2ee0b6b74b89860383..9417b3bd75136f6c93248644048275e1c71b3faa 100644 (file)
@@ -41,10 +41,6 @@ static __maybe_unused const struct st_sensors_platform_data default_press_pdata
        .drdy_int_pin = 1,
 };
 
-const struct st_sensor_settings *st_press_get_settings(const char *name);
-int st_press_common_probe(struct iio_dev *indio_dev);
-void st_press_common_remove(struct iio_dev *indio_dev);
-
 #ifdef CONFIG_IIO_BUFFER
 int st_press_allocate_ring(struct iio_dev *indio_dev);
 void st_press_deallocate_ring(struct iio_dev *indio_dev);
index 33e939977444bfe04b1eb40f1d6c5b24f2cc334d..aa017b90fb06585cb4ab707e2faca5684e2e4363 100644 (file)
@@ -317,4 +317,24 @@ ssize_t st_sensors_sysfs_scale_avail(struct device *dev,
 
 void st_sensors_dev_name_probe(struct device *dev, char *name, int len);
 
+/* Accelerometer */
+const struct st_sensor_settings *st_accel_get_settings(const char *name);
+int st_accel_common_probe(struct iio_dev *indio_dev);
+void st_accel_common_remove(struct iio_dev *indio_dev);
+
+/* Gyroscope */
+const struct st_sensor_settings *st_gyro_get_settings(const char *name);
+int st_gyro_common_probe(struct iio_dev *indio_dev);
+void st_gyro_common_remove(struct iio_dev *indio_dev);
+
+/* Magnetometer */
+const struct st_sensor_settings *st_magn_get_settings(const char *name);
+int st_magn_common_probe(struct iio_dev *indio_dev);
+void st_magn_common_remove(struct iio_dev *indio_dev);
+
+/* Pressure */
+const struct st_sensor_settings *st_press_get_settings(const char *name);
+int st_press_common_probe(struct iio_dev *indio_dev);
+void st_press_common_remove(struct iio_dev *indio_dev);
+
 #endif /* ST_SENSORS_H */