Commit 8d05ffd2 authored by Lukas Wunner's avatar Lukas Wunner Committed by Jonathan Cameron
Browse files

iio: Add macro to populate struct iio_map array



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: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
Acked-by: default avatarChen-Yu Tsai <wens@csie.org>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent cccae604
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -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"),
	{},
};

+7 −0
Original line number Diff line number Diff line
@@ -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