全志主线内核lradc 按键的一种调试方法

4 篇文章 1 订阅
3 篇文章 1 订阅

通过dev_info打印出电压的值

通过修改 /drivers/input/keyboard/sun4i-lradc-keys.c
实现在dmesg内打印lradc检测到的电压

From 7d2532e1274f75a9d157cbe0e8a4cee3c7760db4 Mon Sep 17 00:00:00 2001
From: handsomeyingyan <handsomeyingyan@github.com>
Date: Mon, 10 May 2021 11:12:20 +0800
Subject: [PATCH] debug : display voltage in sun4i-lradc

---
 drivers/input/keyboard/sun4i-lradc-keys.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/input/keyboard/sun4i-lradc-keys.c b/drivers/input/keyboard/sun4i-lradc-keys.c
index 4a796bed4..3e24dad3c 100755
--- a/drivers/input/keyboard/sun4i-lradc-keys.c
+++ b/drivers/input/keyboard/sun4i-lradc-keys.c
@@ -91,6 +91,9 @@ struct sun4i_lradc_data {
 	u32 vref;
 };
 
+// hack: just for testing
+static struct device *lradc_dev;
+
 static irqreturn_t sun4i_lradc_irq(int irq, void *dev_id)
 {
 	struct sun4i_lradc_data *lradc = dev_id;
@@ -111,7 +114,10 @@ static irqreturn_t sun4i_lradc_irq(int irq, void *dev_id)
 	if ((ints & CHAN0_KEYDOWN_IRQ) && lradc->chan0_keycode == 0) {
 		val = readl(lradc->base + LRADC_DATA0) & 0x3f;
 		voltage = val * lradc->vref / 63;
-
+		
+		// debug hack : display voltage in dmesg
+		dev_info(lradc_dev, "Debug: a %u V button pressed\n", voltage);
+		
 		for (i = 0; i < lradc->chan0_map_count; i++) {
 			diff = abs(lradc->chan0_map[i].voltage - voltage);
 			if (diff < closest) {
@@ -228,6 +234,9 @@ static int sun4i_lradc_probe(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	int i;
 	int error;
+	
+	// hack : just for testing
+	lradc_dev = &pdev->dev;
 
 	lradc = devm_kzalloc(dev, sizeof(struct sun4i_lradc_data), GFP_KERNEL);
 	if (!lradc)
-- 
2.31.1
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值