linux调用USB转i2c,在 USB I2C桥上,Linux设备树( DTS ): I2C设备_linux-kernel_开发99编程知识库...

在USB設備枚舉探測hid-cp2112驅動程序時,它甚至不嘗試在設備樹中查找自身。 我已經將以下修補程序創建到 hid-cp2112.c,它將找到的cp2112設備鏈接到devie樹中的/i2c@cp2112 節點。 ( 當然,只有在USB上有一個cp2112晶元的情況下才適用。)diff --git a/drivers/hid/hid-cp2112.c b/drivers/hid/hid-cp2112.c

index 2bd7f97..fa88590 100644

--- a/drivers/hid/hid-cp2112.c

+++ b/drivers/hid/hid-cp2112.c

@@ -31,6 +31,8 @@

#include

#include

#include

+#include

+#include

#include"hid-ids.h"

enum {

@@ -1014,6 +1016,7 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)

dev->adap.algo = &smbus_algorithm;

dev->adap.algo_data = dev;

dev->adap.dev.parent = &hdev->dev;

+ dev->adap.dev.of_node = of_find_node_by_path("/i2c@cp2112");

snprintf(dev->adap.name, sizeof(dev->adap.name),

"CP2112 SMBus Bridge on hiddev%d", hdev->minor);

init_waitqueue_head(&dev->wait);

@@ -1029,6 +1032,8 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)

hid_dbg(hdev,"adapter registeredn");

+ of_i2c_register_devices(&dev->adap);

+

dev->gc.label ="cp2112_gpio";

dev->gc.direction_input = cp2112_gpio_direction_input;

dev->gc.direction_output = cp2112_gpio_direction_output;

觸摸控制器的. dts 文件中的條目如下所示:i2c@cp2112 {

#address-cells = <1>;

#size-cells = <0>;

st1332: touchscreen@55 {

compatible ="sitronix,st1232";

reg = <0x55>;

interrupt-parent = ;

interrupts = <189 IRQ_TYPE_EDGE_FALLING>;

};

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值