The description "userspace kernel module" is a contradiction in terms: Either something runs in userspace, or it runs in the kernel, but it can't run in either, and you can't run kernel modules in userspace.
That said, it's possible to write device drivers in userspace, by making use of quite general kernel APIs (which run in kernel space, no matter if they are modules or not), and implementing the actual device driver functionality in userspace. Device drivers using
i2cdev are such examples: they use a library to access well-known kernel APIs, or access the APIs directly, but the device driver logic runs in userspace.
Another, similar example is fuse: using fixed kernel APIs, you can implement your own filesystem in userspace.
So if you want examples, google for device drivers using those APIs. But they will still be example of "user space device drivers", not "userspace kernel device drivers", so I'm not sure if this is what you want.
If you want to write something that runs in kernel space, you need to learn how to write a kernel module.