主题中讨论的其他器件:DP83TG720S-Q1
您好,
TI 能否为我们提供 DP83TC812S 驱动程序? 我们的 SDK 版本是 ti-processor-sdk-linux-adas-j784s4-evm-09_00_01_03
谢谢!
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.
您好,
TI 能否为我们提供 DP83TC812S 驱动程序? 我们的 SDK 版本是 ti-processor-sdk-linux-adas-j784s4-evm-09_00_01_03
谢谢!
您好、Yao:
https://www.ti.com/tool/ETHERNET-SW#downloads
在这里、您可以找到我们的 以太网 PHY Linux 驱动程序和工具、包括 DP83TC812的驱动程序。
此致、
阿瓦塔
我使用 https://git.ti.com/gitweb?p=ti-analogue-linux-kernel/analogue-linux.git;a=blob;f=drivers/net/phy/dp83tc812.c;h=0c594375f188d40299603628a0636947cfea35bf;hb=f973f3deb81b1f44aa4c33b275a342e28fc982fd 中的 dp83tc812.c 文件
它显示构建错误:
make[1]: Leaving directory '/home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/board-support/linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8' make -j 16 -C /home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/board-support/linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8 ARCH=arm64 CROSS_COMPILE=/home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- Image make[1]: Entering directory '/home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/board-support/linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8' CALL scripts/checksyscalls.sh CC drivers/net/phy/dp83tc812.o drivers/net/phy/dp83tc812.c:524:18: error: ‘struct phy_driver’ has no member named ‘ack_interrupt’; did you mean ‘handle_interrupt’? 524 | .ack_interrupt = dp83812_ack_interrupt, \ | ^~~~~~~~~~~~~ drivers/net/phy/dp83tc812.c:534:9: note: in expansion of macro ‘DP83812_PHY_DRIVER’ 534 | DP83812_PHY_DRIVER(DP83TC812_CS1_0_PHY_ID, "TI DP83TC812CS1.0"), | ^~~~~~~~~~~~~~~~~~ drivers/net/phy/dp83tc812.c:524:18: error: ‘struct phy_driver’ has no member named ‘ack_interrupt’; did you mean ‘handle_interrupt’? 524 | .ack_interrupt = dp83812_ack_interrupt, \ | ^~~~~~~~~~~~~ drivers/net/phy/dp83tc812.c:535:9: note: in expansion of macro ‘DP83812_PHY_DRIVER’ 535 | DP83812_PHY_DRIVER(DP83TC812_CS2_0_PHY_ID, "TI DP83TC812CS2.0"), | ^~~~~~~~~~~~~~~~~~ drivers/net/phy/dp83tc812.c:524:18: error: ‘struct phy_driver’ has no member named ‘ack_interrupt’; did you mean ‘handle_interrupt’? 524 | .ack_interrupt = dp83812_ack_interrupt, \ | ^~~~~~~~~~~~~ drivers/net/phy/dp83tc812.c:536:9: note: in expansion of macro ‘DP83812_PHY_DRIVER’ 536 | DP83812_PHY_DRIVER(DP83TC813_CS2_0_PHY_ID, "TI DP83TC813CS2.0"), | ^~~~~~~~~~~~~~~~~~ drivers/net/phy/dp83tc812.c:524:18: error: ‘struct phy_driver’ has no member named ‘ack_interrupt’; did you mean ‘handle_interrupt’? 524 | .ack_interrupt = dp83812_ack_interrupt, \ | ^~~~~~~~~~~~~ drivers/net/phy/dp83tc812.c:537:9: note: in expansion of macro ‘DP83812_PHY_DRIVER’ 537 | DP83812_PHY_DRIVER(DP83TC814_CS2_0_PHY_ID, "TI DP83TC814CS2.0"), | ^~~~~~~~~~~~~~~~~~ make[5]: *** [scripts/Makefile.build:250: drivers/net/phy/dp83tc812.o] Error 1 make[4]: *** [scripts/Makefile.build:502: drivers/net/phy] Error 2 make[3]: *** [scripts/Makefile.build:502: drivers/net] Error 2 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [scripts/Makefile.build:502: drivers] Error 2 make[1]: *** [Makefile:2012: .] Error 2 make[1]: Leaving directory '/home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/board-support/linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8' make: *** [makerules/Makefile_linux:7: linux] Error 2
此驱动程序有一个明显的错误,即缺少"phydev->priv = dp83720;":
static int dp83812_probe(struct phy_device *phydev) { struct dp83812_private *dp83812; int ret; dp83812 = devm_kzalloc(&phydev->mdio.dev, sizeof(*dp83812), GFP_KERNEL); if (!dp83812) return -ENOMEM; phydev->priv = dp83720; //lack of this, it will case coredump. ret = dp83812_read_straps(phydev); if (ret) return ret; switch (phydev->phy_id) { case DP83TC812_CS1_0_PHY_ID: dp83812->chip = DP83812_CS1; break; case DP83TC812_CS2_0_PHY_ID: dp83812->chip = DP83812_CS2; break; case DP83TC813_CS2_0_PHY_ID: dp83812->chip = DP83813_CS2; break; case DP83TC814_CS2_0_PHY_ID: dp83812->chip = DP83814_CS2; break; default: return -EINVAL; }; /* vikram : above code added to switch between different phy ids */ return dp83812_config_init(phydev); }
1.在我的 SDK 中、'ack_interrupt'不存在、构建失败、所以我将其删除、打开'handle_interrupt = dp83812_handle_interrupt'。 我可以这么做吗?
2.有了最新的驱动程序,phy 运行良好,您能提供'DP.83TG720S-Q1'驱动程序吗?
我发现问题,这里是一个新的驱动程序,我们已经测试可在内核5.10上运行。 [/报价]非常感谢您的支持。
您好、Zheng、
1.是的,你可以这样做。
2. e2e.ti.com/.../4786.dp83tg720.c
这是适用于 UCD3138系列器件的 DP83TG720S-Q1