26#define PS2LIB_STR_MAX 4096
30#define CPUCLK 294912000
32#define LCR_SCS_VAL (1 << 5)
35void sio_init(u32 baudrate, u8 lcr_ueps, u8 lcr_upen, u8 lcr_usbl, u8 lcr_umode)
40 _sw(
LCR_SCS_VAL | ((lcr_ueps & 1) << 4) | ((lcr_upen & 1) << 3) |
41 ((lcr_usbl & 1) << 2) | (lcr_umode & 1),
52 brd =
CPUCLK / (baudrate * 256);
54 while ((brd >= 256) && (++bclk < 4))
57 _sw((bclk << 8) | brd,
SIO_BGR);
62static u8 ___last_sio_putc = 0;
65 if ((c ==
'\n') && (___last_sio_putc !=
'\r')) {
73 while ((_lw(
SIO_ISR) & 0xf000) == 0x8000)
97#ifdef F_sio_getc_block
101 while (!(_lw(
SIO_ISR) & 0xf00))
113 for (i = 0; i < size; i++)
121size_t sio_read(
void *buf,
size_t size)
126 for (i = 0; i < size; i++) {
129 if ((c = sio_getc()) == -1)
140int sio_puts(
const char *str)
144 res = sio_putsn(str);
153int sio_putsn(
const char *str)
157 for (res = 0; *str; res++, str++)
174 if (c ==
'\n' || c ==
'\r')
size_t sio_read(void *buf, size_t size)
char * sio_gets(char *str)
size_t sio_write(void *buf, size_t size)