diff options
| author | Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com> | 2012-07-09 08:52:43 +0000 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-09-01 14:58:10 +0200 | 
| commit | 99b603e7143ab7ba8460000675eb46382f1afdc7 (patch) | |
| tree | 74948d096306b6357c5350a061ec5f6f10d41a02 | |
| parent | 680866a502da0abf40aa6e0f216640b5792c1ce6 (diff) | |
| download | olio-uboot-2014.01-99b603e7143ab7ba8460000675eb46382f1afdc7.tar.xz olio-uboot-2014.01-99b603e7143ab7ba8460000675eb46382f1afdc7.zip | |
serial/ns16550: ns16550 has a different register layout on SOC_DA8XX
also fix NS16550_init() as we need 16x divider
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
Acked-by: Christian Riesch <christian.riesch@omicron.at>
Tested-by: Christian Riesch <christian.riesch@omicron.at>
Acked-by: Sughosh Ganu <urwithsughosh@gmail.com>
Tested-by: Sughosh Ganu <urwithsughosh@gmail.com>
| -rw-r--r-- | drivers/serial/ns16550.c | 2 | ||||
| -rw-r--r-- | include/ns16550.h | 9 | 
2 files changed, 10 insertions, 1 deletions
| diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index 0c2395531..facadd2f5 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -52,7 +52,7 @@ void NS16550_init(NS16550_t com_port, int baud_divisor)  	serial_out((baud_divisor >> 8) & 0xff, &com_port->dlm);  	serial_out(UART_LCRVAL, &com_port->lcr);  #if (defined(CONFIG_OMAP) && !defined(CONFIG_OMAP3_ZOOM2)) || \ -					defined(CONFIG_AM33XX) +	defined(CONFIG_AM33XX) || defined(CONFIG_SOC_DA8XX)  #if defined(CONFIG_APTIX)  	/* /13 mode so Aptix 6MHz can hit 115200 */ diff --git a/include/ns16550.h b/include/ns16550.h index e9d2edab0..51cb5b4a6 100644 --- a/include/ns16550.h +++ b/include/ns16550.h @@ -46,6 +46,14 @@ struct NS16550 {  	UART_REG(lsr);		/* 5 */  	UART_REG(msr);		/* 6 */  	UART_REG(spr);		/* 7 */ +#ifdef CONFIG_SOC_DA8XX +	UART_REG(reg8);		/* 8 */ +	UART_REG(reg9);		/* 9 */ +	UART_REG(revid1);	/* A */ +	UART_REG(revid2);	/* B */ +	UART_REG(pwr_mgmt);	/* C */ +	UART_REG(mdr1);		/* D */ +#else  	UART_REG(mdr1);		/* 8 */  	UART_REG(reg9);		/* 9 */  	UART_REG(regA);		/* A */ @@ -58,6 +66,7 @@ struct NS16550 {  	UART_REG(ssr);		/* 11*/  	UART_REG(reg12);	/* 12*/  	UART_REG(osc_12m_sel);	/* 13*/ +#endif  };  #define thr rbr |