Uloop for non socket reads

Hi.
Can I use uloop_fd to register callback for non socket file descriptor read.
In my case I'm trying to read keyboard via libinput:

struct uloop_fd li_fd;
main(){
...
    li_fd.fd = libinput_get_fd( li );
    li_fd.cb = process_key_events;
	uloop_fd_add ( &li_fd, ULOOP_READ );
...
}

Thanks.