zoukankan      html  css  js  c++  java
  • 基于android(rk3288)的ADC光敏驱动注意事项

    光敏传感器实际上就是一个adc采集传感器,驱动的作用就是读取adc的值,其中涉及两个方面:

    1、dts设备树对应的配置项

      一般来说,rk中已经封装好了标准adc的dts参数属性,我们要做的就是添加自己的adc通道,并引用标准接口即可,不同平台,标准dts中的adc节点名有所不同,其配置属性基本一样。

      例如:

       1)adc: adc@ff100000 {

            compatible = "rockchip,saradc";

            ......

            };

       2)saradc: saradc@ff100000 {

            compatible = "rockchip,saradc";

            ......

            };

      添加自己的dts通道:(在系统对应的dts中添加)

         adc_name{                                                           //自定义节点名

          compatible = "adc_name";                        //匹配驱动的属性字符串,可以与节点名不同

          io-channels = <&saradc(&adc) 0>;      //设定我们需要读取的adc通道,参考硬件原理图,其中&表示应用系统封装的标准dts配置,需要系统标准的adc节点名,保证与本系统的一致,这里我们设定的为adc通道0

          status = "okay";                                        //设备节点状态

          };

    2、驱动里面adc通道的获取和数据上报

      同样,在系统内核中已经帮我们封装好了adc通道获取和读取的函数接口,我们只需要配置参数即可,这里主要注意adc通道的获取与读取其中的数据

      系统将adc统一封装在  struct  iio_channel  结构体中,我们需要对其初始化和调用

      1)adc_init(struct platform_device *pdev, struct struct iio_channel *chan)      //其中参数分别表示驱动注册的平台设备和定义的adc通道结构体

        {

          chan = iio_channel_get(&pdev->dev, NULL);   //获取adc通道

        }

      2)adc_read(struct struct iio_channel *chan)                 //其中参数为上面的初始化得到的adc通道结构体chan

        {

          int ret;

          ret = iio_read_channel_raw(chan, &val);          //读取adc通道的原始值,后面根据实际需求进行处理

        }

      上报采用系统的接口:

        input_report_abs(input, ABS_MISC, value);           //参数说明,分别为注册的设备,上报事件类型,上报数据值

          -->input_event();                                               //上报event事件

  • 相关阅读:
    通用权限的思路。带有数据库关系图
    三层架构之我见 —— 不同于您见过的三层架构。
    n级分类的数据结构
    JS经典源码:通用JavaScript脚本函数库
    SQL 复习笔记
    ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI。
    DataSet导出到Excel比较完整的解决方案(二)服务器端生成文件(downmoon)
    DataSet导出到Excel比较完整的解决方案(一)客户端生成文件(downmoon)
    Squid详细配置实用文档
    Awstats分析nginx日志
  • 原文地址:https://www.cnblogs.com/goahead--linux/p/13121187.html
Copyright © 2011-2022 走看看