一、打开内核配置
make menuconfig
1、→ Device Drivers
打开工业IO支持
<*> Industrial I/O support
2、→ Device Drivers → Industrial I/O support
选中Enable buffer support within IIO及Industrial I/O buffering based on kfifo
3、→ Device Drivers → Industrial I/O support → Analog to digital converters
使能Nuvoton NUC980 Normal ADC driver
4、如需在内核中使能ADC通道,选择需要的通道,在设备树中配置ADC通道,这一步可跳过
5、在设备树中使能ADC
参照芯片手册,980的ADC共有8路,分别PB0-PB7
在DTSI文件中默认只打开一路的ADC,按需要打开其它的ADC
设备树IO解释:
1 0x0 0x8 0
1对应的PB,0x0对应的是0Pin,0x8对应MFP8特殊功能寄存器8
DTS文件的nadc,status更改为okay
6、make生成新内核文件及设备树文件,更新SD卡内核及设备树
二、检查ADC设备加载成功
cd sys/bus/iio/devices/iio:device0
in_voltage*_raw分别对就不同ADC通道
将4路通道接地或接电源,cat in_voltage4_raw,分别打印AD值为0和4095,ADC测试验证成功