工具/软件:Linux
am5716上的内置键盘控制器是否支持 Linux 驱动程序?
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.
我在内核配置中启用了 keyboard_omap4并将以下内容添加到器件树中(主要取自 omap5.dtsi)
当内核启动时,我收到消息“[0.36777] platform 4ae1c000.keypad: cannot lookup hwmod 'kbd'”。
要使其正常工作、还需要做些什么?
键盘@4ae1c000{
兼容="ti、OMAP4-keypad";
Linux、keymap =< 0x00000001
0x0001006A
0x01000067
0x0101001c
0x02000069
0x0201006c >;
键盘、num-rows =<3>;
键盘、num 列=<2>;
linux、input-no-autorepeat;
reg =<0x4ae1c000 0x80>;
reg-names ="MPU";
ti、hwmods ="kbd";
};
Yordan、您好!
是的、我在其他地方有用于键盘的 status="oke"。
我在文件/arch/arm/mach-omap2/omap_hwmod_7xx_data.c 中发现键盘的定义缺失。 它看起来是为键盘定义时钟、是驾驶员所需的。
定义此参数后、驱动程序立即初始化、并自动创建/dev/input/event0器件。
但是、当我按下按钮时、键盘不会产生中断。
我注意到数据表显示键盘控制器具有 IRQ_crossbar_115的 IRQ_crossbar 输入、并且默认映射为 MPU_IRQ_120。
根据一些其他定义(例如 UART3等)、我认为我错误地为键盘定义了中断、因此我将其更改为115。
当我这么做时、内核现在显示以下内容。
我不确定此 IRQ 交叉开关是如何工作的。
[34.217006] IRQ 369:无人照管(尝试使用"irqpoll"选项引导)
[34.299004] CPU:0 PID:1 Comm:swapper/0未被污染4.4.32 #131
[34.372591]硬件名称:通用 DRA72X (平展器件树)
[34.446173]背迹:
[34.475674][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[34.567120] r7:00000171 R6:20000193 R5:00000000 R4:c0963e34
[34.635588][ ](show_stack)从[ ](dump_stack+0x84/0xa0)
[34.722835][ ](dump_stack)从[ ](__REPORT_BAD_IRQ+0x2C/0xc4)
[34.816382] r7:00000171 R6:00000000 R5:00000002 R4:ef206c00
[34.884845][ ](__report_BAD_IRQ),来自[ ](NOTE_INTERRUPT+0x1ec/0x294)
[34.984699] R9:00000171 R8:00000000 r7:00000171 R6:00000000 R5:00000002 R4:ef206c00
[35.078415][ ](NOTE_INTERRUPT)从[ ](handle_irq_event_perpu + 0x110/0x130)
[35.185621] R10:c0991e33 R9:00000002 R8:00000000 r7:00000171 R6:ef206c00 R5:00000002
[35.280379] R4:00000000 R3:00000000
[35.323564][ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x40/0x64)
[35.430771] R10:c0938080 R9:eeb47c00 R8:ef006000 r7:00000171 R6:ef206c60 R5:ef206c60
[35.25528] R4:ef206c00
[35.556063][ ](handle_irq_event)从[ ](handle_fasteoi_IRQ+b0/0x12c)
[35.659067] r7:00000171 r6:ef206c60 r5:c09644b0 r4:ef206c00
[35.727532][ ](handle_fasteoi_IRQ)、来自[ ](generic_handle_IRQ+0x20/0x30)
[35.831586] r7:00000171 R6:c0933424 R5:ef07fc58 R4:00000000
[35.900044][ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x94/bb)
[36.005157][ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x50/0x7c)
[36.1060606060] R9:eeb47c00 R8:ef006000 r7:fa213000 R6:ef07fb50 R5:c09388e0 R4:fa212000
[36.199772][ ](GIC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x40/0x74)
[36.290171]异常堆栈(0xef07fb50至0xef07fb98)
[36.351147] fb40:00000000 00200140 00000000 00000000
[36.449950] fb60:ef07e000 00000000 00000002 c0995300 ef006000 eeb47c00 c0938080 ef07fbf4
[36.548748] fb80:ef07fbf8 ef07fb0 c0034aec c00346ac 60000113 ffff
[36.628634] r7:ef07fb84 R6:ffff R5:60000113 R4:c00346ac
[36.697098][ ](__do_softirq)、从[ ](IRQ_EXIT+0x8c/0xf8)
[36.784341] R10:00000000 R9:eeb47c00 R8:ef006000 r7:00000012 R6:c0933424 R5:00000000
[36.879100] R4:ffe000
[36.909642][ ](IRQ_EXIT)从[ ](_handle_domain_IRQ+0x98/bb)
[37.004241] R5:00000000 R4:00000000
[37.047423][ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x50/0x7c)
[37.148327] R9:eeb47c00 R8:eeb47c1c r7:fa213000 R6:ef07fc58 R5:c09388e0 R4:fa212000
[37.242031][ ](GIC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x40/0x74)
[37.332430]异常堆栈(0xef07fc58至0xef07fca0)
[37.393406] fc40:ef206c60 60000013
[37.492208] fc60:00000001 0000000b ef206c00 00000001 EEb29ec0 EEb47d78 EEb47c1c EEb47c00
[37.591008] fc80:00000000 ef07fcb4 ef07fcb8 ef07fca8 c00723e8 c066fect4 00000013 ffffff
[37.689806] r7:ef07fc8c r6:ffFFFF r5:00000013 r4:c066fect4
[37.758267][ ](_raW_spin_unlock_irqrestore)从[ ](__IRQ_PLOT_desc_unlock+0x1c/0x40)
[37.874932][ ](__IRQ_PLOT_desc_unlock)从[ ](ENABLE_IRQ+0x5c/0x78)
[37.973734] R5:00000171 R4:ef206c00
[38.016920][ ](ENABLE_IRQ)从[ ](OMAP4_SPACK_OPEN+0xa8/0xc0)
[38.111516] R5:eeb47c00 R4:eeb29c40
[38.154692][ ](OMAP4_SPACK_OPEN)从[ ](input_open_device+0x74/b0)
[38.256646] R5:eeb29ec0 R4:eeb47c00
[38.299822][ ](input_open_device)来自[ ](kbd_connect+0x50/0x88)
[38.395470] r7:c06bb97c r6:eeb47c00 r5:eeb29ec0 r4:00000000
[38.463918][ ](kbd_connect)、来自[ ](INPUT_ATE_handler + 0x1c4/0x1F4)
[38.564822] r7:c06bb97c r6:c096ba74 r5:eeb47c00 r4:c06bb98c
[38.633285][ ](input_attach_handler)从[ ](INPUT_REGISTER_DEVICE_0x310/0x3cc)
[38.74467] R9:eeb47c00 R8:eeb47d98 r7:00000000 R6:c097eb0c R5:c096ba74 R4:eeb47c00
[38.838412][ ](INPUT_REGISTER_DEVICE)、来自[ ](OMAP4_SPACK_PROBE +0x430/0x544)
[38.947720] R9:eeb47c00 R8:00000000 r7:ef20c00 R6:eeb29c80 R5:ef20c10 R4:eeb29c40
[39.041421][ ](OMAP4_SPACK_PROBE)、来自[ ](platform_drv_probe +0x58/0xa8)
[39.145474] R9:c0931674 R8:c097f008 r7:00000000 R6:c097f008 r5:ef20ca10 r4:c0440f44
[39.239190][ ](platform_drv_probe)、来自[ ](DRIVER_PROBLE_DEVICE_0x118/0x29c)
[39.346396] r7:00000000 R6:c09e5c1c R5:00000000 R4:ef20ca10
[39.414852][ ](driver_probe_device)从[ ](__driver_attach+0x70/0x94)
[39.516807] R9:c0931674 R8:c093b8a0 r7:c0974b88 R6:c097f008 R5:ef20ca44 R4:ef20ca10
[39.610522][ ](__driver_attach)从[ ](BUS_TO_EASE_DEV_0x74/0x98)
[39.709323] r7:c0974b88 r6:c039d4cc r5:c097f008 r4:00000000
[39.777778][ ](bus_for_each_dev)、来自[ ](DRIVER_ATT+0x20/0x28)
[39.874480] R6:eeb2a900 R5:00000000 R4:c097f008
[39.930295][ ](driver_attach)从[ ](BUS_ADD_DRIVER+0xd4/0x1f0)
[40.025951][ ](BUS_ADD_DRIVER)从[ ](DRIVER_REGISTER+0xa4/0xe8)
[40.122652] r7:c093b8a0 r6:00000000 r5:c090bbcc r4:c097f008
[40.191110][ ](driver_register)、从[ ](__platform_driver_register+0x38/0x4c)
[40.300418] R5:c090bbcc R4:eeb29bc0
[40.343603][ ](__platform_driver_register)、来自[ ](OMAP4_SPACK_DRIVER_INIT+0x18/0x20)
[40.462373][ ](OMAP4_SPACK_DRIVER_INIT)、来自[ ](do_one _initcall+0x10c/0x1c0)
[40.571691][ ](多个_initcall)、来自[ ](kernel_init_freeable + 0x194/0x25c)
[40.676796] R9:c0931674 R8:c0994000 r7:c0923834 R6:000000ba R5:c0994000 R4:00000007
[40.770511][ ](kernel_init_freable)从[ ](kernel_init+0x14/0xf4)
[40.869311] R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c066b7d4 R4:c0994000
[40.963025][ ](kernel_init)、来自[ ](RET_FANK_F叉+0x14/0x2C)
[41.054472] R5:c066b7d4 R4:00000000
[41.097649]处理程序:
[41.125004][ ] OMAP4_SPACK_IRQ_handler 线程化[ ] OMAP4_SPACK_IRQ_THREAD_Fn
[41.23322]正在禁用 IRQ #369