net: lpc-enet: move phy setup into platform code
[sfrench/cifs-2.6.git] / arch / arm / mach-lpc32xx / common.c
index f648324d5fb4b5d2c7d55d6271f3628c26577f2b..a475339333c13b1ca2b2ad5cdd09d060cc85a404 100644 (file)
@@ -63,6 +63,18 @@ u32 lpc32xx_return_iram(void __iomem **mapbase, dma_addr_t *dmaaddr)
 }
 EXPORT_SYMBOL_GPL(lpc32xx_return_iram);
 
+void lpc32xx_set_phy_interface_mode(phy_interface_t mode)
+{
+       u32 tmp = __raw_readl(LPC32XX_CLKPWR_MACCLK_CTRL);
+       tmp &= ~LPC32XX_CLKPWR_MACCTRL_PINS_MSK;
+       if (mode == PHY_INTERFACE_MODE_MII)
+               tmp |= LPC32XX_CLKPWR_MACCTRL_USE_MII_PINS;
+       else
+               tmp |= LPC32XX_CLKPWR_MACCTRL_USE_RMII_PINS;
+       __raw_writel(tmp, LPC32XX_CLKPWR_MACCLK_CTRL);
+}
+EXPORT_SYMBOL_GPL(lpc32xx_set_phy_interface_mode);
+
 static struct map_desc lpc32xx_io_desc[] __initdata = {
        {
                .virtual        = (unsigned long)IO_ADDRESS(LPC32XX_AHB0_START),