Skip to content

Commit

Permalink
[POWERPC] Uartlite: Add macros for register names
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Grant Likely authored and Josh Boyer committed Oct 3, 2007
1 parent 69c9c94 commit be1b4d3
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions arch/powerpc/boot/uartlite.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,45 @@
#include "io.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 int uartlite_open(void)
{
/* Clear the RX FIFO */
out_be32(reg_base + 0x0C, 0x2);
out_be32(reg_base + ULITE_CONTROL, ULITE_CONTROL_RST_RX);
return 0;
}

static void uartlite_putc(unsigned char c)
{
while ((in_be32(reg_base + 0x8) & 0x08) != 0); /* spin */
out_be32(reg_base + 0x4, c);
u32 reg = ULITE_STATUS_TXFULL;
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)
{
while ((in_be32(reg_base + 0x8) & 0x01) == 0); /* spin */
return in_be32(reg_base);
u32 reg = ULITE_STATUS_RXVALID;
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)
{
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)
Expand Down

0 comments on commit be1b4d3

Please sign in to comment.