ADC功能配置

2、功能配置

2.1、瑞芯微平台

读取按键ADC值

按住对应的ADC按键,执行以下命令即可

$ cat /sys/bus/iio/devices/iio\:device0/in_voltage*_raw

DTS配置

&adc_key {
    up-key {                           	// DTS节点名,不重复即可,无要求
            linux,code = <184>;			// 按键事件号,参考按键类型定义头文件填写
            label = "F14";				// 按键类型,参考按键类型定义头文件填写
            rockchip,adc_value = <839>;	// 按键adc值
    };
};

驱动目录

$ 

按键映射

  • 按键映射文件

    $ vim device/rockchip/common/rk29-keypad.kl
    	key 184   F14
    

    系统目录:/system/usr/keylayout/rk29-keypad.kl

    格式解析:

    ​ 184对应dts的linux,code
    ​ F14对应dts的label

2.2、全志平台

内核配置

$ cd lichee/linux-3.10
$ make ARCH=arm menuconfig
    Device Drivers 
        Input device support
            Generic input layer
                Keyboards
                    softwinnner KEY BOARD support

读取按键ADC值

DTS配置

$ vim lichee/linux-3.10/arch/arm/boot/dts/sun8iw11p1.dtsi
/ {
       keyboard0:keyboard{
            compatible = "allwinner,keyboard_2000mv";
            reg = <0x0 0x01c24400 0x0 0x400>;
            interrupts = <GIC_SPI 31 IRQ_TYPE_NONE>;
            status = "okay";
            key_cnt = <3>;				// 配置按键数量
            key1 = <430 183>;			// ADC电压为430mv,按键编号为183
            key2 = <760 184>;
            key3 = <1020 185>;
        };
};

驱动目录

按键映射

$ vim android/device/softwinner/a40-p1/configs/sunxi-keyboard.kl
    key 183   KEY_F13                 
    key 184   KEY_F14                 
    key 185   KEY_F15

2.3、Amlogic平台

驱动目录

common/drivers/amlogic/input/keyboard/adc_keypad.c

DTS配置

$ vim common/arch/arm/boot/dts/amlogic/g12b_a311d_w400.dts
/ {
    adc_keypad {
                compatible = "amlogic, adc_keypad";
                status = "okay";
                key_name = "vol-", "vol+", "home";
                key_num = <1>;
                io-channels = <&saradc SARADC_CH2>;
                io-channel-names = "key-chan-2";
                key_chan = <SARADC_CH2 SARADC_CH2 SARADC_CH2>;
                key_code = <115 114 102>;
                key_val = <0 266 389>; //val=voltage/1800mV*1023
                key_tolerance = <40 40 40>;
        };
};
  • 参数说明

    key_name		按键功能名
    key_num			按键数量
    key_chan		ADC检测通道号
    key_code		按键编码号
    key_val			ADC电压按键值
    key_tolerance	ADC值的误差范围
    

读取按键ADC值

按住对应ADC通道按键后,执行以下指令即可

$ cat /sys/bus/iio/devices/iio\:device0/in_voltage*_input

按键映射

  • 按键映射文件系统路径

    /vendor/usr/keylayout/Vendor_0001_Product_0001.kl

  • 按键映射文件源码路径

    A311D路径:device/amlogic/w400/files/Vendor_0001_Product_0001.kl

    S905D3路径:device/amlogic//u202/files/Vendor_0001_Product_0001.kl

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux驱动专栏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值