主题中讨论的其他器件:AM6442、 TPS65220
工具与软件:
尊敬的社区:
我正在使用一个基于 TI AM6442 SOC 的定制板、并连接了两个 PHY DP83822。 对于电源管理、我们使用 PMIC TI TPS65220。
每个 PHY 的复位(nRESET)路由到 AM6442上的 GPIO (1.8V 外部上拉电阻)。 PHY 的复位在启动时为高电平(=无复位)、并且 AVD 在引导期间发生变化(LDO4时初始电压为2.5V -> PMIC 配置后为1.8V)、因此我们必须在更改电源后复位 PHY、以便完全重新初始化、包括自举引脚。
我查看了一些示例和文档(ethernet-phy.yaml)、但我无法 触发复位、最好是通过 sysfs。
我的设备树节点如下所示:
mdio1_pins_default: mdio1-default-pins { bootph-all; pinctrl-single,pins = < AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */ AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */ >; }; cpsw1_rst_default: cpsw1_rst_default_pins { pinctrl-single,pins = < AM64X_IOPAD (0xBC, PIN_OUTPUT, 7) /* (U8) PRU0_GP_1 / GPIO0_46 */ >; }; cpsw2_rst_default: cpsw2_rst_default_pins { pinctrl-single,pins = < AM64X_IOPAD (0xE8, PIN_OUTPUT, 7) /* (U9) PRU0_GPO_2 / GPIO0_57*/ >; }; &cpsw3g_mdio { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&mdio1_pins_default>, <&cpsw1_rst_default>, <&cpsw2_rst_default>; cpsw3g_phy0: ethernet-phy@0 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0>; reset-names = "phy"; reset-gpios = <&main_gpio0 46 GPIO_ACTIVE_LOW>; reset-assert-us = <1000>; reset-deassert-us = <2000>; rx-internal-delay-ps = <1>; tx-internal-delay-ps = <1>; }; cpsw3g_phy1: ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <1>; reset-names = "phy"; reset-gpios = <&main_gpio0 57 GPIO_ACTIVE_LOW>; reset-assert-us = <1000>; reset-deassert-us = <2000>; rx-internal-delay-ps = <1>; tx-internal-delay-ps = <1>; }; };
那么、我的问题是、如何触发 PHY 的完全复位?
感谢任何帮助。
Br Benjamin