Ejemplo n.º 1
0
static int _uart_putc(int port, char c)
{
	if (!uart_ready)
		return -1;
	while (!(urd(UART_SR) & UART_SR_TX_READY)) ;
	uwr(c, UART_TF);
	return 0;
}
Ejemplo n.º 2
0
void uart_init(unsigned n)
{

	switch(n) {
	case 0:
		uart_base = MSM_UART1_BASE;
		break;
	case 1:
		uart_base = MSM_UART2_BASE;
		break;
	case 2:
		uart_base = MSM_UART3_BASE;
		break;
	}

#if UART_NEED_INIT
	uwr(0x0A, UART_CR);  /* disable TX and RX */

	uwr(0x30, UART_CR);  /* reset error status */
	uwr(0x10, UART_CR);  /* reset receiver */
	uwr(0x20, UART_CR);  /* reset transmitter */

	//mdelay(100);
	nopdelay();
	
		/* configuration for 19.2MHz TCXO */
	uwr(0xC0, UART_MREG);
	uwr(0xB2, UART_NREG);
	uwr(0x7D, UART_DREG);
	uwr(0x1C, UART_MNDREG);	

	uwr(0x10, UART_CR);  /* reset RX */
	uwr(0x20, UART_CR);  /* reset TX */
	uwr(0x30, UART_CR);  /* reset error status */
	uwr(0x40, UART_CR);  /* reset RX break */
	uwr(0x70, UART_CR);  /* rest? */
	uwr(0xD0, UART_CR);  /* reset */

	uwr(0x7BF, UART_IPR); /* stale timeout = 630 * bitrate */
	uwr(0, UART_IMR);
	uwr(0, UART_RFWR); /* RX watermark = 58 * 2 - 1 */
	uwr(0x1E, UART_TFWR);  /* TX watermark */

	//uwr(0, UART_RFWR); 
	
	uwr(UART_CSR_115200, UART_CSR);
	uwr(0, UART_IRDA);
	uwr(0x1E, UART_HCR);
//	uwr(0x7F4, UART_MR1); /* RFS/ CTS/ 500chr RFR */
	uwr(0, UART_MR1);
	uwr(0x34, UART_MR2); /* 8N1 */
	
	//mdelay(100);
	nopdelay();

	uwr(0x05, UART_CR); /* enable TX & RX */
	//mdelay(100);
	nopdelay();
#endif
}
Ejemplo n.º 3
0
void uart_putc(unsigned c)
{
	while(!(urd(UART_SR) & UART_SR_TX_READY)) ;
	uwr(c, UART_TF);
}
Ejemplo n.º 4
0
void uart_init(void)
{
	uwr(0x0A, UART_CR);	/* disable TX and RX */

	uwr(0x30, UART_CR);	/* reset error status */
	uwr(0x10, UART_CR);	/* reset receiver */
	uwr(0x20, UART_CR);	/* reset transmitter */

#if PLATFORM_QSD8K || PLATFORM_MSM7X30 || PLATFORM_MSM7X27A
	/* TCXO */
	uwr(0x06, UART_MREG);
	uwr(0xF1, UART_NREG);
	uwr(0x0F, UART_DREG);
	uwr(0x1A, UART_MNDREG);
#else
	/* TCXO/4 */
	uwr(0xC0, UART_MREG);
	uwr(0xAF, UART_NREG);
	uwr(0x80, UART_DREG);
	uwr(0x19, UART_MNDREG);
#endif

	uwr(0x10, UART_CR);	/* reset RX */
	uwr(0x20, UART_CR);	/* reset TX */
	uwr(0x30, UART_CR);	/* reset error status */
	uwr(0x40, UART_CR);	/* reset RX break */
	uwr(0x70, UART_CR);	/* rest? */
	uwr(0xD0, UART_CR);	/* reset */

	uwr(0x7BF, UART_IPR);	/* stale timeout = 630 * bitrate */
	uwr(0, UART_IMR);
	uwr(115, UART_RFWR);	/* RX watermark = 58 * 2 - 1 */
	uwr(10, UART_TFWR);	/* TX watermark */

	uwr(0, UART_RFWR);

	uwr(UART_CSR_38400, UART_CSR);
	uwr(0, UART_IRDA);
	uwr(0x1E, UART_HCR);
//      uwr(0x7F4, UART_MR1); /* RFS/ CTS/ 500chr RFR */
	uwr(16, UART_MR1);
	uwr(0x34, UART_MR2);	/* 8N1 */

	uwr(0x05, UART_CR);	/* enable TX & RX */

	uart_ready = 1;
}