I got answer from Device driver book Ldd3 by Rubini sample code.
scull driver which creates scullpipe has poll implemented.
Now in my case,
User space application poll function call will reach device driver poll function, which can block on queue using poll_wait function call. Kernel thread can write to this queue and poll can be unblocked.
Ldd3 sample code which is compilable in latest kernel version can be found at below path.