You should be looking at two separate aspects: the parallel port architecture (assuming you mean some kind of PC architecture host), and kernel module programming. You can find numerous decent sources of information about the PC parallel port online. A Google search for 'parallel port tutorial' yielded several applicable hits.
The definitive resource for Linux kernel device driver programming is
Linux Device Drivers, which is available online.
You can experiment from userspace applications, using the
ioperm() + inb()/outb() (requires root permissions) functions to exercise your hardware. In fact, if root access isn't an obstacle, you may find it completely adequate to build your entire application as a userspace driver. There are only three IO ports to access. If you only want to use the eight output data bits to drive your LEDs, then you may be able to simply use existing drivers to access the hardware, without requiring root privileges.
--- rod.