写这篇文章的原因很简单,我们要在sdm660平台的项目上,靠ADC口的电压状态来区分同一个项目的不同版本。因为不同版本的PCB对应到我们项目中某个模块的驱动可能用的也不相同,因此这个ADC要求在系统进到kernel之前就要识别到,并且讲当前版本的值传到kernel里。
1、在BOOT.XF.1.4/boot_images/QcomPkg/Include/AdcInputs.h文件中,定义一个ADC的名字
#define ADC_INPUT_AUX_THERM2 "AUX_THERM2"
2、在BOOT.XF.1.4/boot_images/QcomPkg/QcomTestPkg/AdcTest/AdcTest.c中,
static const CHAR8 *vAdcChannels[]这个数组里加上刚才添加的ADC名字:
static const CHAR8 *vAdcChannels[] =
{
…………
+ ADC_INPUT_AUX_THERM2,
};
3、在BOOT.XF.1.4/boot_images/QcomPkg/Sdm660Pkg/Settings/ADC/core/VAdcSettings.c中,
const VAdcChannelConfigType gVAdcChannels[]这个数组里加上该ADC,pin脚的配置信息:
static const AdcMapPtInt32toInt32Type adcMap_NTCG104EF104FB[] =
{
…………
+ /* AUX_THERM2 */
+ {
+ .pszName = ADC_INPUT_AUX_THERM2,
+ .uAdcHardwareChannel = 0x10,
+ .eSettlingDelay = VADC_SETTLING_DELAY_0_US,
+ .eAverageMode = VADC_AVERAGE_1_SAMPLE,
+ .eDecimationRatio = VADC_DECIMATION_RATIO_1024,
+