diff options
Diffstat (limited to 'arch/mips/alchemy/common/platform.c')
| -rw-r--r-- | arch/mips/alchemy/common/platform.c | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c index 9837a134a6d6..d77a64f4c78b 100644 --- a/arch/mips/alchemy/common/platform.c +++ b/arch/mips/alchemy/common/platform.c @@ -11,6 +11,7 @@   * warranty of any kind, whether express or implied.   */ +#include <linux/clk.h>  #include <linux/dma-mapping.h>  #include <linux/etherdevice.h>  #include <linux/init.h> @@ -99,10 +100,20 @@ static struct platform_device au1xx0_uart_device = {  static void __init alchemy_setup_uarts(int ctype)  { -	unsigned int uartclk = get_au1x00_uart_baud_base() * 16; +	long uartclk;  	int s = sizeof(struct plat_serial8250_port);  	int c = alchemy_get_uarts(ctype);  	struct plat_serial8250_port *ports; +	struct clk *clk = clk_get(NULL, ALCHEMY_PERIPH_CLK); + +	if (IS_ERR(clk)) +		return; +	if (clk_prepare_enable(clk)) { +		clk_put(clk); +		return; +	} +	uartclk = clk_get_rate(clk); +	clk_put(clk);  	ports = kzalloc(s * (c + 1), GFP_KERNEL);  	if (!ports) { @@ -420,7 +431,7 @@ static void __init alchemy_setup_macs(int ctype)  		memcpy(au1xxx_eth1_platform_data.mac, ethaddr, 6);  	/* Register second MAC if enabled in pinfunc */ -	if (!(au_readl(SYS_PINFUNC) & (u32)SYS_PF_NI2)) { +	if (!(alchemy_rdsys(AU1000_SYS_PINFUNC) & SYS_PF_NI2)) {  		ret = platform_device_register(&au1xxx_eth1_device);  		if (ret)  			printk(KERN_INFO "Alchemy: failed to register MAC1\n");  |