This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3352: Interrupts on pins V14 and U14

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!