dm: adc: add uclass's mask and conversion helpers

Add two functions to ADC uclass's:
- adc_raw_to_uV() to ease ADC raw value conversion to microvolts
- adc_channel_mask() to get channels on consumer side

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Fabrice Gasnier 2018-11-12 14:03:58 +01:00 committed by Tom Rini
parent d73d81fd85
commit 63f004e7aa
3 changed files with 93 additions and 0 deletions

View file

@ -218,6 +218,17 @@ int adc_channels_data(struct udevice *dev, unsigned int channel_mask,
*/
int adc_data_mask(struct udevice *dev, unsigned int *data_mask);
/**
* adc_channel_mask() - get channel mask for given ADC device
*
* This can be used if adc uclass platform data is filled.
*
* @dev: ADC device to check
* @channel_mask: pointer to the returned channel bitmask
* @return: 0 if OK, -ve on error
*/
int adc_channel_mask(struct udevice *dev, unsigned int *channel_mask);
/**
* adc_channel_single_shot() - get output data of conversion for the ADC
* device's channel. This function searches for the device with the given name,
@ -284,4 +295,14 @@ int adc_vss_value(struct udevice *dev, int *uV);
*/
int adc_stop(struct udevice *dev);
/**
* adc_raw_to_uV() - converts raw value to microvolts for given ADC device.
*
* @dev: ADC device used from conversion
* @raw: raw value to convert
* @uV: converted value in microvolts
* @return: 0 on success or -ve on error
*/
int adc_raw_to_uV(struct udevice *dev, unsigned int raw, int *uV);
#endif