Konrad has a few more hints on this .. Konrad?
Well, no, I don't. It can't be written more on this, than you did. Anything that accesses hardware and deal with hardware interrupts, should be the kernel. So, a device driver is needed, if current kernel services are not enough.