[PATCH] m68knommu: set GPIO lines for serial ports on 5282 in mcfserial.c
authorGreg Ungerer <gerg@snapgear.com>
Wed, 7 Mar 2007 01:28:13 +0000 (11:28 +1000)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 7 Mar 2007 02:08:38 +0000 (18:08 -0800)
For the Freescale M5282 ColdFire,
Port UA Pin Assignment Register should set to UART mode.
Patch submitted by David Wu <davidwu@arcturusnetworks.com>.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/serial/mcfserial.c

index 0843096..4e2eb35 100644 (file)
@@ -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;