18ee2bf9aSSriramakrishnan /* 28ee2bf9aSSriramakrishnan * TI DaVinci EMAC platform support 38ee2bf9aSSriramakrishnan * 48ee2bf9aSSriramakrishnan * Author: Kevin Hilman, Deep Root Systems, LLC 58ee2bf9aSSriramakrishnan * 68ee2bf9aSSriramakrishnan * 2007 (c) Deep Root Systems, LLC. This file is licensed under 78ee2bf9aSSriramakrishnan * the terms of the GNU General Public License version 2. This program 88ee2bf9aSSriramakrishnan * is licensed "as is" without any warranty of any kind, whether express 98ee2bf9aSSriramakrishnan * or implied. 108ee2bf9aSSriramakrishnan */ 118ee2bf9aSSriramakrishnan #ifndef _LINUX_DAVINCI_EMAC_H 128ee2bf9aSSriramakrishnan #define _LINUX_DAVINCI_EMAC_H 138ee2bf9aSSriramakrishnan 148ee2bf9aSSriramakrishnan #include <linux/if_ether.h> 15bec3c11bSAndrew Lunn #include <linux/nvmem-consumer.h> 168ee2bf9aSSriramakrishnan 17f20136ebSCyril Chemparathy struct mdio_platform_data { 18f20136ebSCyril Chemparathy unsigned long bus_freq; 19f20136ebSCyril Chemparathy }; 20f20136ebSCyril Chemparathy 218ee2bf9aSSriramakrishnan struct emac_platform_data { 228ee2bf9aSSriramakrishnan char mac_addr[ETH_ALEN]; 238ee2bf9aSSriramakrishnan u32 ctrl_reg_offset; 248ee2bf9aSSriramakrishnan u32 ctrl_mod_reg_offset; 258ee2bf9aSSriramakrishnan u32 ctrl_ram_offset; 26ad021ae8SSriramakrishnan u32 hw_ram_addr; 278ee2bf9aSSriramakrishnan u32 ctrl_ram_size; 285d69e007SCyril Chemparathy 295d69e007SCyril Chemparathy /* 305d69e007SCyril Chemparathy * phy_id can be one of the following: 315d69e007SCyril Chemparathy * - NULL : use the first phy on the bus, 325d69e007SCyril Chemparathy * - "" : force to 100/full, no mdio control 335d69e007SCyril Chemparathy * - "<bus>:<addr>" : use the specified bus and phy 345d69e007SCyril Chemparathy */ 355d69e007SCyril Chemparathy const char *phy_id; 365d69e007SCyril Chemparathy 378ee2bf9aSSriramakrishnan u8 rmii_en; 388ee2bf9aSSriramakrishnan u8 version; 396a1fef6dSSriram bool no_bd_ram; 4001a9af36SSriramakrishnan void (*interrupt_enable) (void); 4101a9af36SSriramakrishnan void (*interrupt_disable) (void); 428ee2bf9aSSriramakrishnan }; 438ee2bf9aSSriramakrishnan 448ee2bf9aSSriramakrishnan enum { 458ee2bf9aSSriramakrishnan EMAC_VERSION_1, /* DM644x */ 468ee2bf9aSSriramakrishnan EMAC_VERSION_2, /* DM646x */ 478ee2bf9aSSriramakrishnan }; 488ee2bf9aSSriramakrishnan 498ee2bf9aSSriramakrishnan #endif 50