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/AM5728:Linux/AM5728:清除 WiLink8 GPIO 中断事件

Guru**** 2550550 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/620609/linux-am5728-linux-am5728-clearing-wilink8-gpio-interrupt-event

器件型号:AM5728

工具/软件:Linux

在我们的最后一个项目中,我们将 WiLink 8与 Renesas ARM 处理器集成在一起,并且必须修改 wlcore Linux 内核驱动程序中的 wlcore_IRQ()函数以清除中断(WLAN_IRQ),从而使无线电正常工作。 如果我们没有清除它、示波器显示线路保持高电平、无线电不工作。

 为了清除它、我们执行了以下操作:

     //我们的定制

       void __iomem *irc1 = IOMEM (0xfcfef804);

       U16值;

       值=__raW_readw (irc1);

       值= 0x0000;

       _raW_writew (value、irc1);

 

在 AM5728上、我看到 GPIO IRQ 保持高电平的行为相同、因此我认为需要清除它。 我在论坛上没有找到任何东西作为如何做到这一点的例子。

当我搜索 TRM 时、第6875页(和前几页)显示了 GPIO_IRQSTATUS_CLR_X 寄存器。 描述为“向某个位写入1会禁用相应的中断事件。”。 这是否意味着清除它?

 我的 GPIO 复用为 GPIO 1_25:

1
2.
3.
4.
5.
6.
7.
8.
        wlan_pins_default: wlan_pins_default {
                pinctrl-single,pins = <
-                       0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE14) /* mmc3_dat6.gpio1_24 */
-                       0x1c8 (PIN_INPUT_PULLDOWN | MUX_MODE14)  /* mmc3_dat7.gpio1_25 */
+                       0x39c (PIN_OUTPUT_PULLDOWN | MUX_MODE14) /* mmc3_dat6.gpio1_24 */
+                       0x3a0 (PIN_INPUT_PULLDOWN | MUX_MODE14)  /* mmc3_dat7.gpio1_25 */
                >;
        };

 如何清除此 IRQ 事件? 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是的。 请参阅寄存器说明:
    "描述每个事件的中断使能清除矢量(对应于中断的第一行)"
    "中断线的状态清除
    向某个位写入1会禁用相应的中断事件。 写入0无效。"

    此致、
    Yordan