From: Greg Ungerer Date: Wed, 7 Mar 2007 01:28:13 +0000 (+1000) Subject: [PATCH] m68knommu: set GPIO lines for serial ports on 5282 in mcfserial.c X-Git-Tag: v2.6.21-rc3~10 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ebfcfef44e4a759dd08a4b5e28848787b5530c0c;p=linux-2.6 [PATCH] m68knommu: set GPIO lines for serial ports on 5282 in mcfserial.c For the Freescale M5282 ColdFire, Port UA Pin Assignment Register should set to UART mode. Patch submitted by David Wu . Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds --- diff --git a/drivers/serial/mcfserial.c b/drivers/serial/mcfserial.c index 08430961a8..4e2eb351f7 100644 --- a/drivers/serial/mcfserial.c +++ b/drivers/serial/mcfserial.c @@ -1541,8 +1541,8 @@ static void mcfrs_irqinit(struct mcf_serial *info) * External Pin Mask Setting & Enable External Pin for Interface * mrcbis@aliceposta.it */ - unsigned short *serpin_enable_mask; - serpin_enable_mask = (MCF_IPSBAR + MCF_GPIO_PAR_UART); + u16 *serpin_enable_mask; + serpin_enable_mask = (u16 *) (MCF_IPSBAR + MCF_GPIO_PAR_UART); if (info->line == 0) *serpin_enable_mask |= UART0_ENABLE_MASK; else if (info->line == 1) @@ -1551,6 +1551,13 @@ static void mcfrs_irqinit(struct mcf_serial *info) *serpin_enable_mask |= UART2_ENABLE_MASK; } #endif +#if defined(CONFIG_M528x) + /* make sure PUAPAR is set for UART0 and UART1 */ + if (info->line < 2) { + volatile unsigned char *portp = (volatile unsigned char *) (MCF_MBAR + MCF5282_GPIO_PUAPAR); + *portp |= (0x03 << (info->line * 2)); + } +#endif #elif defined(CONFIG_M520x) volatile unsigned char *icrp, *uartp; volatile unsigned long *imrp;