.. | .. |
---|
2711 | 2711 | } |
---|
2712 | 2712 | EXPORT_SYMBOL(dwmac_rk_get_phy_interface); |
---|
2713 | 2713 | |
---|
| 2714 | +static unsigned char macaddr[6]; |
---|
| 2715 | +extern ssize_t at24_mac_read(unsigned char* addr); |
---|
2714 | 2716 | static void rk_get_eth_addr(void *priv, unsigned char *addr) |
---|
2715 | 2717 | { |
---|
2716 | 2718 | struct rk_priv_data *bsp_priv = priv; |
---|
2717 | 2719 | struct device *dev = &bsp_priv->pdev->dev; |
---|
2718 | | - unsigned char ethaddr[ETH_ALEN * MAX_ETH] = {0}; |
---|
2719 | | - int ret, id = bsp_priv->bus_id; |
---|
| 2720 | + int i; |
---|
2720 | 2721 | |
---|
| 2722 | +#if 0 |
---|
2721 | 2723 | if (is_valid_ether_addr(addr)) |
---|
2722 | 2724 | goto out; |
---|
2723 | 2725 | |
---|
.. | .. |
---|
2747 | 2749 | } else { |
---|
2748 | 2750 | memcpy(addr, ðaddr[id * ETH_ALEN], ETH_ALEN); |
---|
2749 | 2751 | } |
---|
| 2752 | +#endif |
---|
| 2753 | + |
---|
| 2754 | + #if 1 |
---|
| 2755 | + if (at24_mac_read(macaddr) > 0) { |
---|
| 2756 | + printk("ben %s: at24_mac_read Success!! \n", __func__); |
---|
| 2757 | + memcpy(addr, macaddr, 6); |
---|
| 2758 | + printk("Read the Ethernet MAC address from :"); |
---|
| 2759 | + for (i = 0; i < 5; i++) |
---|
| 2760 | + printk("%2.2x:", addr[i]); |
---|
| 2761 | + |
---|
| 2762 | + printk("%2.2x\n", addr[i]); |
---|
| 2763 | + } else { |
---|
| 2764 | + printk("ben %s: at24_mac_read Failed!! \n", __func__); |
---|
| 2765 | + goto out; |
---|
| 2766 | + } |
---|
| 2767 | + #endif |
---|
2750 | 2768 | |
---|
2751 | 2769 | out: |
---|
2752 | 2770 | dev_err(dev, "%s: mac address: %pM\n", __func__, addr); |
---|
.. | .. |
---|
2920 | 2938 | .of_match_table = rk_gmac_dwmac_match, |
---|
2921 | 2939 | }, |
---|
2922 | 2940 | }; |
---|
2923 | | -module_platform_driver(rk_gmac_dwmac_driver); |
---|
| 2941 | +module_platform_driver1(rk_gmac_dwmac_driver); |
---|
2924 | 2942 | |
---|
2925 | 2943 | MODULE_AUTHOR("Chen-Zhi (Roger Chen) <roger.chen@rock-chips.com>"); |
---|
2926 | 2944 | MODULE_DESCRIPTION("Rockchip RK3288 DWMAC specific glue layer"); |
---|
.. | .. |
---|
2353 | 2353 | */ |
---|
2354 | 2354 | static void stmmac_check_ether_addr(struct stmmac_priv *priv) |
---|
2355 | 2355 | { |
---|
2356 | | - if (!is_valid_ether_addr(priv->dev->dev_addr)) { |
---|
| 2356 | +// if (!is_valid_ether_addr(priv->dev->dev_addr)) { |
---|
| 2357 | + if(1) { |
---|
2357 | 2358 | stmmac_get_umac_addr(priv, priv->hw, priv->dev->dev_addr, 0); |
---|
2358 | 2359 | if (likely(priv->plat->get_eth_addr)) |
---|
2359 | 2360 | priv->plat->get_eth_addr(priv->plat->bsp_priv, |
---|
.. | .. |
---|
5089 | 5090 | /*switch to extension page31*/ |
---|
5090 | 5091 | phy_write(phydev, 31, 0xd04); |
---|
5091 | 5092 | |
---|
5092 | | - //phy_write(phydev, 0x10, 0x6d60); /*led1-green led2-yellow */ |
---|
5093 | | - phy_write(phydev, 0x10, 0xc160); /*led1-green led2-yellow */ |
---|
5094 | | - phy_write(phydev, 0x11, 0x8); |
---|
| 5093 | + phy_write(phydev, 0x10, 0x6d20); /*led1-green led2-yellow */ |
---|
| 5094 | + //phy_write(phydev, 0x10, 0xc160); /*led1-green led2-yellow */ |
---|
| 5095 | + //phy_write(phydev, 0x11, 0x8); |
---|
| 5096 | + val = phy_read(phydev, 0x10); |
---|
| 5097 | + printk("%s in 0x10 val=0x%04x\n", __func__, val); |
---|
5095 | 5098 | |
---|
5096 | 5099 | /*switch back to page0*/ |
---|
5097 | 5100 | phy_write(phydev,31,0x0); |
---|
.. | .. |
---|
272 | 272 | } \ |
---|
273 | 273 | module_exit(__driver##_exit); |
---|
274 | 274 | |
---|
275 | | - |
---|
| 275 | +#define module_driver1(__driver, __register, __unregister, ...) \ |
---|
| 276 | +static int __init __driver##_init(void) \ |
---|
| 277 | +{ \ |
---|
| 278 | + return __register(&(__driver) , ##__VA_ARGS__); \ |
---|
| 279 | +} \ |
---|
| 280 | +arch_initcall(__driver##_init); \ |
---|
| 281 | +static void __exit __driver##_exit(void) \ |
---|
| 282 | +{ \ |
---|
| 283 | + __unregister(&(__driver) , ##__VA_ARGS__); \ |
---|
| 284 | +} \ |
---|
| 285 | +module_exit(__driver##_exit) |
---|
276 | 286 | |
---|
277 | 287 | #define module_driver2(__driver, __register, __unregister, ...) \ |
---|
278 | 288 | static int __init __driver##_init(void) \ |
---|
.. | .. |
---|
256 | 256 | module_driver(__platform_driver, platform_driver_register, \ |
---|
257 | 257 | platform_driver_unregister) |
---|
258 | 258 | |
---|
| 259 | + |
---|
| 260 | +#define module_platform_driver1(__platform_driver) \ |
---|
| 261 | + module_driver1(__platform_driver, platform_driver_register, \ |
---|
| 262 | + platform_driver_unregister) |
---|
| 263 | + |
---|
259 | 264 | /* builtin_platform_driver() - Helper macro for builtin drivers that |
---|
260 | 265 | * don't do anything special in driver init. This eliminates some |
---|
261 | 266 | * boilerplate. Each driver may only use this macro once, and |
---|