初级会员
- 积分
- 90
- 金钱
- 90
- 注册时间
- 2013-8-8
- 在线时间
- 10 小时
|
1金钱
本帖最后由 上来下去 于 2020-4-15 22:59 编辑
手册中smsc.c文件的smsc_phy_reset代码与视频教材不一致呢?
视频中没有
- int err,phy_reset;
- int msec = 1;
- struct device_node *np;
- int timeout = 50000;
- if(phydev->addr == 0) /* FEC1 */
- {
- np = of_find_node_by_path("/soc/aips-bus@02100000/ethernet@02188000");
- if(np == NULL)
- {
- return -EINVAL;
- }
- }
- if(phydev->addr == 1) /* FEC2 */
- {
- np = of_find_node_by_path("/soc/aips-bus@02000000/ethernet@020b4000");
- if(np == NULL)
- {
- return -EINVAL;
- }
- }
- err = of_property_read_u32(np, "phy-reset-duration", &msec);
- /* A sane reset duration should not be longer than 1s */
- if (!err && msec > 1000)
- msec = 1;
- phy_reset = of_get_named_gpio(np, "phy-reset-gpios", 0);
- if (!gpio_is_valid(phy_reset))
- return;
- gpio_direction_output(phy_reset, 0);
- gpio_set_value(phy_reset, 0);
- msleep(msec);
- gpio_set_value(phy_reset, 1);
复制代码 另外在编译过程中,出现警告:
- drivers/net/phy/smsc.c: 在函数‘smsc_phy_reset’中:
- drivers/net/phy/smsc.c:92:3: 警告: 在有返回值的的函数中,‘return’不带返回值 [-Wreturn-type]
- return;
- ^
- drivers/net/phy/smsc.c:99:2: 警告: ISO C90 不允许混合使用声明和代码 [-Wdeclaration-after-statement]
- int rc = phy_read(phydev, MII_LAN83C185_SPECIAL_MODES);
- ^
- In file included from drivers/net/phy/smsc.c:26:0:
- include/linux/of_gpio.h:138:2: 警告: 此函数中的‘np’在使用前可能未初始化 [-Wmaybe-uninitialized]
- return of_get_named_gpio_flags(np, propname, index, NULL);
- ^
- drivers/net/phy/smsc.c:66:22: 附注: ‘np’在此声明
- struct device_node *np;
复制代码
|
|