Input device init is pretty straightforward and looks quite similar between DDXes. It's basically optionally figure out your input devices from configuration,
mieqInit, call all the constructors, then finalize. There's some minor divergence from that pattern, but nothing insurmountable.
The idea then is to haul
InitInput up to DIX and define API for a server to add configured devices.