forked from Mirrors/opensbi
		
	lib: utils: Fix shakti uart implementation
Fix uart_putc implementation. Due to a bug in the IP, this went unnoticed. Use macros instead of magic numbers to make the code more readable. Signed-off-by: Vijai Kumar K <vijai@behindbytes.com> Reviewed-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							12394a269b
						
					
				
				
					commit
					0d49c3bc18
				
			@@ -18,18 +18,22 @@
 | 
			
		||||
#define REG_IQ_CYCLES	0x1C
 | 
			
		||||
#define REG_RX_THRES	0x20
 | 
			
		||||
 | 
			
		||||
#define UART_TX_FULL  0x2
 | 
			
		||||
#define UART_RX_FULL  0x8
 | 
			
		||||
 | 
			
		||||
static volatile void *uart_base;
 | 
			
		||||
 | 
			
		||||
void shakti_uart_putc(char ch)
 | 
			
		||||
{
 | 
			
		||||
	while((readw(uart_base + REG_STATUS) & 0x2) == 0);
 | 
			
		||||
	while((readw(uart_base + REG_STATUS) & UART_TX_FULL))
 | 
			
		||||
		;
 | 
			
		||||
	writeb(ch, uart_base + REG_TX);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int shakti_uart_getc(void)
 | 
			
		||||
{
 | 
			
		||||
	u16 status = readw(uart_base + REG_STATUS);
 | 
			
		||||
	if (status & 0x8)
 | 
			
		||||
	if (status & UART_RX_FULL)
 | 
			
		||||
		return readb(uart_base + REG_RX);
 | 
			
		||||
	return -1;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user