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.

TDA4VM: Linux操作系统上实现GPIO中断

Part Number: TDA4VM

你好,

我们使用的芯片型号是:TDA4VL,对应的Linux版本是:PROCESSOR-SDK-LINUX-J721S2  08_00_04_05,对应的RTOS的版本是:PROCESSOR-SDK-RTOS-J721S2  08_00_04_04。

我们在A72上面运行Linux操作系统,我们想在Linux操作系统上实现GPIO外部中断功能。我使用的GPIO引脚是:GPIO0_5(AD25)。

对于GPIO中断,我们进行了验证,发现request_irq成功返回,我们尝试去触发中断(确保GPIO0_5(AD25)的电平发生了翻转),但是中断服务函数始终无法响应。我们的代码如下:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts b/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
index 35edbc1..9c75e3f 100755
--- a/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
+++ b/board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
@@ -93,6 +93,13 @@
<3300000 0x1>;
};
+ gpio_test: gpio_test {
+ compatible = "ti,gpio_test";
+ interrupt-parent = <&main_gpio0>;
+ interrupts = <5 IRQ_TYPE_EDGE_BOTH>;
+ };
+
+
transceiver1: can-phy1 {
compatible = "ti,tcan1043";
#phy-cells = <0>;
@@ -174,6 +181,12 @@
>;
};
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

后面我们猜测会不会是MCU相关部分导致中断无法响应。我们采取了如下操作:

1、屏蔽了MCU相关代码对GPIO0_5(AD25)的使用。(中断函数还是无法响应)

2、我们在启动过程中,不加载任何MCU相关的固件。(中断函数还是无法响应)

注:我们在TDA4VM上面进行了同样的验证,同样的代码逻辑,发现在TDA4VM上面,GPIO中断可以正常响应。