diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-19 20:40:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-19 20:40:40 -0400 |
commit | 773d7a09e1a1349a5319ac8665e9c612c6aa27d8 (patch) | |
tree | 3b2272bb3cfcab04ba6459cba116e577278c9392 /drivers/serial | |
parent | 17fad5209e6b55148dbd20156cdaf2c7e67faa40 (diff) | |
parent | b71a107c66ad952c9d35ec046a803efc89a80556 (diff) |
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (35 commits)
powerpc/5121: make clock debug output more readable
powerpc/5xxx: Add common mpc5xxx_get_bus_frequency() function
powerpc/5200: Update pcm030.dts to add i2c eeprom and delete cruft
powerpc/5200: convert mpc52xx_psc_spi to use cs_control callback
fbdev/xilinxfb: Fix improper casting and tighen up probe path
usb/ps3: Add missing annotations
powerpc: Add memory clobber to mtspr()
powerpc: Fix invalid construct in our CPU selection Kconfig
ps3rom: Use ps3_system_bus_[gs]et_drvdata() instead of direct access
powerpc: Add configurable -Werror for arch/powerpc
of_serial: Add UPF_FIXED_TYPE flag
drivers/hvc: Add missing __devexit_p()
net/ps3: gelic - Add missing annotations
powerpc: Introduce macro spin_event_timeout()
powerpc/warp: Fix ISA_DMA_THRESHOLD default
powerpc/bootwrapper: Custom build options for XPedite52xx targets
powerpc/85xx: Add defconfig for X-ES MPC85xx boards
powerpc/85xx: Add dts files for X-ES MPC85xx boards
powerpc/85xx: Add platform support for X-ES MPC85xx boards
83xx: add support for the kmeter1 board.
...
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/mpc52xx_uart.c | 5 | ||||
-rw-r--r-- | drivers/serial/of_serial.c | 2 | ||||
-rw-r--r-- | drivers/serial/ucc_uart.c | 19 |
3 files changed, 17 insertions, 9 deletions
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c index b3feb6198d57..abbd146c50d9 100644 --- a/drivers/serial/mpc52xx_uart.c +++ b/drivers/serial/mpc52xx_uart.c | |||
@@ -76,7 +76,6 @@ | |||
76 | #include <linux/of_platform.h> | 76 | #include <linux/of_platform.h> |
77 | 77 | ||
78 | #include <asm/mpc52xx.h> | 78 | #include <asm/mpc52xx.h> |
79 | #include <asm/mpc512x.h> | ||
80 | #include <asm/mpc52xx_psc.h> | 79 | #include <asm/mpc52xx_psc.h> |
81 | 80 | ||
82 | #if defined(CONFIG_SERIAL_MPC52xx_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) | 81 | #if defined(CONFIG_SERIAL_MPC52xx_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) |
@@ -254,7 +253,7 @@ static unsigned long mpc52xx_getuartclk(void *p) | |||
254 | * but the generic serial code assumes 16 | 253 | * but the generic serial code assumes 16 |
255 | * so return ipb freq / 2 | 254 | * so return ipb freq / 2 |
256 | */ | 255 | */ |
257 | return mpc52xx_find_ipb_freq(p) / 2; | 256 | return mpc5xxx_get_bus_frequency(p) / 2; |
258 | } | 257 | } |
259 | 258 | ||
260 | static struct psc_ops mpc52xx_psc_ops = { | 259 | static struct psc_ops mpc52xx_psc_ops = { |
@@ -391,7 +390,7 @@ static void mpc512x_psc_cw_restore_ints(struct uart_port *port) | |||
391 | 390 | ||
392 | static unsigned long mpc512x_getuartclk(void *p) | 391 | static unsigned long mpc512x_getuartclk(void *p) |
393 | { | 392 | { |
394 | return mpc512x_find_ips_freq(p); | 393 | return mpc5xxx_get_bus_frequency(p); |
395 | } | 394 | } |
396 | 395 | ||
397 | static struct psc_ops mpc512x_psc_ops = { | 396 | static struct psc_ops mpc512x_psc_ops = { |
diff --git a/drivers/serial/of_serial.c b/drivers/serial/of_serial.c index 54483cd3529e..02406ba6da1c 100644 --- a/drivers/serial/of_serial.c +++ b/drivers/serial/of_serial.c | |||
@@ -67,7 +67,7 @@ static int __devinit of_platform_serial_setup(struct of_device *ofdev, | |||
67 | port->type = type; | 67 | port->type = type; |
68 | port->uartclk = *clk; | 68 | port->uartclk = *clk; |
69 | port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP | 69 | port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP |
70 | | UPF_FIXED_PORT; | 70 | | UPF_FIXED_PORT | UPF_FIXED_TYPE; |
71 | port->dev = &ofdev->dev; | 71 | port->dev = &ofdev->dev; |
72 | /* If current-speed was set, then try not to change it. */ | 72 | /* If current-speed was set, then try not to change it. */ |
73 | if (spd) | 73 | if (spd) |
diff --git a/drivers/serial/ucc_uart.c b/drivers/serial/ucc_uart.c index 7de66c06b05d..e945e780b5c9 100644 --- a/drivers/serial/ucc_uart.c +++ b/drivers/serial/ucc_uart.c | |||
@@ -681,22 +681,27 @@ static void qe_uart_init_ucc(struct uart_qe_port *qe_port) | |||
681 | out_be16(&uccup->rccm, 0xc0ff); | 681 | out_be16(&uccup->rccm, 0xc0ff); |
682 | 682 | ||
683 | /* Configure the GUMR registers for UART */ | 683 | /* Configure the GUMR registers for UART */ |
684 | if (soft_uart) | 684 | if (soft_uart) { |
685 | /* Soft-UART requires a 1X multiplier for TX */ | 685 | /* Soft-UART requires a 1X multiplier for TX */ |
686 | clrsetbits_be32(&uccp->gumr_l, | 686 | clrsetbits_be32(&uccp->gumr_l, |
687 | UCC_SLOW_GUMR_L_MODE_MASK | UCC_SLOW_GUMR_L_TDCR_MASK | | 687 | UCC_SLOW_GUMR_L_MODE_MASK | UCC_SLOW_GUMR_L_TDCR_MASK | |
688 | UCC_SLOW_GUMR_L_RDCR_MASK, | 688 | UCC_SLOW_GUMR_L_RDCR_MASK, |
689 | UCC_SLOW_GUMR_L_MODE_UART | UCC_SLOW_GUMR_L_TDCR_1 | | 689 | UCC_SLOW_GUMR_L_MODE_UART | UCC_SLOW_GUMR_L_TDCR_1 | |
690 | UCC_SLOW_GUMR_L_RDCR_16); | 690 | UCC_SLOW_GUMR_L_RDCR_16); |
691 | else | 691 | |
692 | clrsetbits_be32(&uccp->gumr_h, UCC_SLOW_GUMR_H_RFW, | ||
693 | UCC_SLOW_GUMR_H_TRX | UCC_SLOW_GUMR_H_TTX); | ||
694 | } else { | ||
692 | clrsetbits_be32(&uccp->gumr_l, | 695 | clrsetbits_be32(&uccp->gumr_l, |
693 | UCC_SLOW_GUMR_L_MODE_MASK | UCC_SLOW_GUMR_L_TDCR_MASK | | 696 | UCC_SLOW_GUMR_L_MODE_MASK | UCC_SLOW_GUMR_L_TDCR_MASK | |
694 | UCC_SLOW_GUMR_L_RDCR_MASK, | 697 | UCC_SLOW_GUMR_L_RDCR_MASK, |
695 | UCC_SLOW_GUMR_L_MODE_UART | UCC_SLOW_GUMR_L_TDCR_16 | | 698 | UCC_SLOW_GUMR_L_MODE_UART | UCC_SLOW_GUMR_L_TDCR_16 | |
696 | UCC_SLOW_GUMR_L_RDCR_16); | 699 | UCC_SLOW_GUMR_L_RDCR_16); |
697 | 700 | ||
698 | clrsetbits_be32(&uccp->gumr_h, UCC_SLOW_GUMR_H_RFW, | 701 | clrsetbits_be32(&uccp->gumr_h, |
699 | UCC_SLOW_GUMR_H_TRX | UCC_SLOW_GUMR_H_TTX); | 702 | UCC_SLOW_GUMR_H_TRX | UCC_SLOW_GUMR_H_TTX, |
703 | UCC_SLOW_GUMR_H_RFW); | ||
704 | } | ||
700 | 705 | ||
701 | #ifdef LOOPBACK | 706 | #ifdef LOOPBACK |
702 | clrsetbits_be32(&uccp->gumr_l, UCC_SLOW_GUMR_L_DIAG_MASK, | 707 | clrsetbits_be32(&uccp->gumr_l, UCC_SLOW_GUMR_L_DIAG_MASK, |
@@ -706,7 +711,7 @@ static void qe_uart_init_ucc(struct uart_qe_port *qe_port) | |||
706 | UCC_SLOW_GUMR_H_CDS); | 711 | UCC_SLOW_GUMR_H_CDS); |
707 | #endif | 712 | #endif |
708 | 713 | ||
709 | /* Enable rx interrupts and clear all pending events. */ | 714 | /* Disable rx interrupts and clear all pending events. */ |
710 | out_be16(&uccp->uccm, 0); | 715 | out_be16(&uccp->uccm, 0); |
711 | out_be16(&uccp->ucce, 0xffff); | 716 | out_be16(&uccp->ucce, 0xffff); |
712 | out_be16(&uccp->udsr, 0x7e7e); | 717 | out_be16(&uccp->udsr, 0x7e7e); |
@@ -765,6 +770,10 @@ static void qe_uart_init_ucc(struct uart_qe_port *qe_port) | |||
765 | cecr_subblock = ucc_slow_get_qe_cr_subblock(qe_port->ucc_num); | 770 | cecr_subblock = ucc_slow_get_qe_cr_subblock(qe_port->ucc_num); |
766 | qe_issue_cmd(QE_INIT_TX_RX, cecr_subblock, | 771 | qe_issue_cmd(QE_INIT_TX_RX, cecr_subblock, |
767 | QE_CR_PROTOCOL_UNSPECIFIED, 0); | 772 | QE_CR_PROTOCOL_UNSPECIFIED, 0); |
773 | } else { | ||
774 | cecr_subblock = ucc_slow_get_qe_cr_subblock(qe_port->ucc_num); | ||
775 | qe_issue_cmd(QE_INIT_TX_RX, cecr_subblock, | ||
776 | QE_CR_PROTOCOL_UART, 0); | ||
768 | } | 777 | } |
769 | } | 778 | } |
770 | 779 | ||