| .. | .. |
|---|
| 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 | |
|---|