1 | /* |
2 | * TI DaVinci EMAC platform support |
3 | * |
4 | * Author: Kevin Hilman, Deep Root Systems, LLC |
5 | * |
6 | * 2007 (c) Deep Root Systems, LLC. This file is licensed under |
7 | * the terms of the GNU General Public License version 2. This program |
8 | * is licensed "as is" without any warranty of any kind, whether express |
9 | * or implied. |
10 | */ |
11 | #ifndef _LINUX_DAVINCI_EMAC_H |
12 | #define _LINUX_DAVINCI_EMAC_H |
13 | |
14 | #include <linux/if_ether.h> |
15 | #include <linux/nvmem-consumer.h> |
16 | |
17 | struct mdio_platform_data { |
18 | unsigned long bus_freq; |
19 | }; |
20 | |
21 | struct emac_platform_data { |
22 | char mac_addr[ETH_ALEN]; |
23 | u32 ctrl_reg_offset; |
24 | u32 ctrl_mod_reg_offset; |
25 | u32 ctrl_ram_offset; |
26 | u32 hw_ram_addr; |
27 | u32 ctrl_ram_size; |
28 | |
29 | /* |
30 | * phy_id can be one of the following: |
31 | * - NULL : use the first phy on the bus, |
32 | * - "" : force to 100/full, no mdio control |
33 | * - "<bus>:<addr>" : use the specified bus and phy |
34 | */ |
35 | const char *phy_id; |
36 | |
37 | u8 rmii_en; |
38 | u8 version; |
39 | bool no_bd_ram; |
40 | void (*interrupt_enable) (void); |
41 | void (*interrupt_disable) (void); |
42 | }; |
43 | |
44 | enum { |
45 | EMAC_VERSION_1, /* DM644x */ |
46 | EMAC_VERSION_2, /* DM646x */ |
47 | }; |
48 | |
49 | #endif |
50 | |