diff mbox series

[v2,04/11] iio:magn: introduce st_magn_get_settings() function

Message ID 20190718225353.2078-5-denis.ciocca@st.com (mailing list archive)
State New, archived
Headers show
Series iio:st_sensors: make use of regmap API | expand

Commit Message

Denis CIOCCA July 18, 2019, 10:53 p.m. UTC
The function is introduced to retrieve magn device settings. It will be
used by probe in order to configure regmap.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
---
Changes in v2:
 not there in v1. This meant to replace "iio:magn:introduce st_magn_multiread_bit() function"

 drivers/iio/magnetometer/st_magn.h      |  1 +
 drivers/iio/magnetometer/st_magn_core.c | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)

Comments

Jonathan Cameron July 21, 2019, 5:51 p.m. UTC | #1
On Thu, 18 Jul 2019 15:53:46 -0700
Denis Ciocca <denis.ciocca@st.com> wrote:

> The function is introduced to retrieve magn device settings. It will be
> used by probe in order to configure regmap.
> 
> Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Applied.

Thanks,

Jonathan

> ---
> Changes in v2:
>  not there in v1. This meant to replace "iio:magn:introduce st_magn_multiread_bit() function"
> 
>  drivers/iio/magnetometer/st_magn.h      |  1 +
>  drivers/iio/magnetometer/st_magn_core.c | 18 ++++++++++++++++++
>  2 files changed, 19 insertions(+)
> 
> diff --git a/drivers/iio/magnetometer/st_magn.h b/drivers/iio/magnetometer/st_magn.h
> index d69ef9b2a731..204b285725c8 100644
> --- a/drivers/iio/magnetometer/st_magn.h
> +++ b/drivers/iio/magnetometer/st_magn.h
> @@ -22,6 +22,7 @@
>  #define LIS2MDL_MAGN_DEV_NAME		"lis2mdl"
>  #define LSM9DS1_MAGN_DEV_NAME		"lsm9ds1_magn"
>  
> +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);
>  
> diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c
> index 2f7a1dbcdeb3..43a49a52c81a 100644
> --- a/drivers/iio/magnetometer/st_magn_core.c
> +++ b/drivers/iio/magnetometer/st_magn_core.c
> @@ -470,6 +470,24 @@ static const struct iio_trigger_ops st_magn_trigger_ops = {
>  #define ST_MAGN_TRIGGER_OPS NULL
>  #endif
>  
> +/*
> + * st_magn_get_settings() - get sensor settings from device name
> + * @name: device name buffer reference.
> + *
> + * Return: valid reference on success, NULL otherwise.
> + */
> +const struct st_sensor_settings *st_magn_get_settings(const char *name)
> +{
> +	int index = st_sensors_get_settings_index(name,
> +					st_magn_sensors_settings,
> +					ARRAY_SIZE(st_magn_sensors_settings));
> +	if (index < 0)
> +		return NULL;
> +
> +	return &st_magn_sensors_settings[index];
> +}
> +EXPORT_SYMBOL(st_magn_get_settings);
> +
>  int st_magn_common_probe(struct iio_dev *indio_dev)
>  {
>  	struct st_sensor_data *mdata = iio_priv(indio_dev);
diff mbox series

Patch

diff --git a/drivers/iio/magnetometer/st_magn.h b/drivers/iio/magnetometer/st_magn.h
index d69ef9b2a731..204b285725c8 100644
--- a/drivers/iio/magnetometer/st_magn.h
+++ b/drivers/iio/magnetometer/st_magn.h
@@ -22,6 +22,7 @@ 
 #define LIS2MDL_MAGN_DEV_NAME		"lis2mdl"
 #define LSM9DS1_MAGN_DEV_NAME		"lsm9ds1_magn"
 
+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);
 
diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c
index 2f7a1dbcdeb3..43a49a52c81a 100644
--- a/drivers/iio/magnetometer/st_magn_core.c
+++ b/drivers/iio/magnetometer/st_magn_core.c
@@ -470,6 +470,24 @@  static const struct iio_trigger_ops st_magn_trigger_ops = {
 #define ST_MAGN_TRIGGER_OPS NULL
 #endif
 
+/*
+ * st_magn_get_settings() - get sensor settings from device name
+ * @name: device name buffer reference.
+ *
+ * Return: valid reference on success, NULL otherwise.
+ */
+const struct st_sensor_settings *st_magn_get_settings(const char *name)
+{
+	int index = st_sensors_get_settings_index(name,
+					st_magn_sensors_settings,
+					ARRAY_SIZE(st_magn_sensors_settings));
+	if (index < 0)
+		return NULL;
+
+	return &st_magn_sensors_settings[index];
+}
+EXPORT_SYMBOL(st_magn_get_settings);
+
 int st_magn_common_probe(struct iio_dev *indio_dev)
 {
 	struct st_sensor_data *mdata = iio_priv(indio_dev);