Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94f38948 authored by John Rigby's avatar John Rigby Committed by Grant Likely
Browse files

[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: default avatarJohn Rigby <jrigby@freescale.com>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent 5b5820d0
Loading
Loading
Loading
Loading
+6 −4
Original line number Original line Diff line number Diff line
@@ -112,6 +112,7 @@ static void mpc52xx_uart_of_enumerate(void);
#endif
#endif


#define PSC(port) ((struct mpc52xx_psc __iomem *)((port)->membase))
#define PSC(port) ((struct mpc52xx_psc __iomem *)((port)->membase))
#define FIFO(port) ((struct mpc52xx_psc_fifo __iomem *)(PSC(port)+1))




/* Forward declaration of the interruption handling routine */
/* Forward declaration of the interruption handling routine */
@@ -223,6 +224,7 @@ static int
mpc52xx_uart_startup(struct uart_port *port)
mpc52xx_uart_startup(struct uart_port *port)
{
{
	struct mpc52xx_psc __iomem *psc = PSC(port);
	struct mpc52xx_psc __iomem *psc = PSC(port);
	struct mpc52xx_psc_fifo __iomem *fifo = FIFO(port);
	int ret;
	int ret;


	/* Request IRQ */
	/* Request IRQ */
@@ -239,10 +241,10 @@ mpc52xx_uart_startup(struct uart_port *port)


	out_be16(&psc->mpc52xx_psc_clock_select, 0xdd00); /* /16 prescaler on */
	out_be16(&psc->mpc52xx_psc_clock_select, 0xdd00); /* /16 prescaler on */


	out_8(&psc->rfcntl, 0x00);
	out_8(&fifo->rfcntl, 0x00);
	out_be16(&psc->rfalarm, 0x1ff);
	out_be16(&fifo->rfalarm, 0x1ff);
	out_8(&psc->tfcntl, 0x07);
	out_8(&fifo->tfcntl, 0x07);
	out_be16(&psc->tfalarm, 0x80);
	out_be16(&fifo->tfalarm, 0x80);


	port->read_status_mask |= MPC52xx_PSC_IMR_RXRDY | MPC52xx_PSC_IMR_TXRDY;
	port->read_status_mask |= MPC52xx_PSC_IMR_RXRDY | MPC52xx_PSC_IMR_TXRDY;
	out_be16(&psc->mpc52xx_psc_imr,port->read_status_mask);
	out_be16(&psc->mpc52xx_psc_imr,port->read_status_mask);
+3 −0
Original line number Original line Diff line number Diff line
@@ -153,6 +153,9 @@ struct mpc52xx_psc {
	u8		reserved16[3];
	u8		reserved16[3];
	u8		irfdr;		/* PSC + 0x54 */
	u8		irfdr;		/* PSC + 0x54 */
	u8		reserved17[3];
	u8		reserved17[3];
};

struct mpc52xx_psc_fifo {
	u16		rfnum;		/* PSC + 0x58 */
	u16		rfnum;		/* PSC + 0x58 */
	u16		reserved18;
	u16		reserved18;
	u16		tfnum;		/* PSC + 0x5c */
	u16		tfnum;		/* PSC + 0x5c */
+3 −0
Original line number Original line Diff line number Diff line
@@ -159,6 +159,9 @@ struct mpc52xx_psc {
	u8		reserved16[3];
	u8		reserved16[3];
	u8		irfdr;		/* PSC + 0x54 */
	u8		irfdr;		/* PSC + 0x54 */
	u8		reserved17[3];
	u8		reserved17[3];
};

struct mpc52xx_psc_fifo {
	u16		rfnum;		/* PSC + 0x58 */
	u16		rfnum;		/* PSC + 0x58 */
	u16		reserved18;
	u16		reserved18;
	u16		tfnum;		/* PSC + 0x5c */
	u16		tfnum;		/* PSC + 0x5c */