GEMAC set duplex. * @param[in] base GEMAC base address * @param[in] duplex GEMAC duplex mode (Full, Half) */
| 163 | * @param[in] duplex GEMAC duplex mode (Full, Half) |
| 164 | */ |
| 165 | void |
| 166 | gemac_set_duplex(void *base, int duplex) |
| 167 | { |
| 168 | if (duplex == DUPLEX_HALF) { |
| 169 | writel(readl(base + EMAC_TCNTRL_REG) & ~EMAC_TCNTRL_FDEN, base |
| 170 | + EMAC_TCNTRL_REG); |
| 171 | writel(readl(base + EMAC_RCNTRL_REG) | EMAC_RCNTRL_DRT, (base |
| 172 | + EMAC_RCNTRL_REG)); |
| 173 | } else { |
| 174 | writel(readl(base + EMAC_TCNTRL_REG) | EMAC_TCNTRL_FDEN, base |
| 175 | + EMAC_TCNTRL_REG); |
| 176 | writel(readl(base + EMAC_RCNTRL_REG) & ~EMAC_RCNTRL_DRT, (base |
| 177 | + EMAC_RCNTRL_REG)); |
| 178 | } |
| 179 | } |
| 180 | |
| 181 | /* GEMAC set mode. |
| 182 | * @param[in] base GEMAC base address |
no test coverage detected