问题标签 [max732x.c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux-device-driver - 带 Linux 设备树的 max732x.c I2C IO 扩展器 + GPIO 键不工作
我正在使用飞思卡尔 MX6 和飞思卡尔 3.10.31 修改内核。我有一个用作 IO 扩展器的 Maxim MAX7325,它的按钮连接到 P0-P2。7325的中断线连接到GPIO_3焊盘(我相信是GPIO1_3 ...)
我在设备树中设置了 7325 和 gpio-keys,如下所示:
和
似乎发生的是当调用 MAX7325 驱动程序的探针时,client->dev.platform_data 为 NULL。正因为如此,当稍后调用 max732x_irq_setup 时,它并没有设置 chip->gpio_chip.to_irq 指针指向 max732x_gpio_to_irq 函数(可能是因为它没有正确的信息来使其工作。)后来,当 gpio_keys尝试配置第一个输入,当它尝试设置中断并且没有设置其他键时失败。
我确实确定使用 P0 映射到 GPIO 240 的 /sys 接口,所以是的,GPIO 242 是我试图设置的 sw2 GPIO-KEY。
我想知道,这个驱动程序不能与设备树一起使用吗?我没有看到它试图获取任何设备树属性,但我查看的其他 IO 扩展器驱动程序也没有,所以我认为 I2C 内核可能正在读取设备树并应该以某种方式从那里填写 platform_data它调用驱动程序的探测函数(?)
我在这方面相当新,所以任何帮助将不胜感激。=)我确实在网上阅读了一些设备树文档,但我认为这是相当具体的事情,我没有正确地做,他们没有涵盖......(?)
我确实在内核中配置了 CONFIG_GPIO_MAX732X_IRQ ......我曾经尝试为 max7325 I2c1 节点设置中断控制器属性,但我不确定是否需要(?)
c - 我添加了一个 MAX7320 i2c 输出芯片。如何让内核为其加载驱动程序?
我在我的 ARM Linux 板上的 i2c 总线 0 上添加了一个 MAX7320 i2c 扩展芯片。
该芯片可以在用户空间使用 和 等命令正常/usr/sbin/i2cset -y 0 0x5d 0x02
工作/usr/sbin/i2cget -y 0 0x5d
。
内核源代码中有一个drivers/gpio/gpio-max732x.c
文件,它被编译到我正在运行的内核中。(我是从源代码构建的。)
我如何告诉内核它应该在“i2c 总线 0,芯片 id 0x5d”上实例化 gpio-max732x 驱动程序?
我需要修改设备树.dts
文件并放入一个新.dtb
文件/boot/dtbs/
吗?
实例化模块的子句是什么gpio-max732x
样的?
PS 我看过https://lkml.org/lkml/2015/1/13/305但我不知道如何获取补丁文件。