有一个外部设备(传感器键盘)连接到处理器thrue uart端口(tx rx)和gpio中断线。需要为这个键盘编写驱动程序(不是标准的自有协议,linux内核4.1)。
我在线路规则上编写了模块,并在open()函数上请求了irq(从用户空间/ dev / ttymxc3打开时)。它的工作正常,但是线路规则结构没有为暂停和恢复功能发布回调。
系统休眠时需要释放睡眠键盘。
我尝试编写使用uart驱动程序的tty驱动程序,但不知道如何操作。 如何从内核模块与外部设备进行通信,使用uart端口?
感谢。
答案 0 :(得分:1)
// call userspace
{
mm_segment_t fs;
fs=get_fs();
set_fs(get_ds());//KERNEL DS
handle = sys_open(UTS_UART_DEV_NAME, O_RDWR | O_NOCTTY | O_NONBLOCK, 0);
if( handle < 0 )
{
printk(KERN_INFO "UTS Port Open Fail [%s] \n ", UTS_UART_DEV_NAME);
return -1;
}
set_fs(fs);
}
// call userspace