CPU平台:
Hi3559AV100
Linux内核版本:
Linux 4.9
简介:
- 本驱动程序基于Linux标准IIO子系统编写,本文档不对IIO子系统使用方法进行描述,请自行研究;
- 本驱动程序支持SoC/SHUB ADC,对应修改设备树节点信息即可;
- 支持基于sysfs的单次读,不支持EVENT/BUFFER特性;
- 支持AD最大量程配置;
- 不支持ADC精度配置(默认精度为10-bit)。
参考文档:
《Hi3559A╱C V100 ultra-HD Mobile Camera SoC 用户指南》13.11 LSADC
设备树节点(以SHUB ADC为例):
shub_adc@180a0000 {
compatible = "hi-adc";
reg = <0x0 0x180a0000 0x0 0x34>;
interrupts = <0 206 4>;
};
Linux内核配置:
1. 将ad-hisi.c复制到drivers/iio/adc目录下;
2. 修改drivers/iio/adc/Kconfig:
diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
index 99c0514..63b466e 100644
--- a/drivers/iio/adc/Kconfig
+++ b/drivers/iio/adc/Kconfig
@@ -584,5 +584,10 @@
The driver can also be build as a module. If so, the module will be called
xilinx-xadc.
+
+config HISI_ADC
+ tristate "Hi3559A ADC driver"
+ help
+ Say yes here to have support for the Hi3559A ADC.
endmenu
3. 修改drivers/iio/adc/Makefile:
diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile
index 7a40c04..1af57f4 100644
--- a/drivers/iio/adc/Makefile
+++ b/drivers/iio/adc/Makefile
@@ -55,3 +55,4 @@
obj-$(CONFIG_VIPERBOARD_ADC) += viperboard_adc.o
xilinx-xadc-y := xilinx-xadc-core.o xilinx-xadc-events.o
obj-$(CONFIG_XILINX_XADC) += xilinx-xadc.o
+obj-$(CONFIG_HISI_ADC) += ad-hisi.o
4. menuconfig增加HISI_ADC支持:
Device Drivers > Industrial I/O support > Analog to digital converters
<*> Hi3559A ADC driver
评论0