This page is about one of simplest useful do-it-yourself devices, IR receiver. See circut diagrams at Igor Cesko's page. It might even work without that capacitor, it does for me!

But LIRC already supports this! Why are you reimplementing stuff?
For fun, education and because setting up LIRC can be a bit tricky.

homebrew_ir.c contains code (little compared to lirc_serial) needed for operation, it also supports hot-adding (but not removing) of IR devices by setting /sys/module/homebrew_ir/{io,irq} and then writing anything to "probe".
Userspace stuff, test.c, kind of works, but it became very ugly when I started playing with saving/restoring remote's parameters. I have no interest in finishing this part, it became too boring and ugly.

Sources?
Sure, here

What now?
I have to trick somebody into adding support to lircd for this simple kernel driver, and then it might even be merged in the mainline kernel.