Linux kernel 中断zcu102 GPIO PL中断中出现致命异常

Linux kernel 中断zcu102 GPIO PL中断中出现致命异常,linux-kernel,fpga,xilinx,gpio,interrupt-handling,Linux Kernel,Fpga,Xilinx,Gpio,Interrupt Handling,我正在使用Xilinx Zynq UltraScale+MPSoC ZCU102评估套件,我是使用该板的新手。我遵循此链接使用GPIO开关生成中断并关闭led:。当我检查/proc/interrupts时,发现驱动程序工作正常,led令人心悸: ... 223: 0 0 0 0 GICv2 154 Level fd4c0000.dma 224: 0 0 0 0 xgpio 0 Edge

我正在使用Xilinx Zynq UltraScale+MPSoC ZCU102评估套件,我是使用该板的新手。我遵循此链接使用GPIO开关生成中断并关闭led:。当我检查/proc/interrupts时,发现驱动程序工作正常,led令人心悸:

...
223:          0    0    0     0     GICv2 154 Level      fd4c0000.dma
224:          0    0    0     0     xgpio   0 Edge      sw14
233:          0    0    0     0     GICv2  97 Level     xhci-hcd:usb1
...
但当我打开cpu停止时,我会出现以下错误:

root@Xilinx-ZCU102-2016_1:~# [   18.111391] Unable to handle kernel paging request at virtual address b9410a80aa13043f
[   18.119243] pgd = ffffffc87ad07000
[   18.122615] [b9410a80aa13043f] *pgd=0000000000000000, *pud=0000000000000000
[   18.129559] Internal error: Oops: 96000004 [#1] SMP
[   18.134420] Modules linked in:
[   18.137460] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.0 #78
[   18.143361] Hardware name: ZynqMP ZCU102 RevB (DT)
[   18.148136] task: ffffffc00224efc0 ti: ffffffc002240000 task.ti: ffffffc002240000
[   18.155613] PC is at xgpio_irqhandler+0x2c/0x144
[   18.160202] LR is at xgpio_irqhandler+0x1c/0x144
[   18.164801] pc : [<ffffffc0003c8ee0>] lr : [<ffffffc0003c8ed0>] pstate: 600001c5
[   18.172185] sp : ffffffc002243d00
[   18.175476] x29: ffffffc002243d00 x28: 0000000000000000 
[   18.180769] x27: 0000000000000000 x26: ffffffc0022c2000 
[   18.186063] x25: ffffffc00078acf0 x24: ffffff8000015000 
[   18.191358] x23: ffffffc0003c8eb4 x22: b9410a80aa1303f7 
[   18.196653] x21: 0000000000000000 x20: 0000000000000000 
[   18.201948] x19: ffffffc002227000 x18: 0000000000000001 
[   18.207242] x17: 0000000000000006 x16: ffffffbe1dae9f68 
[   18.212537] x15: ffffffc87b08f000 x14: 0000000000000007 
[   18.217832] x13: ffffffc87b801128 x12: 0000004000000000 
[   18.223127] x11: ffffffc002246000 x10: 00000000000006e0 
[   18.228422] x9 : ffffffc002243e70 x8 : ffffffc87b400058 
[   18.233716] x7 : ffffffc87b400d88 x6 : 0000000000000002 
[   18.239011] x5 : 00000000fffffffa x4 : ffffffc87b400d89 
[   18.244306] x3 : 0000000000000000 x2 : 0000000000000000 
[   18.249601] x1 : 0000000000000020 x0 : 0000000000000000 
[   18.254895] 
[   18.256373] Process swapper/0 (pid: 0, stack limit = 0xffffffc002240020)
[   18.263060] Stack: (0xffffffc002243d00 to 0xffffffc002244000)
[   18.268790] 3d00: ffffffc002243d50 ffffffc0000d1088 ffffffc002227000 0000000000000000
[   18.276609] 3d20: 0000000000000000 ffffffc002249040 ffffff8000014010 ffffffc0000d13cc
[   18.284421] 3d40: ffffffc002243d50 ffffffc0000d107c ffffffc002243d60 ffffffc0000d13a0
[   18.292232] 3d60: ffffffc002243da0 ffffffc000080cec ffffff800001400c ffffffc002279000
[   18.300045] 3d80: ffffffc002243de0 ffffffc0000e5ed0 ffffffc87b808000 00000079000ec410
[   18.307857] 3da0: ffffffc002243f00 ffffffc000083da8 ffffffc002240000 ffffffc002246000
[   18.315668] 3dc0: ffffffc002243f00 ffffffc000084e70 0000000060000145 ffffffc002228f40
[   18.323480] 3de0: 0000000000000000 0000000000000000 0000000000000001 0000000000000000
[   18.331292] 3e00: 0000000000000000 000000001999999a 002aad4b00000000 00000000fffeecaa
[   18.339104] 3e20: 00000000fffeecab ffffffc002243e70 00000000000006e0 ffffffc002246000
[   18.346916] 3e40: 0000004000000000 ffffffc87b801128 0000000000000007 ffffffc87b08f000
[   18.354729] 3e60: ffffffbe1dae9f68 0000000000000006 0000000000000001 ffffffc002240000
[   18.362541] 3e80: ffffffc002246000 ffffffc002246ad0 ffffffc0022259c0 ffffffc002243f20
[   18.370352] 3ea0: ffffffc002228f40 ffffffc00078acf0 ffffffc0022c2000 0000000000000000
[   18.378164] 3ec0: 0000000000000000 ffffffc002243f00 ffffffc000084e6c ffffffc002243f00
[   18.385977] 3ee0: ffffffc000084e70 0000000060000145 ffffffc00078acf0 ffffffc00077c278
[   18.393789] 3f00: ffffffc002243f10 ffffffc0000ca2e0 ffffffc002243f20 ffffffc0000ca418
[   18.401600] 3f20: ffffffc002243f90 ffffffc000779080 ffffffc0022c5000 ffffffc0022c5000
[   18.409413] 3f40: ffffffc0022c5000 ffffffc002246000 ffffffc87ffa2580 ffffffc000a6fca8
[   18.417224] 3f60: 000000000231c000 000000000231f000 ffffffc0000801d8 0000000000000000
[   18.425037] 3f80: ffffffc002243f90 ffffffc000779078 ffffffc002243fa0 ffffffc000a3d94c
[   18.432848] 3fa0: 0000000000000000 0000000000780000 0000000000000000 0000000000000e12
[   18.440660] 3fc0: 0000000004080000 0000000000000000 0000000000000000 0000000000000000
[   18.448472] 3fe0: 0000000000000000 ffffffc000a6fca8 0000000000000000 0000000000000000
[   18.456281] Call trace:
[   18.458707] [<ffffffc0003c8ee0>] xgpio_irqhandler+0x2c/0x144
[   18.464353] [<ffffffc0000d1088>] generic_handle_irq+0x24/0x38
[   18.470079] [<ffffffc0000d13a0>] __handle_domain_irq+0x60/0xac
[   18.475895] [<ffffffc000080cec>] gic_handle_irq+0x60/0xb4
[   18.481274] Exception stack(0xffffffc002243db0 to 0xffffffc002243ed0)
[   18.487699] 3da0:                                   ffffffc002240000 ffffffc002246000
[   18.495518] 3dc0: ffffffc002243f00 ffffffc000084e70 0000000060000145 ffffffc002228f40
[   18.503329] 3de0: 0000000000000000 0000000000000000 0000000000000001 0000000000000000
[   18.511142] 3e00: 0000000000000000 000000001999999a 002aad4b00000000 00000000fffeecaa
[   18.518954] 3e20: 00000000fffeecab ffffffc002243e70 00000000000006e0 ffffffc002246000
[   18.526766] 3e40: 0000004000000000 ffffffc87b801128 0000000000000007 ffffffc87b08f000
[   18.534578] 3e60: ffffffbe1dae9f68 0000000000000006 0000000000000001 ffffffc002240000
[   18.542390] 3e80: ffffffc002246000 ffffffc002246ad0 ffffffc0022259c0 ffffffc002243f20
[   18.550202] 3ea0: ffffffc002228f40 ffffffc00078acf0 ffffffc0022c2000 0000000000000000
[   18.558013] 3ec0: 0000000000000000 ffffffc002243f00
[   18.562868] [<ffffffc000083da8>] el1_irq+0x68/0xc0
[   18.567643] [<ffffffc0000ca2e0>] default_idle_call+0x1c/0x30
[   18.573284] [<ffffffc0000ca418>] cpu_startup_entry+0x124/0x1dc
[   18.579101] [<ffffffc000779080>] rest_init+0x74/0x7c
[   18.584049] [<ffffffc000a3d94c>] start_kernel+0x394/0x3a8
[   18.589427] [<0000000000780000>] 0x780000
[   18.593421] Code: b4000820 f9400800 f9400414 f9401ef6 (f94026c0) 
[   18.599503] ---[ end trace fc72e20977be1640 ]---
[   18.604096] Kernel panic - not syncing: Fatal exception in interrupt
[   18.610435] CPU3: stopping
[   18.613125] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G      D         4.4.0 #78
[   18.620241] Hardware name: ZynqMP ZCU102 RevB (DT)
[   18.625013] Call trace:
[   18.627447] [<ffffffc000087da8>] dump_backtrace+0x0/0x114
[   18.632829] [<ffffffc000087ed0>] show_stack+0x14/0x1c
[   18.637865] [<ffffffc000393cf8>] dump_stack+0x84/0xa0
[   18.642897] [<ffffffc00008d4cc>] handle_IPI+0x18c/0x1a0
[   18.648104] [<ffffffc000080d28>] gic_handle_irq+0x9c/0xb4
[   18.653486] Exception stack(0xffffffc87b8efdf0 to 0xffffffc87b8eff10)
[   18.659910] fde0:                                   ffffffc87b8ec000 ffffffc002246000
[   18.667730] fe00: ffffffc87b8eff40 ffffffc000084e70 0000000060000145 ffffffc002228f40
[   18.675541] fe20: 0000000000000000 0000000000000000 0000000000000001 0000000000000000
[   18.683353] fe40: 0000000000000000 000000001999999a 000a037a00000000 00000000fffeed1b
[   18.691165] fe60: 00000000fffeed1c ffffffc87b8efeb0 00000000000006e0 0000000000000005
[   18.698977] fe80: ffffffc00078b5d4 ffffffc073ad7b80 ffffffc87b325380 ffffffc87ba30000
[   18.706789] fea0: ffffffbe1db0baa0 0000000000000006 0000000000000001 ffffffc87b8ec000
[   18.714601] fec0: ffffffc002246000 ffffffc002246ad0 ffffffc0022259c0 ffffffc87b8eff60
[   18.722413] fee0: ffffffc002228f40 ffffffc00078acf0 ffffffc0022c2000 0000000000000000
[   18.730224] ff00: 0000000000000000 ffffffc87b8eff40
[   18.735078] [<ffffffc000083da8>] el1_irq+0x68/0xc0
[   18.739853] [<ffffffc0000ca2e0>] default_idle_call+0x1c/0x30
[   18.745496] [<ffffffc0000ca418>] cpu_startup_entry+0x124/0x1dc
[   18.751310] [<ffffffc00008cfcc>] secondary_start_kernel+0x11c/0x140
[   18.757559] [<000000000008103c>] 0x8103c
[   18.761464] CPU2: stopping
[   18.764157] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G      D         4.4.0 #78
[   18.771273] Hardware name: ZynqMP ZCU102 RevB (DT)
[   18.776045] Call trace:
[   18.778479] [<ffffffc000087da8>] dump_backtrace+0x0/0x114
[   18.783861] [<ffffffc000087ed0>] show_stack+0x14/0x1c
[   18.788895] [<ffffffc000393cf8>] dump_stack+0x84/0xa0
[   18.793929] [<ffffffc00008d4cc>] handle_IPI+0x18c/0x1a0
[   18.799136] [<ffffffc000080d28>] gic_handle_irq+0x9c/0xb4
[   18.804518] Exception stack(0xffffffc87b8ebdf0 to 0xffffffc87b8ebf10)
[   18.810942] bde0:                                   ffffffc87b8e8000 ffffffc002246000
[   18.818762] be00: ffffffc87b8ebf40 ffffffc000084e70 0000000060000145 ffffffc002228f40
[   18.826573] be20: 0000000000000000 0000000000000000 0000000000000001 0000000000000000
[   18.834385] be40: 0000000000000000 000000001999999a 000f424000000000 00000000fffeed31
[   18.842197] be60: 00000000fffeed32 ffffffc87b8ebeb0 00000000000006e0 ffffffc002246000
[   18.850009] be80: 0000004000000000 ffffffc87b801128 000000000000001c ffffffc87ac9c000
[   18.857821] bea0: ffffffbe1dadc240 0000000000000006 0000000000000001 ffffffc87b8e8000
[   18.865633] bec0: ffffffc002246000 ffffffc002246ad0 ffffffc0022259c0 ffffffc87b8ebf60
[   18.873445] bee0: ffffffc002228f40 ffffffc00078acf0 ffffffc0022c2000 0000000000000000
[   18.881256] bf00: 0000000000000000 ffffffc87b8ebf40
[   18.886110] [<ffffffc000083da8>] el1_irq+0x68/0xc0
[   18.890885] [<ffffffc0000ca2e0>] default_idle_call+0x1c/0x30
[   18.896527] [<ffffffc0000ca418>] cpu_startup_entry+0x124/0x1dc
[   18.902342] [<ffffffc00008cfcc>] secondary_start_kernel+0x11c/0x140
[   18.908591] [<000000000008103c>] 0x8103c
[   18.912496] CPU1: stopping
[   18.915188] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D         4.4.0 #78
[   18.922305] Hardware name: ZynqMP ZCU102 RevB (DT)
[   18.927077] Call trace:
[   18.929511] [<ffffffc000087da8>] dump_backtrace+0x0/0x114
[   18.934893] [<ffffffc000087ed0>] show_stack+0x14/0x1c
[   18.939927] [<ffffffc000393cf8>] dump_stack+0x84/0xa0
[   18.944961] [<ffffffc00008d4cc>] handle_IPI+0x18c/0x1a0
[   18.950168] [<ffffffc000080d28>] gic_handle_irq+0x9c/0xb4
[   18.955550] Exception stack(0xffffffc87b8e3df0 to 0xffffffc87b8e3f10)
[   18.961974] 3de0:                                   ffffffc87b8e0000 ffffffc002246000
[   18.969794] 3e00: ffffffc87b8e3f40 ffffffc000084e70 0000000060000145 ffffffc002228f40
[   18.977605] 3e20: 0000000000000000 0000000000000000 0000000000000001 0000000000000000
[   18.985417] 3e40: 0000000000000000 000000001999999a 000cdfe600000000 00000000fffeed27
[   18.993229] 3e60: 00000000fffeed28 ffffffc87b8e3eb0 00000000000006e0 ffffffc002246000
[   19.001041] 3e80: 0000004000000000 ffffffc87b801128 000000000000000e ffffffc87b3de000
[   19.008853] 3ea0: ffffffbe1daf58b0 0000000000000006 0000000000000001 ffffffc87b8e0000
[   19.016665] 3ec0: ffffffc002246000 ffffffc002246ad0 ffffffc0022259c0 ffffffc87b8e3f60
[   19.024477] 3ee0: ffffffc002228f40 ffffffc00078acf0 ffffffc0022c2000 0000000000000000
[   19.032288] 3f00: 0000000000000000 ffffffc87b8e3f40
[   19.037142] [<ffffffc000083da8>] el1_irq+0x68/0xc0
[   19.041917] [<ffffffc0000ca2e0>] default_idle_call+0x1c/0x30
[   19.047559] [<ffffffc0000ca418>] cpu_startup_entry+0x124/0x1dc
[   19.053374] [<ffffffc00008cfcc>] secondary_start_kernel+0x11c/0x140
[   19.059623] [<000000000008103c>] 0x8103c
[   19.063529] ---[ end Kernel panic - not syncing: Fatal exception in interrupt
root@Xilinx-ZCU102-2016#1:~#[18.111391]无法处理虚拟地址b9410a80aa13043f处的内核分页请求
[18.119243]pgd=FFFFFF C87AD07000
[18.122615][b9410a80aa13043f]*pgd=0000000000000000000000,*pud=0000000000000000000000
[18.129559]内部错误:Oops:96000004[#1]SMP
[18.134420]模块链接到:
[18.137460]CPU:0 PID:0通信:交换程序/0未受污染4.4.0#78
[18.143361]硬件名称:ZynqMP ZCU102 RevB(DT)
[18.148136]任务:FFFFFF C00224EFC0 ti:FFFFFF C002240000任务。ti:FFFFFF C002240000
[18.155613]PC位于xgpio_irqhandler+0x2c/0x144
[18.160202]LR位于xgpio_irqhandler+0x1c/0x144处
[18.164801]pc:[]lr:[]pstate:600001c5
[18.172185]sp:FFFFFF C002243D00
[18.175476]x29:FFFFFF C002243D00 x28:0000000000000000
[18.180769]x27:0000000000000000 x26:FFFFFF C0022C2000
[18.186063]x25:FFFFFF C00078ACF0 x24:FFFFFF 8000015000
[18.191358]x23:FFFFFF C0003C8EB4 x22:b9410a80aa1303f7
[18.196653]x21:0000000000000000 x20:0000000000000000
[18.201948]x19:FFFFFF C002227000 x18:000000000000000 1
[18.207242]x17:0000000000000006 x16:FFFFFF BE1DAE9F68
[18.212537]x15:FFFFFF C87B08F000 x14:0000000000000000007
[18.217832]x13:FFFFFF C87B801128 x12:0000004000000000
[18.223127]x11:FFFFFF C002246000 x10:0000000000000 6E0
[18.228422]x9:FFFFFF C002243E70 x8:FFFFFF C87B400058
[18.233716]x7:FFFFFF C87B400D88 x6:0000000000000002
[18.239011]x5:00000000 FFFFFFF A x4:FFFFFF C87B400D89
[18.244306]x3:0000000000000000 x2:0000000000000000
[18.249601]x1:00000000000000 20 x0:0000000000000000
[   18.254895] 
[18.256373]进程交换程序/0(pid:0,堆栈限制=0xFFFFC002240020)
[18.263060]堆栈:(0xffffffc002243d00到0xffffffc002244000)
[18.268790]3d00:FFFFFF C002243D50 FFFFFF C0000D1088 FFFFFF C002227000000000000000000
[18.276609]3d20:0000000000000000 FFFFFF C002249040 FFFFFF 8000014010 FFFFFF C0000D13CC
[18.284421]3d40:FFFFFF C002243D50 FFFFFF C0000D107C FFFFFF C002243D60 FFFFFF C0000D13A0
[18.292232]3d60:FFFFFF C002243DA0 FFFFFF C000080CEC FFFFFF 800001400C FFFFFF C002279000
[18.300045]3d80:FFFFFF C002243DE0 FFFFFF C0000E5ED0 FFFFFF C87B808000 000000 79000EC410
[18.307857]3da0:FFFFFF C002243F00 FFFFFF C000083DA8 FFFFFF C002240000 FFFFFF C002246000
[18.315668]3dc0:FFFFFF C002243F00 FFFFFF C000084E70 00000000 60000145 FFFFFF C002228F40
[18.323480]3de0:00000000000000000000000000000000000000000001 0000000000000000000000
[18.331292]3e00:00000000000000000000000000 199999A 002AD4B00000000000000000000 FFFEECAA
[18.339104]3e20:00000000 FFFEECAB FFFFFF C002243E70 0000000000000 6E0 FFFFFFFF C002246000
[18.346916]3e40:0000004000000000 FFFFFF C87B801128 0000000000000007 FFFFFF C87B08F000
[18.354729]3e60:ffffffbe1dae9f68 0000000000000006 0000000000000001 ffffffc002240000
[18.362541]3e80:FFFFFF C002246000 FFFFFF C002246AD0 FFFFFF C0022259C0 FFFFFF C002243F20
[18.370352]3ea0:FFFFFF C002228F40 FFFFFF C00078ACF0 FFFFFF C0022C2000 0000000000000000
[18.378164]3ec0:0000000000000000 FFFFFF C002243F00 FFFFFF C000084E6C FFFFFF C002243F00
[18.385977]3ee0:FFFFFF C000084E70 00000000 60000145 FFFFFF C00078ACF0 FFFFFF C00077C278
[18.393789]3f00:FFFFFF C002243F10 FFFFFF C0000CA2E0 FFFFFF C002243F20 FFFFFF C0000CA418
[18.401600]3f20:FFFFFF C002243F90 FFFFFF C000779080 FFFFFF C0022C5000 FFFFFF C0022C5000
[18.409413]3f40:FFFFFF C0022C5000 FFFFFF C002246000 FFFFFF C87FFA2580 FFFFFF C000A6FCA8
[18.417224]3f60:000000000 231C000 000000000 231F000 FFFFFF C0000801D8 0000000000000000
[18.425037]3f80:FFFFFF C002243F90 FFFFFF C000779078 FFFFFF C002243FA0 FFFFFF C000A3D94C
[18.432848]3fa0:00000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000000000000000000000 E12
[18.440660]3fc0:000000000 408000000000000000000000000000000000000000000000000
[18.448472]3fe0:0000000000000000 FFFFFF C000A6FCA8 0000000000000000000000000000
[18.456281]呼叫跟踪:
[18.458707][]xgpio_irqhandler+0x2c/0x144
[18.464353][]通用句柄irq+0x24/0x38
[18.470079][]句柄域irq+0x60/0xac
[18.475895][]gic_手柄_irq+0x60/0xb4
[18.481274]异常堆栈(0xFFFFC002243DB0到0xffffffc002243ed0)
[18.487699]3da0:FFFFFF C002240000 FFFFFF C002246000
[18.495518]3dc0:FFFFFF C002243F00 FFFFFF C000084E70 00000000 60000145 FFFFFF C002228F40
[18.503329]3de0:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[18.511142]3e00:00000000000000000000 199999A 002AD4B00000000 00000000 FFFEECAA
[18.518954]3e20:00000000 FFFEECAB FFFFFF C002243E70 0000000000000 6E0 FFFFFFFF C002246000
[18.526766]3e40:0000004000000000 FFFFFF C87B801128 0000000000000007 FFFFFF C87B08F000
[18.534578]3e60:ffffffbe1dae9f68 0000000000000006 0000000000000001 ffffffc002240000
[18.542390]3e80:FFFFFF C002246000 FFFFFF C002246AD0 FFFFFF C0022259C0 FFFFFF C002243F20
[18.550202]3ea0:FFFFFF C002228F40 FFFFFF C00078ACF0 FFFFFF C0022C2000 0000000000000000
[18.558013]3ec0:0000000000000000 FFFFFF C002243F00
[18.562868][]el1_irq+0x68/0xc0
[18.567643][]默认空闲调用+0x1c/0x30
[18.573284][]cpu启动项+0x124/0x1dc
[18.579101][]rest_init+0x74/0x7c
[18.584049][]启动内核+0x394/0x3a8
[18.589427][]0x780000
[18.593421]代码:b4000820 f9400800 f9400414 f9401ef6(f94026c0)
[18.599503]--[end trace fc72e20977be1640]---
[18.604096]内核死机-不同步:中断中出现致命异常
[18.610435]CPU3:停止
[18.613125]CPU:3 PID:0通信:交换程序/3受污染:G D
/ {
    amba_pl: amba_pl {
        #address-cells = <2>;
        #size-cells = <2>;
        compatible = "simple-bus";
        ranges ;        
        axi_gpio_0: gpio@80000000 {
            #gpio-cells = <2>;
            #interrupt-cells = <2>;
            compatible = "xlnx,xps-gpio-1.00.a";
            gpio-controller ;
            interrupt-controller ;
            interrupt-parent = <&gic>;
            interrupts = <0 89 1>;
            reg = <0x0 0x80000000 0x0 0x10000>;
            xlnx,all-inputs = <0x1>;
            xlnx,all-inputs-2 = <0x0>;
            xlnx,all-outputs = <0x0>;
            xlnx,all-outputs-2 = <0x0>;
            xlnx,dout-default = <0x00000000>;
            xlnx,dout-default-2 = <0x00000000>;
            xlnx,gpio-width = <0x8>;
            xlnx,gpio2-width = <0x20>;
            xlnx,interrupt-present = <0x1>;
            xlnx,is-dual = <0x0>;
            xlnx,tri-default = <0xFFFFFFFF>;
            xlnx,tri-default-2 = <0xFFFFFFFF>;
        };
        gpio-keys {
            compatible = "gpio-keys";
            #address-cells = <1>;
            #size-cells = <0>;
            autorepeat;
            sw14 {
            label = "sw14";
            gpios = <&axi_gpio_0 0 0>;
            linux,code = <108>; /* down */
            gpio-key,wakeup;
            autorepeat;
            };
        };
        axi_gpio_1: gpio@80010000 {
            #gpio-cells = <2>;
            compatible = "xlnx,xps-gpio-1.00.a";
            gpio-controller ;
            reg = <0x0 0x80010000 0x0 0x10000>;
            xlnx,all-inputs = <0x0>;
            xlnx,all-inputs-2 = <0x0>;
            xlnx,all-outputs = <0x1>;
            xlnx,all-outputs-2 = <0x0>;
            xlnx,dout-default = <0x00000000>;
            xlnx,dout-default-2 = <0x00000000>;
            xlnx,gpio-width = <0x8>;
            xlnx,gpio2-width = <0x20>;
            xlnx,interrupt-present = <0x0>;
            xlnx,is-dual = <0x0>;
            xlnx,tri-default = <0xFFFFFFFF>;
            xlnx,tri-default-2 = <0xFFFFFFFF>;
        };

        gpio-leds {
            compatible = "gpio-leds";
            led-ds23 {
            label = "led-ds23";
            gpios = <&axi_gpio_1 0 0>;
            default-state = "on";
            linux,default-trigger = "heartbeat";
            };
        };
    };
};