.. | .. |
---|
23 | 23 | return reg & GENMASK(7, 0); |
---|
24 | 24 | } |
---|
25 | 25 | |
---|
| 26 | +#ifdef CONFIG_STMMAC_FULL |
---|
26 | 27 | static void stmmac_dwmac_mode_quirk(struct stmmac_priv *priv) |
---|
27 | 28 | { |
---|
28 | 29 | struct mac_device_info *mac = priv->hw; |
---|
.. | .. |
---|
68 | 69 | stmmac_dwmac_mode_quirk(priv); |
---|
69 | 70 | return 0; |
---|
70 | 71 | } |
---|
| 72 | +#endif |
---|
71 | 73 | |
---|
72 | 74 | static const struct stmmac_hwif_entry { |
---|
73 | 75 | bool gmac; |
---|
.. | .. |
---|
78 | 80 | const void *desc; |
---|
79 | 81 | const void *dma; |
---|
80 | 82 | const void *mac; |
---|
| 83 | +#ifdef CONFIG_STMMAC_PTP |
---|
81 | 84 | const void *hwtimestamp; |
---|
| 85 | +#endif |
---|
82 | 86 | const void *mode; |
---|
83 | 87 | const void *tc; |
---|
84 | 88 | int (*setup)(struct stmmac_priv *priv); |
---|
85 | 89 | int (*quirks)(struct stmmac_priv *priv); |
---|
86 | 90 | } stmmac_hw[] = { |
---|
87 | 91 | /* NOTE: New HW versions shall go to the end of this table */ |
---|
| 92 | +#ifdef CONFIG_STMMAC_FULL |
---|
88 | 93 | { |
---|
89 | 94 | .gmac = false, |
---|
90 | 95 | .gmac4 = false, |
---|
.. | .. |
---|
97 | 102 | .desc = NULL, |
---|
98 | 103 | .dma = &dwmac100_dma_ops, |
---|
99 | 104 | .mac = &dwmac100_ops, |
---|
| 105 | +#ifdef CONFIG_STMMAC_PTP |
---|
100 | 106 | .hwtimestamp = &stmmac_ptp, |
---|
| 107 | +#endif |
---|
101 | 108 | .mode = NULL, |
---|
102 | 109 | .tc = NULL, |
---|
103 | 110 | .setup = dwmac100_setup, |
---|
.. | .. |
---|
114 | 121 | .desc = NULL, |
---|
115 | 122 | .dma = &dwmac1000_dma_ops, |
---|
116 | 123 | .mac = &dwmac1000_ops, |
---|
| 124 | +#ifdef CONFIG_STMMAC_PTP |
---|
117 | 125 | .hwtimestamp = &stmmac_ptp, |
---|
| 126 | +#endif |
---|
118 | 127 | .mode = NULL, |
---|
119 | 128 | .tc = NULL, |
---|
120 | 129 | .setup = dwmac1000_setup, |
---|
.. | .. |
---|
131 | 140 | .desc = &dwmac4_desc_ops, |
---|
132 | 141 | .dma = &dwmac4_dma_ops, |
---|
133 | 142 | .mac = &dwmac4_ops, |
---|
| 143 | +#ifdef CONFIG_STMMAC_PTP |
---|
134 | 144 | .hwtimestamp = &stmmac_ptp, |
---|
| 145 | +#endif |
---|
135 | 146 | .mode = NULL, |
---|
136 | 147 | .tc = NULL, |
---|
137 | 148 | .setup = dwmac4_setup, |
---|
.. | .. |
---|
148 | 159 | .desc = &dwmac4_desc_ops, |
---|
149 | 160 | .dma = &dwmac4_dma_ops, |
---|
150 | 161 | .mac = &dwmac410_ops, |
---|
| 162 | +#ifdef CONFIG_STMMAC_PTP |
---|
151 | 163 | .hwtimestamp = &stmmac_ptp, |
---|
| 164 | +#endif |
---|
152 | 165 | .mode = &dwmac4_ring_mode_ops, |
---|
153 | 166 | .tc = NULL, |
---|
154 | 167 | .setup = dwmac4_setup, |
---|
155 | 168 | .quirks = NULL, |
---|
156 | | - }, { |
---|
| 169 | + }, |
---|
| 170 | +#endif /* CONFIG_STMMAC_FULL */ |
---|
| 171 | + { |
---|
157 | 172 | .gmac = false, |
---|
158 | 173 | .gmac4 = true, |
---|
159 | 174 | .xgmac = false, |
---|
.. | .. |
---|
165 | 180 | .desc = &dwmac4_desc_ops, |
---|
166 | 181 | .dma = &dwmac410_dma_ops, |
---|
167 | 182 | .mac = &dwmac410_ops, |
---|
| 183 | +#ifdef CONFIG_STMMAC_PTP |
---|
168 | 184 | .hwtimestamp = &stmmac_ptp, |
---|
| 185 | +#endif |
---|
169 | 186 | .mode = &dwmac4_ring_mode_ops, |
---|
170 | 187 | .tc = NULL, |
---|
171 | 188 | .setup = dwmac4_setup, |
---|
172 | 189 | .quirks = NULL, |
---|
173 | | - }, { |
---|
| 190 | + }, |
---|
| 191 | +#ifdef CONFIG_STMMAC_FULL |
---|
| 192 | + { |
---|
174 | 193 | .gmac = false, |
---|
175 | 194 | .gmac4 = true, |
---|
176 | 195 | .xgmac = false, |
---|
.. | .. |
---|
182 | 201 | .desc = &dwmac4_desc_ops, |
---|
183 | 202 | .dma = &dwmac410_dma_ops, |
---|
184 | 203 | .mac = &dwmac510_ops, |
---|
| 204 | +#ifdef CONFIG_STMMAC_PTP |
---|
185 | 205 | .hwtimestamp = &stmmac_ptp, |
---|
| 206 | +#endif |
---|
186 | 207 | .mode = &dwmac4_ring_mode_ops, |
---|
187 | 208 | .tc = &dwmac510_tc_ops, |
---|
188 | 209 | .setup = dwmac4_setup, |
---|
.. | .. |
---|
199 | 220 | .desc = &dwxgmac210_desc_ops, |
---|
200 | 221 | .dma = &dwxgmac210_dma_ops, |
---|
201 | 222 | .mac = &dwxgmac210_ops, |
---|
| 223 | +#ifdef CONFIG_STMMAC_PTP |
---|
202 | 224 | .hwtimestamp = &stmmac_ptp, |
---|
| 225 | +#endif |
---|
203 | 226 | .mode = NULL, |
---|
204 | 227 | .tc = NULL, |
---|
205 | 228 | .setup = dwxgmac2_setup, |
---|
206 | 229 | .quirks = NULL, |
---|
207 | 230 | }, |
---|
| 231 | +#endif |
---|
208 | 232 | }; |
---|
209 | 233 | |
---|
210 | 234 | int stmmac_hwif_init(struct stmmac_priv *priv) |
---|
.. | .. |
---|
264 | 288 | mac->desc = mac->desc ? : entry->desc; |
---|
265 | 289 | mac->dma = mac->dma ? : entry->dma; |
---|
266 | 290 | mac->mac = mac->mac ? : entry->mac; |
---|
| 291 | +#ifdef CONFIG_STMMAC_PTP |
---|
267 | 292 | mac->ptp = mac->ptp ? : entry->hwtimestamp; |
---|
| 293 | +#endif |
---|
268 | 294 | mac->mode = mac->mode ? : entry->mode; |
---|
269 | 295 | mac->tc = mac->tc ? : entry->tc; |
---|
270 | 296 | |
---|