aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Rigby <jrigby@freescale.com>2008-01-16 16:37:24 -0500
committerGrant Likely <grant.likely@secretlab.ca>2008-01-21 13:01:32 -0500
commit94f389485e27641348c1951ab8d65157122a8939 (patch)
tree513c59839b466e893b9c8e3db2d6a0df2a8db11b
parent5b5820d08b8cc90ba0148bf8d4a5a1f792e9e8ba (diff)
[POWERPC] Separate MPC52xx PSC FIFO registers from rest of PSC
This is in preparation for the addition of MPC512x PSC support. The main difference in the 512x is in the fifo registers. Signed-off-by: John Rigby <jrigby@freescale.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
-rw-r--r--drivers/serial/mpc52xx_uart.c10
-rw-r--r--include/asm-powerpc/mpc52xx_psc.h3
-rw-r--r--include/asm-ppc/mpc52xx_psc.h3
3 files changed, 12 insertions, 4 deletions
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 7e3ba8b455a8..141b8da7e0e7 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -112,6 +112,7 @@ static void mpc52xx_uart_of_enumerate(void);
112#endif 112#endif
113 113
114#define PSC(port) ((struct mpc52xx_psc __iomem *)((port)->membase)) 114#define PSC(port) ((struct mpc52xx_psc __iomem *)((port)->membase))
115#define FIFO(port) ((struct mpc52xx_psc_fifo __iomem *)(PSC(port)+1))
115 116
116 117
117/* Forward declaration of the interruption handling routine */ 118/* Forward declaration of the interruption handling routine */
@@ -223,6 +224,7 @@ static int
223mpc52xx_uart_startup(struct uart_port *port) 224mpc52xx_uart_startup(struct uart_port *port)
224{ 225{
225 struct mpc52xx_psc __iomem *psc = PSC(port); 226 struct mpc52xx_psc __iomem *psc = PSC(port);
227 struct mpc52xx_psc_fifo __iomem *fifo = FIFO(port);
226 int ret; 228 int ret;
227 229
228 /* Request IRQ */ 230 /* Request IRQ */
@@ -239,10 +241,10 @@ mpc52xx_uart_startup(struct uart_port *port)
239 241
240 out_be16(&psc->mpc52xx_psc_clock_select, 0xdd00); /* /16 prescaler on */ 242 out_be16(&psc->mpc52xx_psc_clock_select, 0xdd00); /* /16 prescaler on */
241 243
242 out_8(&psc->rfcntl, 0x00); 244 out_8(&fifo->rfcntl, 0x00);
243 out_be16(&psc->rfalarm, 0x1ff); 245 out_be16(&fifo->rfalarm, 0x1ff);
244 out_8(&psc->tfcntl, 0x07); 246 out_8(&fifo->tfcntl, 0x07);
245 out_be16(&psc->tfalarm, 0x80); 247 out_be16(&fifo->tfalarm, 0x80);
246 248
247 port->read_status_mask |= MPC52xx_PSC_IMR_RXRDY | MPC52xx_PSC_IMR_TXRDY; 249 port->read_status_mask |= MPC52xx_PSC_IMR_RXRDY | MPC52xx_PSC_IMR_TXRDY;
248 out_be16(&psc->mpc52xx_psc_imr,port->read_status_mask); 250 out_be16(&psc->mpc52xx_psc_imr,port->read_status_mask);
diff --git a/include/asm-powerpc/mpc52xx_psc.h b/include/asm-powerpc/mpc52xx_psc.h
index 26690d2b32f5..bea42b95390f 100644
--- a/include/asm-powerpc/mpc52xx_psc.h
+++ b/include/asm-powerpc/mpc52xx_psc.h
@@ -153,6 +153,9 @@ struct mpc52xx_psc {
153 u8 reserved16[3]; 153 u8 reserved16[3];
154 u8 irfdr; /* PSC + 0x54 */ 154 u8 irfdr; /* PSC + 0x54 */
155 u8 reserved17[3]; 155 u8 reserved17[3];
156};
157
158struct mpc52xx_psc_fifo {
156 u16 rfnum; /* PSC + 0x58 */ 159 u16 rfnum; /* PSC + 0x58 */
157 u16 reserved18; 160 u16 reserved18;
158 u16 tfnum; /* PSC + 0x5c */ 161 u16 tfnum; /* PSC + 0x5c */
diff --git a/include/asm-ppc/mpc52xx_psc.h b/include/asm-ppc/mpc52xx_psc.h
index c82b8d49a7da..39fcd02cd4e8 100644
--- a/include/asm-ppc/mpc52xx_psc.h
+++ b/include/asm-ppc/mpc52xx_psc.h
@@ -159,6 +159,9 @@ struct mpc52xx_psc {
159 u8 reserved16[3]; 159 u8 reserved16[3];
160 u8 irfdr; /* PSC + 0x54 */ 160 u8 irfdr; /* PSC + 0x54 */
161 u8 reserved17[3]; 161 u8 reserved17[3];
162};
163
164struct mpc52xx_psc_fifo {
162 u16 rfnum; /* PSC + 0x58 */ 165 u16 rfnum; /* PSC + 0x58 */
163 u16 reserved18; 166 u16 reserved18;
164 u16 tfnum; /* PSC + 0x5c */ 167 u16 tfnum; /* PSC + 0x5c */