你好:
在自己做的电路板上使用了UART0_DCD管脚做GPIO对外设控制,它是管脚复用的,如下
板卡使用了串口0作为调试口,写了一个驱动对这个gpio管脚配置,但加载驱动会发生如下情况
1)、显示Last login,为重新登录
2)、当前路径也发生变化了,变成了登录缺省root路径
编写了一个测试程序,测试程序对该管脚操作也会出现这种情况,程序会自动退出,显示新登录tty0
其它管脚控制正常(包括UART0_DSR、UART0_RIN)不会发生这样的事情。
UART0_DCD应该是Modem模式下的载波检测管脚,用来检测是否有设备连接,检测到设备连接自动登录等等。。。我想是不是这个起了作用。内核中也没有找到对这个管脚的配置,不知怎样屏蔽。。。
下面为对该管脚的大致操作:
//IO map for control register
regInData = ioremap(0x4804C000+0x138, 8);
regOutData = ioremap(0x4804C000+0x13C, 8);
regOutEn = ioremap(0x4804C000+0x134, 8);
regSetOut = ioremap(0x4804C000+0x194, 8);
regClearOut = ioremap(0x4804C000+0x190, 8);
regPin = ioremap(0x48140000+0xAC8, 8);
//pinmux as GPIO[1][18]
value = (*regPin & 0xFFFFFFF8) | 3;
*regPin = value;
//set out value
value = *regPin | 0x40000;
*regPin = value;
//as output
value = *regOutEn & 0xFFFBFFFF;
*regOutEn = value;
//clear pin
*regClearOut = 0x40000;
其它管脚都好使,就UART0_DCD不行。请多帮助!!




