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
