ar71xx: add support for Fritz!Box 4020
[openwrt/staging/mkresin.git] / target / linux / ar71xx / files / arch / mips / ath79 / dev-eth.h
1 /*
2 * Atheros AR71xx SoC device definitions
3 *
4 * Copyright (C) 2008-2012 Gabor Juhos <juhosg@openwrt.org>
5 * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published
9 * by the Free Software Foundation.
10 */
11
12 #ifndef _ATH79_DEV_ETH_H
13 #define _ATH79_DEV_ETH_H
14
15 #include <asm/mach-ath79/ag71xx_platform.h>
16
17 struct platform_device;
18
19 extern unsigned char ath79_mac_base[] __initdata;
20 void ath79_parse_ascii_mac(char *mac_str, u8 *mac);
21 void ath79_extract_mac_reverse(u8 *ptr, u8 *out);
22 void ath79_init_mac(unsigned char *dst, const unsigned char *src,
23 int offset);
24 void ath79_init_local_mac(unsigned char *dst, const unsigned char *src);
25
26 struct ath79_eth_pll_data {
27 u32 pll_10;
28 u32 pll_100;
29 u32 pll_1000;
30 };
31
32 extern struct ath79_eth_pll_data ath79_eth0_pll_data;
33 extern struct ath79_eth_pll_data ath79_eth1_pll_data;
34
35 extern struct ag71xx_platform_data ath79_eth0_data;
36 extern struct ag71xx_platform_data ath79_eth1_data;
37 extern struct platform_device ath79_eth0_device;
38 extern struct platform_device ath79_eth1_device;
39 void ath79_register_eth(unsigned int id);
40
41 extern struct ag71xx_switch_platform_data ath79_switch_data;
42
43 extern struct ag71xx_mdio_platform_data ath79_mdio0_data;
44 extern struct ag71xx_mdio_platform_data ath79_mdio1_data;
45 extern struct platform_device ath79_mdio0_device;
46 extern struct platform_device ath79_mdio1_device;
47 void ath79_register_mdio(unsigned int id, u32 phy_mask);
48
49 void ath79_setup_ar933x_phy4_switch(bool mac, bool mdio);
50 void ath79_setup_ar934x_eth_cfg(u32 mask);
51 void ath79_setup_ar934x_eth_rx_delay(unsigned int rxd, unsigned int rxdv);
52 void ath79_setup_qca955x_eth_cfg(u32 mask);
53 void ath79_setup_qca956x_eth_cfg(u32 mask);
54
55 #endif /* _ATH79_DEV_ETH_H */