Re: [PATCH] iio: Add macro to populate struct iio_map array

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 25 Nov 2017 15:50:10 +0000
Jonathan Cameron <jic23@xxxxxxxxxx> wrote:

> On Sat, 25 Nov 2017 09:38:17 +0100
> Lukas Wunner <lukas@xxxxxxxxx> wrote:
> 
> > The GPIO core provides a handy GPIO_LOOKUP() macro to populate a struct
> > gpiod_lookup array without having to spell out attribute names (but
> > still avoid breakage when attributes within the struct are rearranged
> > or added).
> > 
> > The axp288_adc.c driver uses a similar macro to populate a struct
> > iio_map array.  Make it available to others.
> > 
> > Cc: Chen-Yu Tsai <wens@xxxxxxxx>
> > Cc: Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx>
> > Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx>  
> Seems reasonable to me but I'll let it sit for a few days in case
> anyone wants to comment.
> 
> Jonathan
Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with it.

Thanks,

Jonathan
> 
> > ---
> > The motivation for this change is that we're using it in a module which
> > is currently out-of-tree.  I'm only converting axp288_adc.c here as it
> > already has such a macro, and not all the other drivers which declare
> > iio_map arrays because such trivial refactoring is not always welcome.
> > I could convert these other drivers as well if desired.  If so, please
> > let me know if this should all be put in a single patch or split per
> > driver.
> > 
> > Note that I've replaced _adc_channel_label with _provider_channel,
> > which is more apt in my opinion.  Please shout if you disagree.
> > 
> > Thanks!
> > 
> >  drivers/iio/adc/axp288_adc.c | 20 ++++++--------------
> >  include/linux/iio/machine.h  |  7 +++++++
> >  2 files changed, 13 insertions(+), 14 deletions(-)
> > 
> > diff --git a/drivers/iio/adc/axp288_adc.c b/drivers/iio/adc/axp288_adc.c
> > index 60c9e853dd81..031d568b4972 100644
> > --- a/drivers/iio/adc/axp288_adc.c
> > +++ b/drivers/iio/adc/axp288_adc.c
> > @@ -92,22 +92,14 @@ static const struct iio_chan_spec axp288_adc_channels[] = {
> >  	},
> >  };
> >  
> > -#define AXP288_ADC_MAP(_adc_channel_label, _consumer_dev_name,	\
> > -		_consumer_channel)				\
> > -	{							\
> > -		.adc_channel_label = _adc_channel_label,	\
> > -		.consumer_dev_name = _consumer_dev_name,	\
> > -		.consumer_channel = _consumer_channel,		\
> > -	}
> > -
> >  /* for consumer drivers */
> >  static struct iio_map axp288_adc_default_maps[] = {
> > -	AXP288_ADC_MAP("TS_PIN", "axp288-batt", "axp288-batt-temp"),
> > -	AXP288_ADC_MAP("PMIC_TEMP", "axp288-pmic", "axp288-pmic-temp"),
> > -	AXP288_ADC_MAP("GPADC", "axp288-gpadc", "axp288-system-temp"),
> > -	AXP288_ADC_MAP("BATT_CHG_I", "axp288-chrg", "axp288-chrg-curr"),
> > -	AXP288_ADC_MAP("BATT_DISCHRG_I", "axp288-chrg", "axp288-chrg-d-curr"),
> > -	AXP288_ADC_MAP("BATT_V", "axp288-batt", "axp288-batt-volt"),
> > +	IIO_MAP("TS_PIN", "axp288-batt", "axp288-batt-temp"),
> > +	IIO_MAP("PMIC_TEMP", "axp288-pmic", "axp288-pmic-temp"),
> > +	IIO_MAP("GPADC", "axp288-gpadc", "axp288-system-temp"),
> > +	IIO_MAP("BATT_CHG_I", "axp288-chrg", "axp288-chrg-curr"),
> > +	IIO_MAP("BATT_DISCHRG_I", "axp288-chrg", "axp288-chrg-d-curr"),
> > +	IIO_MAP("BATT_V", "axp288-batt", "axp288-batt-volt"),
> >  	{},
> >  };
> >  
> > diff --git a/include/linux/iio/machine.h b/include/linux/iio/machine.h
> > index 1601a2a63a72..5e1cfa75f652 100644
> > --- a/include/linux/iio/machine.h
> > +++ b/include/linux/iio/machine.h
> > @@ -28,4 +28,11 @@ struct iio_map {
> >  	void *consumer_data;
> >  };
> >  
> > +#define IIO_MAP(_provider_channel, _consumer_dev_name, _consumer_channel) \
> > +{									  \
> > +	.adc_channel_label = _provider_channel,				  \
> > +	.consumer_dev_name = _consumer_dev_name,			  \
> > +	.consumer_channel  = _consumer_channel,				  \
> > +}
> > +
> >  #endif  
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux