This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM6422:icssg 复位引脚

Guru**** 1831610 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1428048/am6422-icssg-reset-pin

器件型号:AM6422

工具与软件:

您好、

目前我们在设计以太网时使用了 ICSSG0、将 PHY 芯片 DP83867的 RESET 引脚连接到 SOC 的 P4引脚。 我们需要在器件树中配置引脚、以实现上电后拉低和拉高的过程。 这可以实现吗? 如果可能、应如何做到这一点?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wanglili、

    我希望您可以向 MDIO devicetre 节点添加一个"RESET-GPIOs"条目。

    如果您使用 AM64x EVM 作为参考点、看起来我们将 GPIO 复位放置在 GPIO 扩展器上、而不是实际的硬件 GPIO 引脚。 我们定义了复位信号、但它实际上似乎并没有在当前 devicetree 文件中使用:

    Linux SDK 10.0、 arch/arm64/boot/dts/ti/k3-am642-evm.dts
    "GPIO_RGMII1_RST"为&exp1 3.
    "GPIO_RGMII2_RST"为&exp1 4.
    但两个 信号似乎都未被使用...

    &main_i2c1 {
            bootph-all;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&main_i2c1_pins_default>;
            clock-frequency = <400000>;
    
            exp1: gpio@22 {
                    bootph-all;
                    compatible = "ti,tca6424";
                    reg = <0x22>;
                    gpio-controller;
                    #gpio-cells = <2>;
                    gpio-line-names = "GPIO_eMMC_RSTn", "CAN_MUX_SEL",
                                      "GPIO_CPSW1_RST", "GPIO_RGMII1_RST",
                                      "GPIO_RGMII2_RST", "GPIO_PCIe_RST_OUT",
                                      "MMC1_SD_EN", "FSI_FET_SEL",
                                      "MCAN0_STB_3V3", "MCAN1_STB_3V3",
                                      "CPSW_FET_SEL", "CPSW_FET2_SEL",
                                      "PRG1_RGMII2_FET_SEL", "TEST_GPIO2",
                                      "GPIO_OLED_RESETn", "VPP_LDO_EN",
                                      "TEST_LED1", "TP92", "TP90", "TP88",
                                      "TP87", "TP86", "TP89", "TP91";
            };
    

    您可以看到一个示例、该示例说明了我希望在具有 CPSW 的 J7器件中如何查看:
    arch/arm64/boot/dts/ti/k3-j784s4-evm-quad-port-eth-exp1.dtso

    &main_cpsw0_mdio {
            pinctrl-names = "default";
            pinctrl-0 = <&mdio0_default_pins>;
            bus_freq = <1000000>;
            reset-gpios = <&exp2 17 GPIO_ACTIVE_LOW>;
    

    下面是 AM335x、SDK 8.2中关于 PRU-ICSS 器件的另一个示例:
    arch/arm/boot/dts/am335x-icev2-prueth.dts

    &pruss_mdio {
            pinctrl-0 = <&pruss_mdio_default>;
            pinctrl-names = "default";
            reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
            reset-delay-us = <2>; /* PHY datasheet states 1uS min */
            status = "okay";
    
            pruss_eth0_phy: ethernet-phy@1 {
                     reg = <1>;
            };
    
            pruss_eth1_phy: ethernet-phy@3 {
                     reg = <3>;
            };
    };
    

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我知道 EVM 上的配置。 如果我 不使用 GPIO 扩展器、能否通过在器件树上直接定义来实现此功能?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wanglili、

    是的、您可以使用实际的 GPIO 引脚作为复位信号、而不是 GPIO 扩展器-我们对上面的 AM335x 器件所做的就是这样。

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我根据上面的 AM335x 器件添加了复位、但当我在运行期间在示波器上对其进行检查时、发现该复位 没有效果。 具体内容如下

    我添加了。 有什么不正确的地方吗?

    net_rst_pin_default:net-rst-pin-default{
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x01c4, PIN_OUTPUT, 7) /* (P4) PRG0_PRU1_GPO5 GPIO1_25 */
    			AM64X_IOPAD(0x0174, PIN_OUTPUT, 7) /* (R3) PRG0_PRU0_GPO5 GPIO1_5 */
    		>;
    	};
    &main_gpio1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&net_rst_pin_default>;
    	status = "okay";
    };
    &icssg0_mdio {
            pinctrl-names = "default";
            pinctrl-0 = <&icssg0_mdio0_pins_default>;
            reset-gpios = <&main_gpio1 25 GPIO_ACTIVE_LOW>,<&main_gpio1 5 GPIO_ACTIVE_LOW>;
            reset-delay-us = <2>; /* PHY datasheet states 1uS min */
            status = "okay";
    
            icssg0_phy1: ethernet-phy@0 {
                    reg = <0>;
                    ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
                    ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
            };
    
            icssg0_phy2: ethernet-phy@1 {
                    reg = <1>;
                    ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
                    ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
            
    				};
    };