RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试

CPU:RK3288

Kernel:4.4

Systerm:linux(buidroot)

IC:ti-adc128s052

 

iiO子系统全称是 Industrial I/O subsystem(工业 I/O 子系统),此子系统的目的在于填补那些分类时处在hwmon(硬件监视器)和输入子系统之间的设备类型。在某些情况下,iio和hwmon、Input之间的相当大的重叠。

 

关于IIO子系统的详细介绍,在wiki里写得很详细,

网址如下:https://wiki.analog.com/software/linux/docs/iio/iio

用谷歌浏览器打开,翻译为中文查看更方便。

 

现在我们来看看这款模数转换器的具体情况:

RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试_第1张图片

 

RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试_第2张图片

 

 

 

RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试_第3张图片

 

 

 

引脚的配置:

RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试_第4张图片

 

 

引脚的功能:

RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试_第5张图片

RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试_第6张图片

 

 

详细设计程序:

RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试_第7张图片

 

下面我们来看看驱动的移植过程:

描述

 

Linux驱动程序支持ADC128S052系列ADC。Linux驱动程序支持通过SPI总线进行通信以及与IIO子系统的接口。

 

Source Files

drivers/iio/adc/ti-adc128s052.c

Linux Device Tree Documenation

Documentation/devicetree/bindings/iio/adc/ti-adc128s052.txt

 

Menuconfig Location

Symbol: TI_ADC128S052 [=y]
Type  : tristate
Prompt: Texas Instruments ADC128S052/ADC122S021
  Location:
    -> Device Drivers
      -> Industrial I/O support (IIO [=y])
        -> Analog to digital converters
  Defined at drivers/iio/adc/Kconfig:315
  Depends on: IIO [=y] && SPI [=y]

 

 

设备树配置如下:

&spi0{
		status = "okay";
		
	adc@0{
    status = "okay";
    compatible = "ti,adc128s052";
    reg = <0>;
    vref-supply = <&vcc_io>;
    spi-max-frequency = <10000000>;
	};
};

 

 

 

编译烧录后开机,输入以下命令可以看到ADC所有通道的电压值:

 

[root@rk3288:/sys/devices/platform/ff110000.spi/spi_master/spi0/spi0.0/iio:device0]# cat in_voltage0_raw 
45
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(ADC驱动)