summaryrefslogtreecommitdiff
path: root/include/linux/fec.h
blob: 39ba482298e1964715853d9f221d0cd9bdb01657 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* include/linux/fec.h
 *
 * Copyright (c) 2009 Orex Computed Radiography
 * Copyright (C) 2009-2010 Freescale Semiconductor, Inc.
 *   Baruch Siach <baruch@tkos.co.il>
 *
 * Header file for the FEC platform data
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#ifndef __LINUX_FEC_H__
#define __LINUX_FEC_H__

#include <linux/etherdevice.h>
#include <linux/phy.h>

struct fec_platform_data {
	phy_interface_t phy;
	unsigned int phy_mask;
	unsigned char mac[ETH_ALEN];
	int (*init)(void);
	int (*uninit)(void);
	struct regulator *vddio_reg;
};

struct switch_platform_data {
	int	id;
	int     hash_table;
	unsigned int *switch_hw;
	struct fec_platform_data *fec_enet;
	void    (*request_intrs)(struct net_device *dev,
		irqreturn_t (*)(int, void *),
		void *irq_privatedata);
	void    (*set_mii)(struct net_device *dev);
	void    (*get_mac)(struct net_device *dev);
	void    (*enable_phy_intr)(void);
	void    (*disable_phy_intr)(void);
	void    (*phy_ack_intr)(void);
	void    (*localhw_setup)(void);
	void    (*uncache)(unsigned long addr);
	void    (*platform_flush_cache)(void);
};

#endif