[RK3399][Android7.1] 调试笔记ADC驱动配置及使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33487044/article/details/85931636
平台 内核版本 安卓版本
RK3399 Linux4.4 Android7.1

结构体

目录:kernel/include/linux/iio/consumer.h
iio_channel结构体
在这里插入图片描述

iio_dev结构体
该结构体主要用于描述 IO 口所属的设备,其具体定义如下
目录:kernel/include/linux/iio/iio.h
在这里插入图片描述
在这里插入图片描述

iio_chan_spec结构体:
在这里插入图片描述

在这里插入图片描述

配置步骤

配置`DTS``节点

目录:kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi
在这里插入图片描述

添加通道定义,并将其 status改为 "okay"即可
kernel/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-common.dtsi

在这里插入图片描述

在这里插入图片描述

在驱动文件中匹配 DTS 节点

目录:kernel/drivers/input/keyboard/rk_keys.c
在这里插入图片描述
将该结构体数组填充到要使用 ADCplatform_driver中。
在这里插入图片描述

获取 AD 通道

通过probe 函数传进来的参数pdev 获取IIO 通道结构体
probe函数中调用的rk_keys_parse_dt
在这里插入图片描述

读取 AD采集到的原始数据

probe 函数中会创建工作队列:
INIT_DELAYED_WORK(&ddata->adc_poll_work, adc_key_poll);
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33487044/article/details/85931636