123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- /* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA").
- * All rights reserved.
- *
- * This software is supplied "AS IS" without any warranties.
- * RDA assumes no responsibility or liability for the use of the software,
- * conveys no license or title under any patent, copyright, or mask work
- * right to the product. RDA reserves the right to make changes in the
- * software without notification. RDA also make no representation or
- * warranty that such application will be suitable for the specified use
- * without further testing or modification.
- */
- #ifndef _DRV_ADC_H_
- #define _DRV_ADC_H_
- #define ADC_CHANNEL_INVALID -1
- enum adc_aux_scale
- {
- ADC_SCALE_0 = 0, ///< scale0:8910 1v250/8811 1v250
- ADC_SCALE_1 = 1, ///< scale1:8910 2v444/8811 1v600
- ADC_SCALE_2 = 2, ///< scale2:8910 3v233/8811 2v800
- ADC_SCALE_3 = 3, ///< scale3:8910 5v000/8811 5v000
- ADC_SCALE_MAX = 3,
- };
- enum adc_aux_channel
- {
- ADC_CHANNEL_BAT_DET = 0,
- ADC_CHANNEL_1 = 1,
- ADC_CHANNEL_2 = 2,
- ADC_CHANNEL_3 = 3,
- ADC_CHANNEL_4 = 4,
- ADC_CHANNEL_VBATSENSE = 5,
- ADC_CHANNEL_6 = 6, //no use
- ADC_CHANNEL_TYPEC_CC1 = 7,
- ADC_CHANNEL_THM = 8,
- ADC_CHANNEL_TYPEC_CC2 = 9,
- ADC_CHANNEL_10 = 10, //no use
- ADC_CHANNEL_11 = 11, //8850 for bat sense
- ADC_CHANNEL_12 = 12, //no use
- ADC_CHANNEL_DCDC_CALOUT = 13,
- ADC_CHANNEL_VCHGSEN = 14,
- ADC_CHANNEL_VCHG_BG = 15,
- ADC_CHANNEL_PROG2ADC = 16,
- ADC_CHANNEL_17 = 17,
- ADC_CHANNEL_18 = 18,
- ADC_CHANNEL_SDAVDD = 19,
- ADC_CHANNEL_HEADMIC = 20,
- ADC_CHANNEL_LDO_CALOUT0 = 21,
- ADC_CHANNEL_LDO_CALOUT1 = 22,
- ADC_CHANNEL_LDO_CALOUT2 = 23,
- ADC_CHANNEL_24 = 24, //no use
- ADC_CHANNEL_25 = 25, //no use
- ADC_CHANNEL_26 = 26, //no use
- ADC_CHANNEL_27 = 27, //no use
- ADC_CHANNEL_28 = 28, //no use
- ADC_CHANNEL_SELF_OFFSET_MEASURE = 29,
- ADC_CHANNEL_DP = 30,
- ADC_CHANNEL_DM = 31,
- ADC_CHANNEL_MAX = 31,
- };
- /**
- * @brief initialize ADC driver
- * it should be called after ADI bus is initialized.
- */
- void drvAdcInit(void);
- /**
- * @brief return the volt for the given channel in mV.
- *
- * @param channel set the channel to measue
- * @param scale set the scale of the channel
- * @return
- * -1 failure
- * the volt vlaue.
- */
- int32_t drvAdcGetChannelVolt(uint32_t channel, int32_t scale);
- /**
- * @brief return the raw adc value for the given channel.
- *
- * @param channel set the channel to measue
- * @param scale set the scale of the channel
- * @return
- * -1 failure
- * the raw vlaue.
- */
- int32_t drvAdcGetRawValue(uint32_t channel, int32_t scale);
- /**
- * @brief return the volt for the hmic channel in mV.
- *
- * @param scale set the scale of the hmic channel,default use ADC_SCALE_1V250
- * @param con_mode set the scale ratio of the channel,match with rg_aud_hedet_v2ad_scale
- * @return
- * -1 failure
- * the volt vlaue.
- */
- int32_t drvAdcGetHMicChannelVolt(int32_t scale, int32_t con_mode);
- /**
- * @brief return the tep from THM module.
- *
- * -1 failure
- * the volt vlaue.
- */
- #ifdef CONFIG_SOC_8811
- int32_t drvAdcGetTHM(void);
- #endif
- /**
- * @brief return the tep from THM module.
- *
- * the temperature vlaue of ADC_CHANNEL_12
- */
- #if defined(CONFIG_SOC_8850)
- int32_t drvAdcVoltToTemperature(int32_t volt, uint32_t adcChannel);
- #endif
- /**
- * @brief return the volt of auxadc for the given channel in mV.
- *
- * @param channel set the channel to measue
- * @param scale set the scale of the channel
- * @param reg
- * @return
- * -1 failure
- * the volt vlaue.
- */
- int32_t drvAuxAdcGetChannelVolt(uint32_t channel, int32_t scale, uint8_t reg);
- #endif /*__RDA_ADC_H__*/
|