Blame view

include/linux/fs_enet_pd.h 3.31 KB
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  /*
   * Platform information definitions for the
   * universal Freescale Ethernet driver.
   *
   * Copyright (c) 2003 Intracom S.A. 
   *  by Pantelis Antoniou <panto@intracom.gr>
   *
   * 2005 (c) MontaVista Software, Inc. 
   * Vitaly Bordug <vbordug@ru.mvista.com>
   *
   * This file is licensed under the terms of the GNU General Public License 
   * version 2. This program is licensed "as is" without any warranty of any 
   * kind, whether express or implied.
   */
  
  #ifndef FS_ENET_PD_H
  #define FS_ENET_PD_H
b7336d3d8   Scott Wood   fs_enet: Include ...
18
  #include <linux/string.h>
aa73832c5   Grant Likely   net: Rework fs_en...
19
  #include <linux/of_mdio.h>
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
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
47
48
49
50
51
52
53
54
55
56
57
  #include <asm/types.h>
  
  #define FS_ENET_NAME	"fs_enet"
  
  enum fs_id {
  	fsid_fec1,
  	fsid_fec2,
  	fsid_fcc1,
  	fsid_fcc2,
  	fsid_fcc3,
  	fsid_scc1,
  	fsid_scc2,
  	fsid_scc3,
  	fsid_scc4,
  };
  
  #define FS_MAX_INDEX	9
  
  static inline int fs_get_fec_index(enum fs_id id)
  {
  	if (id >= fsid_fec1 && id <= fsid_fec2)
  		return id - fsid_fec1;
  	return -1;
  }
  
  static inline int fs_get_fcc_index(enum fs_id id)
  {
  	if (id >= fsid_fcc1 && id <= fsid_fcc3)
  		return id - fsid_fcc1;
  	return -1;
  }
  
  static inline int fs_get_scc_index(enum fs_id id)
  {
  	if (id >= fsid_scc1 && id <= fsid_scc4)
  		return id - fsid_scc1;
  	return -1;
  }
611a15afc   Vitaly Bordug   POWERPC: Bring th...
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  static inline int fs_fec_index2id(int index)
  {
  	int id = fsid_fec1 + index - 1;
  	if (id >= fsid_fec1 && id <= fsid_fec2)
  		return id;
  	return FS_MAX_INDEX;
  		}
  
  static inline int fs_fcc_index2id(int index)
  {
  	int id = fsid_fcc1 + index - 1;
  	if (id >= fsid_fcc1 && id <= fsid_fcc3)
  		return id;
  	return FS_MAX_INDEX;
  }
  
  static inline int fs_scc_index2id(int index)
  {
  	int id = fsid_scc1 + index - 1;
  	if (id >= fsid_scc1 && id <= fsid_scc4)
  		return id;
  	return FS_MAX_INDEX;
  }
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
81
82
83
84
85
86
87
88
89
90
91
92
93
  enum fs_mii_method {
  	fsmii_fixed,
  	fsmii_fec,
  	fsmii_bitbang,
  };
  
  enum fs_ioport {
  	fsiop_porta,
  	fsiop_portb,
  	fsiop_portc,
  	fsiop_portd,
  	fsiop_porte,
  };
2ca2d5e84   Vitaly Bordug   [PATCH] ppc32: bo...
94
95
96
97
98
99
100
101
102
  struct fs_mii_bit {
  	u32 offset;
  	u8 bit;
  	u8 polarity;
  };
  struct fs_mii_bb_platform_info {
  	struct fs_mii_bit 	mdio_dir;
  	struct fs_mii_bit 	mdio_dat;
  	struct fs_mii_bit	mdc_dat;
2ca2d5e84   Vitaly Bordug   [PATCH] ppc32: bo...
103
104
  	int delay;	/* delay in us         */
  	int irq[32]; 	/* irqs per phy's */
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
105
106
107
  };
  
  struct fs_platform_info {
d3465c921   Vitaly Bordug   POWERPC: overhaul...
108
109
  
  	void(*init_ioports)(struct fs_platform_info *);
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
110
111
  	/* device specific information */
  	int fs_no;		/* controller index            */
611a15afc   Vitaly Bordug   POWERPC: Bring th...
112
  	char fs_type[4];	/* controller type             */
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
113
114
115
  
  	u32 cp_page;		/* CPM page */
  	u32 cp_block;		/* CPM sblock */
976de6a8c   Scott Wood   fs_enet: Be an of...
116
  	u32 cp_command;		/* CPM page/sblock/mcn */
d3465c921   Vitaly Bordug   POWERPC: overhaul...
117

48257c4f1   Pantelis Antoniou   Add fs_enet ether...
118
  	u32 clk_trx;		/* some stuff for pins & mux configuration*/
d3465c921   Vitaly Bordug   POWERPC: overhaul...
119
120
  	u32 clk_rx;
  	u32 clk_tx;
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
121
122
  	u32 clk_route;
  	u32 clk_mask;
d3465c921   Vitaly Bordug   POWERPC: overhaul...
123

48257c4f1   Pantelis Antoniou   Add fs_enet ether...
124
125
126
127
128
  	u32 mem_offset;
  	u32 dpram_offset;
  	u32 fcc_regs_c;
  	
  	u32 device_flags;
aa73832c5   Grant Likely   net: Rework fs_en...
129
  	struct device_node *phy_node;
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
130
131
132
133
134
135
136
137
138
  	const struct fs_mii_bus_info *bus_info;
  
  	int rx_ring, tx_ring;	/* number of buffers on rx     */
  	__u8 macaddr[6];	/* mac address                 */
  	int rx_copybreak;	/* limit we copy small frames  */
  	int use_napi;		/* use NAPI                    */
  	int napi_weight;	/* NAPI weight                 */
  
  	int use_rmii;		/* use RMII mode 	       */
2ca2d5e84   Vitaly Bordug   [PATCH] ppc32: bo...
139
140
141
142
143
  	int has_phy;            /* if the network is phy container as well...*/
  };
  struct fs_mii_fec_platform_info {
  	u32 irq[32];
  	u32 mii_speed;
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
144
  };
611a15afc   Vitaly Bordug   POWERPC: Bring th...
145
146
147
148
149
150
151
152
153
154
155
  
  static inline int fs_get_id(struct fs_platform_info *fpi)
  {
  	if(strstr(fpi->fs_type, "SCC"))
  		return fs_scc_index2id(fpi->fs_no);
  	if(strstr(fpi->fs_type, "FCC"))
  		return fs_fcc_index2id(fpi->fs_no);
  	if(strstr(fpi->fs_type, "FEC"))
  		return fs_fec_index2id(fpi->fs_no);
  	return fpi->fs_no;
  }
48257c4f1   Pantelis Antoniou   Add fs_enet ether...
156
  #endif