Hi All,

I am trying to develop a PRU driver for I2C on the Beaglebone AI 
(Ti-am5729). I have some questions about the setup procedure using 
Interrupt and polling (I am not using DMA). I am not quite sure about the 
differences between the setup described between section *24.1.5.1.1.1.1 and 
24.1.5.1.1.1.2)* and the figure (24.19) of the TRM 
<https://www.ti.com/lit/ug/spruhz6l/spruhz6l.pdf?ts=1614612229214&ref_url=https%253A%252F%252Fwww.ti.com%252Fsitesearch%252Fdocs%252Funiversalsearch.tsp%253FsearchTerm%253Dspruhz6l>
. 

1- I am not sure about the value to put for I2C_IRQENABLE_SET (referenced 
in figure 24.19) I have tried with 0x1f (enable XRDY, RRDY, ARDY, NACK, and 
AL as they are used later). However, I receive a Kernel Oops when I try to 
run my code " [Feb26 14:54] Unable to handle kernel NULL pointer 
dereference at virtual address 00000000

[ +0.003725] Internal error: Oops: 5 [#1] PREEMPT SMP ARM

genirq: exiting task "irq/114-4807a00" (110) is an active IRQ thread (irq 
114)" 

 What value should be used to configure the I2C_IRQENABLE_SET?

2- I have tried to write in the I2C_DATA register but reading the register 
after always gives 0xD. I have checked the value of I2C_IRQSTATUS_RAW, and 
it always read 0x10 (XRDY). Am I missing something to write the data? 

If you want to have a look at my code, it is under this repository 
https://github.com/PierrickRauby/BBAI-PRU-I2C/blob/main/am572x_pru_i2c_driver.pru1_1.c

Thanks for any help you can provide! 

Pierrick 


PS: I have posted this same question on the Ti e2e forum a few days ago but 
I have not solved my issue yet. 

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/7302118e-4f1f-4523-aeed-b4176ee91959n%40googlegroups.com.

Reply via email to