I was able to narrow down the problem to the linux,code
value. The kernel is not able to read the device tree correctly and cannot get a keycode. This means that gpio-keys errors out and the input device is never created.
For test purposes I was able to hardcode the linux,code
values in the kernel source and that results in working gpio-keys but it is not really a solution.
Another interesting observation that may be helpful: The Wake On Lan button and the power button I am trying to add exercise a very similar code path in the kernel. If WOL works, power button should work too. A forum search produced this post but unfortunately the patch link no longer works. I see that the branch has been deleted and I can no longer find the hash. Could you help?