Blame view

include/linux/stmmac.h 3.88 KB
3c9732c06   Giuseppe CAVALLARO   stmmac: add the n...
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
  /*******************************************************************************
  
    Header file for stmmac platform data
  
    Copyright (C) 2009  STMicroelectronics Ltd
  
    This program is free software; you can redistribute it and/or modify it
    under the terms and conditions of the GNU General Public License,
    version 2, as published by the Free Software Foundation.
  
    This program is distributed in the hope it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
    more details.
  
    You should have received a copy of the GNU General Public License along with
    this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
  
    The full GNU General Public License is included in this distribution in
    the file called "COPYING".
  
    Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
  *******************************************************************************/
  
  #ifndef __STMMAC_PLATFORM_DATA
  #define __STMMAC_PLATFORM_DATA
57a503c61   Viresh KUMAR   net/stmmac: Move ...
28
  #include <linux/platform_device.h>
55f9a4d6f   Deepak SIKRI   stmmac: Define CS...
29
30
31
  #define STMMAC_RX_COE_NONE	0
  #define STMMAC_RX_COE_TYPE1	1
  #define STMMAC_RX_COE_TYPE2	2
faeae3fa0   Deepak SIKRI   stmmac: Define MD...
32
33
34
35
36
  /* Define the macros for CSR clock range parameters to be passed by
   * platform code.
   * This could also be configured at run time using CPU freq framework. */
  
  /* MDC Clock Selection define*/
18f05d64e   Giuseppe CAVALLARO   stmmac: extend CS...
37
38
39
40
41
42
  #define	STMMAC_CSR_60_100M	0x0	/* MDC = clk_scr_i/42 */
  #define	STMMAC_CSR_100_150M	0x1	/* MDC = clk_scr_i/62 */
  #define	STMMAC_CSR_20_35M	0x2	/* MDC = clk_scr_i/16 */
  #define	STMMAC_CSR_35_60M	0x3	/* MDC = clk_scr_i/26 */
  #define	STMMAC_CSR_150_250M	0x4	/* MDC = clk_scr_i/102 */
  #define	STMMAC_CSR_250_300M	0x5	/* MDC = clk_scr_i/122 */
faeae3fa0   Deepak SIKRI   stmmac: Define MD...
43

18f05d64e   Giuseppe CAVALLARO   stmmac: extend CS...
44
  /* The MDC clock could be set higher than the IEEE 802.3
faeae3fa0   Deepak SIKRI   stmmac: Define MD...
45
46
47
48
49
50
   * specified frequency limit 0f 2.5 MHz, by programming a clock divider
   * of value different than the above defined values. The resultant MDIO
   * clock frequency of 12.5 MHz is applicable for the interfacing chips
   * supporting higher MDC clocks.
   * The MDC clock selection macros need to be defined for MDC clock rate
   * of 12.5 MHz, corresponding to the following selection.
18f05d64e   Giuseppe CAVALLARO   stmmac: extend CS...
51
52
53
54
55
56
57
58
59
   */
  #define STMMAC_CSR_I_4		0x8	/* clk_csr_i/4 */
  #define STMMAC_CSR_I_6		0x9	/* clk_csr_i/6 */
  #define STMMAC_CSR_I_8		0xA	/* clk_csr_i/8 */
  #define STMMAC_CSR_I_10		0xB	/* clk_csr_i/10 */
  #define STMMAC_CSR_I_12		0xC	/* clk_csr_i/12 */
  #define STMMAC_CSR_I_14		0xD	/* clk_csr_i/14 */
  #define STMMAC_CSR_I_16		0xE	/* clk_csr_i/16 */
  #define STMMAC_CSR_I_18		0xF	/* clk_csr_i/18 */
faeae3fa0   Deepak SIKRI   stmmac: Define MD...
60

02582e9bc   Masanari Iida   treewide: fix typ...
61
  /* AXI DMA Burst length supported */
8327eb65e   Deepak SIKRI   stmmac: re-work t...
62
63
64
65
66
67
68
69
70
71
  #define DMA_AXI_BLEN_4		(1 << 1)
  #define DMA_AXI_BLEN_8		(1 << 2)
  #define DMA_AXI_BLEN_16		(1 << 3)
  #define DMA_AXI_BLEN_32		(1 << 4)
  #define DMA_AXI_BLEN_64		(1 << 5)
  #define DMA_AXI_BLEN_128	(1 << 6)
  #define DMA_AXI_BLEN_256	(1 << 7)
  #define DMA_AXI_BLEN_ALL (DMA_AXI_BLEN_4 | DMA_AXI_BLEN_8 | DMA_AXI_BLEN_16 \
  			| DMA_AXI_BLEN_32 | DMA_AXI_BLEN_64 \
  			| DMA_AXI_BLEN_128 | DMA_AXI_BLEN_256)
