Part Number: AM3352
Tool/software: Linux
Hi all:
My custom board have 4 extension uart chip, and the interrupts pins is A15, D14, V14, U14
uart1 -> A15 for interrupt
uart2 -> D14 for interrupt
uart3 -> V14 for interrupt
uart4 -> U14 for interrupt
the uart1 & uart2 work perfectly, but uart3 & uart4 cannot work
here is the step I follow to configure interrupt in device tree(uart1 & uart2):
1. set pin to interrupt mode:
0x1b0 (PIN_INPUT | MUX_MODE0) /* (A15) xdma_event_intr0, INT0 */
0x1b4 (PIN_INPUT | MUX_MODE0) /* (D14) xdma_event_intr1, INT1 */
2. Find the interrupt number by TRM
3. Here is the uart1 and uart2 node:
exar_uart0: exar_uart0@9000000 {
device_type = "serial";
ti,hwmods = "exar_uart1";
compatible = "exar,16m890";
reg = <0x09000000 0x07>;
clock-frequency = <29491200>;
interrupt-parent = <&intc>;
interrupts = <123>;
mode-sel-gpio = <&gpio0 27 GPIO_ACTIVE_HIGH>; /* 232/422/485 mode sel */
status = "okay";
};
exar_uart1: exar_uart1@9000008 {
device_type = "serial";
ti,hwmods = "exar_uart2";
compatible = "exar,16m890";
reg = <0x09000008 0x07>;
clock-frequency = <29491200>;
fifo-size = <128>;
interrupt-parent = <&intc>;
interrupts = <124>;
mode-sel-gpio = <&gpio0 26 GPIO_ACTIVE_HIGH>; /* 232/422/485 mode sel */
status = "okay";
};
The uar1 & uart2 work perfectly, but follow those step, the uart3 and uart4 cannot work,
I think maybe interrupt registered incorrect,
the interrupts pin of uart3 and uart4 is V14 and U14, when I get interrupt number from TRM, I cannot find the same pin source.
so I choose the similar source name:
but the U14 in mode(6) is ehrpwm1A, and V14 in mode(6) is ehrpwm0_synco
How can I fixed it?
and here is my uart3 and uart4 device tree node
exar_uart2: exar_uart2@a000000 {
device_type = "serial";
ti,hwmods = "exar_uart3";
compatible = "exar,16m890";
reg = <0x0a000000 0x07>;
clock-frequency = <29491200>;
fifo-size = <128>;
interrupt-parent = <&intc>;
interrupts = <86>;
mode-sel-gpio = <&gpio0 23 GPIO_ACTIVE_HIGH>; /* 232/422/485 mode sel */
status = "okay";
};
exar_uart3: exar_uart3@a000008 {
device_type = "serial";
ti,hwmods = "exar_uart4";
compatible = "exar,16m890";
reg = <0x0a000008 0x07>;
clock-frequency = <29491200>;
fifo-size = <128>;
interrupt-parent = <&intc>;
interrupts = <87>;
mode-sel-gpio = <&gpio0 22 GPIO_ACTIVE_HIGH>; /* 232/422/485 mode sel */
status = "okay";
};
many thanks!