xref: /openbmc/linux/include/linux/davinci_emac.h (revision 19e99de9)
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