diff options
Diffstat (limited to 'include/linux/stmmac.h')
-rw-r--r-- | include/linux/stmmac.h | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index 0dddc9e42b6b..b69bdb1e08b6 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h | |||
@@ -28,6 +28,51 @@ | |||
28 | 28 | ||
29 | #include <linux/platform_device.h> | 29 | #include <linux/platform_device.h> |
30 | 30 | ||
31 | #define STMMAC_RX_COE_NONE 0 | ||
32 | #define STMMAC_RX_COE_TYPE1 1 | ||
33 | #define STMMAC_RX_COE_TYPE2 2 | ||
34 | |||
35 | /* Define the macros for CSR clock range parameters to be passed by | ||
36 | * platform code. | ||
37 | * This could also be configured at run time using CPU freq framework. */ | ||
38 | |||
39 | /* MDC Clock Selection define*/ | ||
40 | #define STMMAC_CSR_60_100M 0x0 /* MDC = clk_scr_i/42 */ | ||
41 | #define STMMAC_CSR_100_150M 0x1 /* MDC = clk_scr_i/62 */ | ||
42 | #define STMMAC_CSR_20_35M 0x2 /* MDC = clk_scr_i/16 */ | ||
43 | #define STMMAC_CSR_35_60M 0x3 /* MDC = clk_scr_i/26 */ | ||
44 | #define STMMAC_CSR_150_250M 0x4 /* MDC = clk_scr_i/102 */ | ||
45 | #define STMMAC_CSR_250_300M 0x5 /* MDC = clk_scr_i/122 */ | ||
46 | |||
47 | /* The MDC clock could be set higher than the IEEE 802.3 | ||
48 | * specified frequency limit 0f 2.5 MHz, by programming a clock divider | ||
49 | * of value different than the above defined values. The resultant MDIO | ||
50 | * clock frequency of 12.5 MHz is applicable for the interfacing chips | ||
51 | * supporting higher MDC clocks. | ||
52 | * The MDC clock selection macros need to be defined for MDC clock rate | ||
53 | * of 12.5 MHz, corresponding to the following selection. | ||
54 | */ | ||
55 | #define STMMAC_CSR_I_4 0x8 /* clk_csr_i/4 */ | ||
56 | #define STMMAC_CSR_I_6 0x9 /* clk_csr_i/6 */ | ||
57 | #define STMMAC_CSR_I_8 0xA /* clk_csr_i/8 */ | ||
58 | #define STMMAC_CSR_I_10 0xB /* clk_csr_i/10 */ | ||
59 | #define STMMAC_CSR_I_12 0xC /* clk_csr_i/12 */ | ||
60 | #define STMMAC_CSR_I_14 0xD /* clk_csr_i/14 */ | ||
61 | #define STMMAC_CSR_I_16 0xE /* clk_csr_i/16 */ | ||
62 | #define STMMAC_CSR_I_18 0xF /* clk_csr_i/18 */ | ||
63 | |||
64 | /* AXI DMA Burst length suported */ | ||
65 | #define DMA_AXI_BLEN_4 (1 << 1) | ||
66 | #define DMA_AXI_BLEN_8 (1 << 2) | ||
67 | #define DMA_AXI_BLEN_16 (1 << 3) | ||
68 | #define DMA_AXI_BLEN_32 (1 << 4) | ||
69 | #define DMA_AXI_BLEN_64 (1 << 5) | ||
70 | #define DMA_AXI_BLEN_128 (1 << 6) | ||
71 | #define DMA_AXI_BLEN_256 (1 << 7) | ||
72 | #define DMA_AXI_BLEN_ALL (DMA_AXI_BLEN_4 | DMA_AXI_BLEN_8 | DMA_AXI_BLEN_16 \ | ||
73 | | DMA_AXI_BLEN_32 | DMA_AXI_BLEN_64 \ | ||
74 | | DMA_AXI_BLEN_128 | DMA_AXI_BLEN_256) | ||
75 | |||
31 | /* Platfrom data for platform device structure's platform_data field */ | 76 | /* Platfrom data for platform device structure's platform_data field */ |
32 | 77 | ||
33 | struct stmmac_mdio_bus_data { | 78 | struct stmmac_mdio_bus_data { |
@@ -38,16 +83,25 @@ struct stmmac_mdio_bus_data { | |||
38 | int probed_phy_irq; | 83 | int probed_phy_irq; |
39 | }; | 84 | }; |
40 | 85 | ||
86 | struct stmmac_dma_cfg { | ||
87 | int pbl; | ||
88 | int fixed_burst; | ||
89 | int mixed_burst; | ||
90 | int burst_len; | ||
91 | }; | ||
92 | |||
41 | struct plat_stmmacenet_data { | 93 | struct plat_stmmacenet_data { |
94 | char *phy_bus_name; | ||
42 | int bus_id; | 95 | int bus_id; |
43 | int phy_addr; | 96 | int phy_addr; |
44 | int interface; | 97 | int interface; |
45 | struct stmmac_mdio_bus_data *mdio_bus_data; | 98 | struct stmmac_mdio_bus_data *mdio_bus_data; |
46 | int pbl; | 99 | struct stmmac_dma_cfg *dma_cfg; |
47 | int clk_csr; | 100 | int clk_csr; |
48 | int has_gmac; | 101 | int has_gmac; |
49 | int enh_desc; | 102 | int enh_desc; |
50 | int tx_coe; | 103 | int tx_coe; |
104 | int rx_coe; | ||
51 | int bugged_jumbo; | 105 | int bugged_jumbo; |
52 | int pmt; | 106 | int pmt; |
53 | int force_sf_dma_mode; | 107 | int force_sf_dma_mode; |
@@ -56,6 +110,7 @@ struct plat_stmmacenet_data { | |||
56 | int (*init)(struct platform_device *pdev); | 110 | int (*init)(struct platform_device *pdev); |
57 | void (*exit)(struct platform_device *pdev); | 111 | void (*exit)(struct platform_device *pdev); |
58 | void *custom_cfg; | 112 | void *custom_cfg; |
113 | void *custom_data; | ||
59 | void *bsp_priv; | 114 | void *bsp_priv; |
60 | }; | 115 | }; |
61 | #endif | 116 | #endif |