Hello,

I am trying to use UART1 & UART2 on Davinci, and I've generally
succeeded with help of solution posted to this list, but I am still
curious why this solution works.

Code I don't understand (I understand what it does, but I don't
understand why) is 

volatile int *ptr_pgmgt,*ptr_ier;
ptr_pgmgt = (volatile int *)IO_ADDRESS(DAVINCI_UART1_BASE+0x30) ;
ptr_ier =(volatile int *)IO_ADDRESS(DAVINCI_UART1_BASE+0x4);
*ptr_pgmgt      =       0x0; //reset tx and rx
*ptr_ier                = 0x0; //disable int
int del=0;
for(del=0; del <100000 ; del++) // For delay
*ptr_pgmgt =0x6001;

My questions are:
1) Why doesn't Linux driver enable Tx & Rx on its own? Are these bits
(rx enable & tx enable) non-standard (UART 16C550)? 
2) Why does this code disable interrupts? As I can see at the end of
boot, standard Linux driver doesn't enables them (I read EIR register as
0), but at the same time I can successfully exchange data between two
computers through this UART.
3) Why is this delay for?


Thanks,
Kirill
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to