Re: [PATCH v3 06/10] iio: adc: qcom-spmi-adc5: use of_device_get_match_data

Jonathan Cameron
2020-09-09T18:06:01Z

On Wed, 9 Sep 2020 17:42:44 +0300
Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote:

> Use of_device_get_match_data() instead of hand-coding it manually.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> ---
> drivers/iio/adc/qcom-spmi-adc5.c | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/iio/adc/qcom-spmi-adc5.c b/drivers/iio/adc/qcom-spmi-adc5.c
> index c2da8f068b87..ae27ed7a26ff 100644
> --- a/drivers/iio/adc/qcom-spmi-adc5.c
> +++ b/drivers/iio/adc/qcom-spmi-adc5.c
> @@ -14,6 +14,7 @@
> #include <linux/math64.h>
> #include <linux/module.h>
> #include <linux/of.h>
> +#include <linux/of_device.h>
> #include <linux/platform_device.h>
> #include <linux/regmap.h>
> #include <linux/slab.h>
> @@ -807,8 +808,6 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node)
> struct adc5_channel_prop prop, *chan_props;
> struct device_node *child;
> unsigned int index = 0;
> - const struct of_device_id *id;
> - const struct adc5_data *data;
> int ret;
>
> adc->nchannels = of_get_available_child_count(node);
> @@ -827,24 +826,21 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node)
>
> chan_props = adc->chan_props;
> iio_chan = adc->iio_chans;
> - id = of_match_node(adc5_match_table, node);
> - if (id)
> - data = id->data;
> - else
> - data = &adc5_data_pmic;
> - adc->data = data;
> + adc->data = of_device_get_match_data(adc->dev);
> + if (!adc->data)
> + adc->data = &adc5_data_pmic;
>
> for_each_available_child_of_node(node, child) {
> - ret = adc5_get_dt_channel_data(adc, &prop, child, data);
> + ret = adc5_get_dt_channel_data(adc, &prop, child, adc->data);
> if (ret) {
> of_node_put(child);
> return ret;
> }
>
> prop.scale_fn_type =
> - data->adc_chans[prop.channel].scale_fn_type;
> + adc->data->adc_chans[prop.channel].scale_fn_type;
> *chan_props = prop;
> - adc_chan = &data->adc_chans[prop.channel];
> + adc_chan = &adc->data->adc_chans[prop.channel];
>
> iio_chan->channel = prop.channel;
> iio_chan->datasheet_name = prop.datasheet_name;