Dear All,

I am having problem writing to a character 16 x 2  LCD with DMA enabled. 
Please note that, the same character LCD works fine when DMA is not enabled.

I followed the sequence of:-

1. Enabling clocks in for LCD_CLKC_ENABLE for the clocks of DMA, LIDD & 
Core clock. I write and read back the value of 0x07.

2. I initialize the LCD using the LIDD_CS0_DATA & LIDD_CS0_ADDR. I see the 
cursor blinking and I also see a number "4" bein displayed when I write 
0x34 to LIDD_CS0_DATA.
    So this proves the LCD module is working and the LCD is initialized 
perfectly and character is also displayed on the LCD. So the LCD is also 
working.

3. Next  data is written into the virtual memory location allocated by a 
kernel module from the user space program. The physical memory address of 
the virtual memory allocated in the kernel module,
is read by into the user space process and the same physical memory base 
address is used in step 6. The ceiling address of the physical memory is 
calculated from the base based on number of words written.

4. In the LIDD_CTRL, the DMA enable bit, "lidd_dma_en" was always set to 0, 
right from start of the program. This is to disable the DMA right from 
start. 
    As for the "dma_cs0_cs1" bit is set to 0, so that the DMA uses LIDD CS0 
(Frame Buffer0).

5. The LCDDMA_CTRL is set to 0x00.

6. The LCDDMA_FB0_BASE is written with the Physical memory address. 

7. The LCDDMA_FB0_CEILING is written with the Physical memory address. 

8. Next the Interrupt is enabled by setting the bit, "done_en_set" of the 
IRQENABLE_SET.

9. Next In the LIDD_CTRL, the DMA enable bit, "lidd_dma_en" is set to 1 to 
enable the DMA.

10. There is continuous while loop polling of the IRQSTATUS register for 
the done bit to become set. 

*But in the program the **"done_en_set" of the IRQENABLE_SET never gets 
set. I don't know why?.*

To verify, if data is getting written in the memory allocated by the kernel 
module, I read back the data from the memory location and it reads 
correctly.

So I am not sure if this is problem with DMA of the LIDD LCD module or is 
there some sequence missing. 

So can someone help me is getting the LIDD DMA to work?.

Please help me to resolve this issue.

Thanks & Regards
Anu

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/b8a9dc13-3f00-4419-a0d2-da390a7829e2%40googlegroups.com.

Reply via email to