首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有PTN5110和5.15内核的iMX6UL设备树配置

具有PTN5110和5.15内核的iMX6UL设备树配置
EN

Stack Overflow用户
提问于 2022-10-03 16:28:42
回答 1查看 88关注 0票数 0

相同的硬件,新内核

我们正在尝试更新到新的内核5.15.32 (旧内核4.19.72),但USB芯片(PTN5110)只是不起作用:

当我们使用设备树启动模块tcpci时(请参见下面),我们将得到以下消息:

代码语言:javascript
运行
复制
devel@europa:/usr/lib/modules/5.15.32+g4122737b2fca$ sudo modprobe tcpci
[  139.282440] OF: graph: no port node found in /soc/bus@2100000/i2c@21f8000/ptn5110@50
[  139.332044] OF: graph: no port node found in /soc/bus@2100000/i2c@21f8000/ptn5110@50/connector
[  139.341524] OF: graph: no port node found in /soc/bus@2100000/i2c@21f8000/ptn5110@50/connector

我们确实试图指定港口,但到目前为止运气不佳(没有接缝可以工作,我们已经尝试了几个星期了)。下面的DT在旧内核中运行得很好,而不是新内核。加载模块后,我们可以看到I2C端口上的一些通信,所有的接缝都可以正常工作。一旦我们插入USB连接,内核就会被IRQ请求淹没(或者接缝)。I2C总线充满了数据交换,没有一个控制台对任何击键都有反应。拔出USB连接后,系统再次正常反应。(系统接缝将被完全阻塞)

我们的设备树:

代码语言:javascript
运行
复制
/ {
    regulators {
        compatible = "simple-bus";
        #address-cells = <1>;
        #size-cells = <0>;

        reg_usb_otg1_vbus: regulator@2 {
            compatible = "regulator-fixed";
            reg = <2>;
            regulator-name = "usb_otg1_vbus";
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_usb_otg1_vbus>;
            regulator-min-microvolt = <5000000>;
            regulator-max-microvolt = <5000000>;
            gpio = <&gpio2 8 GPIO_ACTIVE_HIGH>;
            enable-active-high;
            status = "okay";
        };
    };
};

&usbotg1 {
    /*pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_usbotg1>;*/
    dr_mode = "otg";
    status = "okay";
    disable-over-current;
    vbus-supply = <&reg_usb_otg1_vbus>;
};

&i2c4 {
    clock-frequency = <100000>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_i2c4>;
    status = "okay";

    usb_pd: ptn5110@50 {
        compatible = "nxp,ptn5110";
        reg = <0x50>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usb_pd>;
        interrupt-parent = <&gpio2>;
        interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
        wakeup-source;

        usb_con: connector {
            compatible = "usb-c-connector";
            label = "USB-C";
            data-role = "dual";
            power-role = "dual";
            try-power-role = "sink";
            source-pdos = <PDO_FIXED(VSAFE5V, 2000, PDO_FIXED_USB_COMM | PDO_FIXED_DUAL_ROLE)>;
            sink-pdos = <PDO_FIXED(VSAFE5V, 2000, PDO_FIXED_USB_COMM | PDO_FIXED_DUAL_ROLE)
                                     //PDO_FIXED(VSAFE5V, 3000, 0)
                                     //PDO_FIXED(9000, 3000, 0)
                                     PDO_FIXED(12000, 3000, 0)
                                     PDO_FIXED(20000, 3000, 0)>;
                                     //PDO_FIXED(20000, 5000, 0)>;
            op-sink-microwatt = <10000000>;

        };
    };
};

&iomuxc {
    pinctrl_i2c4: i2c4grp {
        fsl,pins = <
            MX6UL_PAD_UART2_TX_DATA__I2C4_SCL   0x4001b8b0
            MX6UL_PAD_UART2_RX_DATA__I2C4_SDA   0x4001b8b0
        >;
    };

    pinctrl_usb_pd: usbpdgrp {
        fsl,pins = <
            MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11    0x0001b020 /* Alert Interrupt */
            MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14      0x0001b020 /* Fault Interrupt */
        >;
    };

    pinctrl_usb_otg1_vbus: usbotg1 {
        fsl,pins = <
            MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08    0x000000b9
            MX6UL_PAD_ENET2_RX_DATA1__USB_OTG1_OC   0x000010b0
        >;
    };
};
EN

回答 1

Stack Overflow用户

发布于 2022-10-20 08:47:32

所以我发现芯片每次插上USB连接都会出故障。(一旦我拔掉USB插头,它就从故障中出来了)

在I2C总线上,我看到内核模块一直试图重置故障标志,但没有成功。

我看到一种重复的模式:

  • 0x50写0x10
  • 0x50读0x00 0x02
  • 0x50写0x10 0x00 0x02

正如我所写的,该芯片在旧内核4.19.72上运行良好,但与新内核5.15.68没有关系。

如果有人能告诉我出了什么问题,我会非常感激的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73938257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档