[POWERPC] Uartlite: Add macros for register names
Add macros to define register names to improve readability. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
This commit is contained in:
parent
69c9c94303
commit
be1b4d34e3
|
@ -16,30 +16,45 @@
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "ops.h"
|
#include "ops.h"
|
||||||
|
|
||||||
|
#define ULITE_RX 0x00
|
||||||
|
#define ULITE_TX 0x04
|
||||||
|
#define ULITE_STATUS 0x08
|
||||||
|
#define ULITE_CONTROL 0x0c
|
||||||
|
|
||||||
|
#define ULITE_STATUS_RXVALID 0x01
|
||||||
|
#define ULITE_STATUS_TXFULL 0x08
|
||||||
|
|
||||||
|
#define ULITE_CONTROL_RST_RX 0x02
|
||||||
|
|
||||||
static void * reg_base;
|
static void * reg_base;
|
||||||
|
|
||||||
static int uartlite_open(void)
|
static int uartlite_open(void)
|
||||||
{
|
{
|
||||||
/* Clear the RX FIFO */
|
/* Clear the RX FIFO */
|
||||||
out_be32(reg_base + 0x0C, 0x2);
|
out_be32(reg_base + ULITE_CONTROL, ULITE_CONTROL_RST_RX);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void uartlite_putc(unsigned char c)
|
static void uartlite_putc(unsigned char c)
|
||||||
{
|
{
|
||||||
while ((in_be32(reg_base + 0x8) & 0x08) != 0); /* spin */
|
u32 reg = ULITE_STATUS_TXFULL;
|
||||||
out_be32(reg_base + 0x4, c);
|
while (reg & ULITE_STATUS_TXFULL) /* spin on TXFULL bit */
|
||||||
|
reg = in_be32(reg_base + ULITE_STATUS);
|
||||||
|
out_be32(reg_base + ULITE_TX, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned char uartlite_getc(void)
|
static unsigned char uartlite_getc(void)
|
||||||
{
|
{
|
||||||
while ((in_be32(reg_base + 0x8) & 0x01) == 0); /* spin */
|
u32 reg = ULITE_STATUS_RXVALID;
|
||||||
return in_be32(reg_base);
|
while (reg & ULITE_STATUS_RXVALID) /* spin on RXVALID bit */
|
||||||
|
reg = in_be32(reg_base + ULITE_STATUS);
|
||||||
|
return in_be32(reg_base + ULITE_RX);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 uartlite_tstc(void)
|
static u8 uartlite_tstc(void)
|
||||||
{
|
{
|
||||||
return ((in_be32(reg_base + 0x8) & 0x01) != 0);
|
u32 reg = in_be32(reg_base + ULITE_STATUS);
|
||||||
|
return reg & ULITE_STATUS_RXVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
int uartlite_console_init(void *devp, struct serial_console_data *scdp)
|
int uartlite_console_init(void *devp, struct serial_console_data *scdp)
|
||||||
|
|
Loading…
Reference in a new issue