中断参数:设备树配置?

我目前正在编写一个设备树节点,以使用连接到从设备地址 0x4d 的I2C配置 SCISIS752双通道UART 。我也使用1.8432MHz的时钟。 SCISIS752 的IRQ引脚连接到IO扩展器GPIO,在本例中为GPIO 456。 我正在使用yocto创建Linux发行版。我的Linux内核版本 4.18.25-yocto-standard  我的DTS配置:

/dts-v1/;

#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
#include "am335x-boneblack-common.dtsi"

/ {
model = "TI AM335x BeagleBone Black";
compatible = "ti,am335x-bone-black","ti,am335x-bone",am33xx";
};

&am33xx_pinmux {
    pinctrl-0 = <&gpio_pins>;
    i2c1_pins_default: i2c1_pins_default {
    pinctrl-single,pins = <
        AM33XX_IOPAD(0x984,PIN_INPUT_PULLUP | MUX_MODE3) /* (D15) uart1_txd.I2C1_SCL */
        AM33XX_IOPAD(0x980,PIN_INPUT_PULLUP | MUX_MODE3) /* (D16) uart1_rxd.I2C1_SDA */
    >;};

&i2c1 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c1_pins_default>;
    status = "okay";
    clock-frequency = <400000>;

pcf8574a_38: pcf8574a@38 {
    compatible = "nxp,pcf8574a";
    reg = <0x38>;
    gpio-controller;            
    #gpio-cells = <2>;         
    };
sc16is752@4d {
    compatible = "nxp,sc16is752";
    reg = <0x4d>; 
    clocks = <&sc16is752_clk>;
    interrupt-parent = <&gpio3>;
    interrupts = <7 2>; 
    gpio-controller;
    #gpio-cells = <2>;

    sc16is752_clk: sc16is752_clk {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <1843200>;
    };};
};

为了使此配置有效,我对设置interrupt-parent和interrupts的值感到困惑。

xiaoyuwuxin22 回答:中断参数:设备树配置?

我看不到您的整个设备树,也不知道您正在运行的是什么内核...所以我无法指出您的确切问题出在哪里。但是我可以提供一些有关故障排除的指导...

首先,看来您已经从Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt中的内核文档中复制了节点。这是一个参考点,但这只是为了说明。

关于设备树没有什么神奇的东西。它由内核中的驱动程序解析以描述电气配置。这意味着,无论何时您不确定某物如何工作,您所需要做的就是查看驱动程序以了解其解析方式。

我碰巧上有4.19.0源代码。我在drivers/tty/serial/sc16is7xx.c中找到了您的NXP驱动程序。我通过兼容列表确认它支持nxp,sc16is752

从输入驱动程序的探针sc16is7xx_i2c_probe()开始,您将立即看到正在通过i2c_client结构传递IRQ值,然后通过调用devm_request_irq()进行设置在sc16is7xx_probe()中。这意味着该驱动程序中不处理中断DT属性。它们被传递给它。

然后,您需要阅读:https://www.kernel.org/doc/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt,以了解中断控制器的工作方式。您的&gpio3是否符合要求?是否配置为中断控制器?它甚至存在吗?

本文链接:https://www.f2er.com/3158743.html

大家都在问