linux内核版本4.1.18,
引脚连接:AM3354的nNMI引脚直接连接TPS65910的35(INT1)引脚。配置中断后系统无法识别中断。
DTS配置
nnmi_pin_default: nnmi_pin_default {
pinctrl-single,pins = <
0x1C0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /*nnmi*/ >;
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
status = "okay";
clock-frequency = <400000>;
tps: tps@2d {
pinctrl-names = "default";
pinctrl-0 = <&nnmi_pin_default>;
compatible = "ti,tps65910";
reg = <0x2d>;
interrupt-parent = <&intc>;
interrupt-controller;
#interrupt-cells = <1>;
interrupts = <7>;
linux,code = <0x100>;
};
};
系统打印错误信息
[ 2.301590] adxl34x 0-0053: no IRQ?
[ 2.844891] random: nonblocking pool is initialized
[ 48.713235] irq 199: nobody cared (try booting with the "irqpoll" option)
[ 48.720065] CPU: 0 PID: 56 Comm: irq/199-tps6591 Not tainted 4.1.18-gbbe8cfc #192
[ 48.727578] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 48.733696] Backtrace:[ 48.736198] [<c0012bf8>] (dump_backtrace) from [<c0012e18>] (show_stack+0x18/0x1c)
[ 48.743798] r6:000000c7 r5:00000000 r4:dbed3b40 r3:00000000
[ 48.749517] [<c0012e00>] (show_stack) from [<c07bbc10>] (dump_stack+0x20/0x28)
[ 48.756789] [<c07bbbf0>] (dump_stack) from [<c006a7dc>] (__report_bad_irq+0x28/0x100)
[ 48.764657] [<c006a7b4>] (__report_bad_irq) from [<c006ab68>] (note_interrupt+0x244/0x2a4)
[ 48.772953] r5:00000000 r4:dbed3b40
[ 48.776560] [<c006a924>] (note_interrupt) from [<c0068814>] (handle_irq_event_percpu+0xcc/0x148)
[ 48.785378] r10:c0b3b81a r9:dbed3b40 r8:000000c7 r7:00002000 r6:00000002 r5:00000002
[ 48.793271] r4:00000000 r3:00000000
[ 48.796876] [<c0068748>] (handle_irq_event_percpu) from [<c00688f8>] (handle_irq_event+0x68/0x90)
[ 48.805782] r10:00000000 r9:dbed3b94 r8:dd806000 r7:00000001 r6:00000000 r5:dbf5f840
[ 48.813674] r4:dbed3b40
[ 48.816225] [<c0068890>] (handle_irq_event) from [<c006b444>] (handle_level_irq+0xa8/0x154)
[ 48.824608] r5:c0b07bbc r4:dbed3b40
[ 48.828211] [<c006b39c>] (handle_level_irq) from [<c0067eec>] (generic_handle_irq+0x30/0x44)
[ 48.836681] r4:000000c7 r3:c006b39c
[ 48.840286] [<c0067ebc>] (generic_handle_irq) from [<c006814c>] (__handle_domain_irq+0x50/0xb0)
[ 48.849019] r4:000000c7 r3:000000d2
[ 48.852624] [<c00680fc>] (__handle_domain_irq) from [<c000947c>] (omap_intc_handle_irq+0xc8/0xd8)
[ 48.861530] r8:c00693b0 r7:00000007 r6:c0b67bc0 r5:dbf7feb0 r4:c0b07e40 r3:dbf7feb0
[ 48.869348] [<c00093b4>] (omap_intc_handle_irq) from [<c07c3440>] (__irq_svc+0x40/0x74)
[ 48.877385] Exception stack(0xdbf7feb0 to 0xdbf7fef8)
[ 48.882459] fea0: dbed3b40 fa200000 10005000 dbf7fef8
[ 48.890674] fec0: dbed3b40 dbf7e000 00000000 dbed3b40 c00693b0 dbed3b94 00000000 dbf7ff14
[ 48.898888] fee0: dbf7fec0 dbf7fef8 c006cda8 c00692c4 60000013 ffffffff
[ 48.905527] r7:dbf7fee4 r6:ffffffff r5:60000013 r4:c00692c4
[ 48.911241] [<c006924c>] (irq_finalize_oneshot.part.0) from [<c00693f0>] (irq_thread_fn+0x40/0x48)
[ 48.920234] r5:dbed3b40 r4:dbf5f840
[ 48.923839] [<c00693b0>] (irq_thread_fn) from [<c0069678>] (irq_thread+0xfc/0x144)
[ 48.931437] r6:00000001 r5:dbf7e000 r4:dbf5f840 r3:dbdbba80
[ 48.937150] [<c006957c>] (irq_thread) from [<c004fbb4>] (kthread+0xd4/0xf0)
[ 48.944138] r9:00000000 r8:00000000 r7:c006957c r6:dbf5f840 r5:dbf5f880 r4:00000000
[ 48.951951] [<c004fae0>] (kthread) from [<c000fa28>] (ret_from_fork+0x14/0x2c)
[ 48.959199] r7:00000000 r6:00000000 r5:c004fae0 r4:dbf5f880
[ 48.964903] handlers:
[ 48.967186] [<c0068920>] irq_default_primary_handler threaded [<c0444e28>] regmap_irq_thread
[ 48.975681] Disabling IRQ #199
没有配置中断前没有打印这样的信息,可以确定是nNMI的中断配置问题!求大侠指导哪里配置错了!!!!!
Shine:
请参考下面的帖子关于怎么申请NMI中断。
e2echina.ti.com/…/374274
yongqing wang:
你的驱动中有没有申请中断?