diff options
Diffstat (limited to 'arch/arm/mach-lpc32xx/common.c')
| -rw-r--r-- | arch/arm/mach-lpc32xx/common.c | 24 | 
1 files changed, 20 insertions, 4 deletions
diff --git a/arch/arm/mach-lpc32xx/common.c b/arch/arm/mach-lpc32xx/common.c index 5b71b4fab2cd..304ea61a0716 100644 --- a/arch/arm/mach-lpc32xx/common.c +++ b/arch/arm/mach-lpc32xx/common.c @@ -8,12 +8,12 @@   */  #include <linux/init.h> +#include <linux/soc/nxp/lpc32xx-misc.h>  #include <asm/mach/map.h>  #include <asm/system_info.h> -#include <mach/hardware.h> -#include <mach/platform.h> +#include "lpc32xx.h"  #include "common.h"  /* @@ -32,7 +32,7 @@ void lpc32xx_get_uid(u32 devid[4])   */  #define LPC32XX_IRAM_BANK_SIZE SZ_128K  static u32 iram_size; -u32 lpc32xx_return_iram_size(void) +u32 lpc32xx_return_iram(void __iomem **mapbase, dma_addr_t *dmaaddr)  {  	if (iram_size == 0) {  		u32 savedval1, savedval2; @@ -53,10 +53,26 @@ u32 lpc32xx_return_iram_size(void)  		} else  			iram_size = LPC32XX_IRAM_BANK_SIZE * 2;  	} +	if (dmaaddr) +		*dmaaddr = LPC32XX_IRAM_BASE; +	if (mapbase) +		*mapbase = io_p2v(LPC32XX_IRAM_BASE);  	return iram_size;  } -EXPORT_SYMBOL_GPL(lpc32xx_return_iram_size); +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 = {  	{  |