STM32MP157 UART8 Interrupt issue
I've assigned the UART8 device in the devicetree of the linux kernel (OpenSTLinux):
&pinctrl {
// ...
uart8_pins: uart8-0 {
pins1 {
pinmux = <STM32_PINMUX('E', 0, AF8)>; /* UART8_RX */
bias-disable;
};
pins2 {
pinmux = <STM32_PINMUX('E', 1, AF8)>; /* UART8_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
};
uart8_sleep_pins: uart8-sleep-0 {
pins {
pinmux = <STM32_PINMUX('E', 0, ANALOG)>, /* UART8_RX */
<STM32_PINMUX('E', 1, ANALOG)>; /* UART8_TX */
};
};
// ...
}
// ...
&uart8 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart8_pins>;
pinctrl-1 = <&uart8_sleep_pins>;
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
};The uart8 (0x40019000) is detected upon boot and the device /dev/STM1 is created:
[ 1.196012] stm32-usart 40010000.serial: interrupt mode for rx (no dma)
[ 1.196036] stm32-usart 40010000.serial: interrupt mode for tx (no dma)
[ 1.196076] 40010000.serial: ttySTM0 at MMIO 0x40010000 (irq = 53, base_baud = 4000000) is a stm32-usart
[ 2.321957] stm32-usart 40019000.serial: interrupt mode for rx (no dma)
[ 2.327129] stm32-usart 40019000.serial: interrupt mode for tx (no dma)
[ 2.333894] 40019000.serial: ttySTM1 at MMIO 0x40019000 (irq = 54, base_baud = 4000000) is a stm32-usartSending on TX is working fine, but we can't receive anything. Looking into the interrupt table in linux, i see that the interrupt for UART8 should be on irq 54, bit i can't find anything there:
root@hp00164:~# cat /proc/tty/driver/stm32-usart
serinfo:1.0 driver revision:
0: uart:stm32-usart mmio:0x40010000 irq:53 tx:76167 rx:1466 RTS|CTS|DTR|DSR|CD
1: uart:stm32-usart mmio:0x40019000 irq:54 tx:25 rx:0 CTS|DSR|CD
root@hp00164:~# cat /proc/interrupts | grep ".serial"
53: 8959 0 stm32-exti-h-direct 30 Level 40010000.serialWhat could be the reason for the missing irq? Is this even the issue for not receiving data?
I appreciate any help, thank you.
Best regards,
Kevin
