This is a simple custom gpio interface and gpio driver.
You may find the component by cloning this git repo, git://sopc.et.ntust.edu.tw/git/openip.git
I have updated the neek_ocm_spi example hardware design in the nioswiki. I used a custom gpio core to control led0 and i2c ports on NEEK. The gpio core is also available on the openip.git of sopc server. It is simpler than altera PIO, and uses less LE. You can control quite a lot of port pins (tens or hundreds) in a single instance, much more than 32 as Altera PIO. It was designed exactly for the Linux GPIO driver. It does not support interrupts. I don't really think button switches need interrupts as the input layer support polling. I have tried directional buttons as gpio mouse like that of iPod.
I also tried i2c rtc on NEEK. You can add a four pin header to the i2c port on the NEEK, as pointed out in the nios wiki. Then you can connect a simple Maxim DS1338 chip with battery. It is not difficult. And it is very nice to have correct time mark on your local storage, be it mtd or sd card.
The WM8731 is on the i2c bus, with alsa soc driver in the mainline kernel. Though the support of nios2/neek is still on the wish list.