Fintek F71869A GPIO控制

时间:2014-06-30 06:36:49

标签: embedded-linux gpio

我想控制Jetway Atom PC JBC373F38(http://www.jetwaycomputer.com/JBC373F38.html)上的GPIO。我发现该PC上的GPIO是超级IO芯片Fintek F71869A的一部分(GPIO3)。我已经使用0x2E / 0x2F端口在Linux上制作了一个小代码来控制这些GPIO引脚,但它不起作用。可能任何人都有这个问题的工作示例或告诉我我的代码中的错误是什么。这是我的代码:

#define AddrPort 0x2E
#define DataPort 0x2F

#define WriteByte(port, val)    outb(val, port)
#define ReadByte(port)          inb(port)

#define PORT_INDEX  0xC0
#define PORT_DATA   0xC1

    //Enable 
    WriteByte(AddrPort, 0x87);
    WriteByte(AddrPort, 0x87); //Must write twice to entering Extended mode

    //< Select Logic Device >
    WriteByte(AddrPort, 0x07); // Enter selecting mode
     WriteByte(DataPort, 0x06); // Select logic device 06h: GPIO


     //<Output Mode Selection> //Set GP30-37 to output Mode
    WriteByte(AddrPort, PORT_INDEX); // Select configuration register C0h
    WriteByte(DataPort, 0xFF);

    //<Output Value>
    WriteByte(AddrPort, PORT_DATA); // Select configuration register C1h
    WriteByte(DataPort, 0xFF); //Set all bits HIGH

1 个答案:

答案 0 :(得分:1)

您正在通过编写0x87两次来启用配置,但是在完成后通过发送WriteByte(AddrPort, 0xAA);来禁用配置模式。

您的AddrPort和DataPort也显示不正确;它们应该是0x4E和0x4F。

参见this documentation的第6节。

它声明:

  

以下是使用debug启用配置和禁用配置的示例。

-o 4e 87
-o 4e 87 (enable configuration)
-o 4e aa (disable configuration)