Hello, I've successfully used the guide located at DM81xx_AM38xx_CIR_Driver_User_Guide to install the LIRC package. I've also applied the LIRC/IR patches found in this verified answer. I'm a new developer and after going through the LIRC support for TI81XX patch I've been unable to get lirc_serial to use UART0. Based on the research I've done I believe I need to ioremap the address for UART0 found in /proc/iomem (48020000-48021fff: omap_uart.0). We can also see the following:
dmesg | grep tty
omap_uart.0: ttyO0 at MMIO 0x48020000 (irq = 72) is a OMAP UART0
So this led me to:
vbase = ioremap(uart0_base, uart0_max - uart0_base);
and replace the inb/outb calls in sinp/soutp with:
iowrite8(value, vbase + (offset * 4))
ioread8(vbase + (offset * 4))
Doing the above allows the driver to go through all the UART initialization, however when I attempt to read from the /dev/lirc0 node the driver crashes with "Precise External Abort on non-linefetch (0x1028) at 0xfa020000. I could be mistaken, but this leads me to believe that I'm on the right track in terms of communication but now there may be some other problem? The line that causes the crash is inside the irq_handle loop on the 32nd iteration:
arr = sinp(UART_RX);
I'm not really sure where to go from here, I've tried quite a few other solutions but so far this made the most sense to me. If any clarification is needed, I can provide it. Thanks for taking a look.