36bcfe7d7   Giuseppe CAVALLARO   stmmac: unify MAC...
72
73
74
  /* Platfrom data for platform device structure's platform_data field */
  
  struct stmmac_mdio_bus_data {
36bcfe7d7   Giuseppe CAVALLARO   stmmac: unify MAC...
75
76
77
78
  	int (*phy_reset)(void *priv);
  	unsigned int phy_mask;
  	int *irqs;
  	int probed_phy_irq;
0e0764715   Srinivas Kandagatla   dt:net:stmmac: Ad...
79
80
81
82
  #ifdef CONFIG_OF
  	int reset_gpio, active_low;
  	u32 delays[3];
  #endif
36bcfe7d7   Giuseppe CAVALLARO   stmmac: unify MAC...
83
  };
3c9732c06   Giuseppe CAVALLARO   stmmac: add the n...
84

8327eb65e   Deepak SIKRI   stmmac: re-work t...
85
86
87
  struct stmmac_dma_cfg {
  	int pbl;
  	int fixed_burst;
b9cde0a8b   Giuseppe CAVALLARO   stmmac: add mixed...
88
  	int mixed_burst;
8327eb65e   Deepak SIKRI   stmmac: re-work t...
89
90
  	int burst_len;
  };
3c9732c06   Giuseppe CAVALLARO   stmmac: add the n...
91
  struct plat_stmmacenet_data {
f142af2e2   Srinivas Kandagatla   stmmac: Allow stm...
92
  	char *phy_bus_name;
3c9732c06   Giuseppe CAVALLARO   stmmac: add the n...
93
  	int bus_id;
36bcfe7d7   Giuseppe CAVALLARO   stmmac: unify MAC...
94
95
96
  	int phy_addr;
  	int interface;
  	struct stmmac_mdio_bus_data *mdio_bus_data;
8327eb65e   Deepak SIKRI   stmmac: re-work t...
97
  	struct stmmac_dma_cfg *dma_cfg;
dfb8fb96a   Giuseppe CAVALLARO   stmmac: add CSR C...
98
  	int clk_csr;
3c9732c06   Giuseppe CAVALLARO   stmmac: add the n...
99
  	int has_gmac;
e326e8503   Giuseppe CAVALLARO   stmmac: new descr...
100
  	int enh_desc;
ebbb293f8   Giuseppe CAVALLARO   stmmac: consolida...
101
  	int tx_coe;
55f9a4d6f   Deepak SIKRI   stmmac: Define CS...
102
  	int rx_coe;
ebbb293f8   Giuseppe CAVALLARO   stmmac: consolida...
103
  	int bugged_jumbo;
543876c92   Giuseppe Cavallaro   stmmac: review th...
104
  	int pmt;
61b8013a1   Srinivas Kandagatla   stmmac: Allow SOC...
105
  	int force_sf_dma_mode;
e2a240c7d   Sonic Zhang   driver:net:stmmac...
106
  	int force_thresh_dma_mode;
62a2ab935   Giuseppe CAVALLARO   stmmac: add Rx wa...
107
  	int riwt_off;
3c9732c06   Giuseppe CAVALLARO   stmmac: add the n...
108
  	void (*fix_mac_speed)(void *priv, unsigned int speed);
ad01b7d48   Giuseppe CAVALLARO   stmmac: make ioad...
109
  	void (*bus_setup)(void __iomem *ioaddr);
293bb1c41   Giuseppe CAVALLARO   stmmac: add init/...
110
111
112
  	int (*init)(struct platform_device *pdev);
  	void (*exit)(struct platform_device *pdev);
  	void *custom_cfg;
3256251f9   Francesco Virlinzi   stmmac: use custo...
113
  	void *custom_data;
3c9732c06   Giuseppe CAVALLARO   stmmac: add the n...
114
115
  	void *bsp_priv;
  };
3c9732c06   Giuseppe CAVALLARO   stmmac: add the n...
116
  #endif