I haven't tried this on Edison, but normally when you plug a USB joystick into a linux machine, a node is created at /dev/js1 (or similar) and then you can use normal "read" code to read events from the joystick.
You could put the read loop in a separate thread and post callbacks to your main thread.
This message was posted on behalf of Intel Corporation
Thanks for your interest in the Intel® Edison™ Platform.
Unfortunately, there isn't a guide explaining how to use interrupts with a Joystick. Nevertheless, I did some research on my own and I found this video Episode 8 | Using a Joystick with Intel® Edison Technology | Intel® Software that shows how to set up a joystick with the Intel® Edison.
Maybe you can use this video and the suggestion provided by SpiderKenny as reference in order to achieve your project goals.
Hope you find this information useful, have a nice day!
Thank you Keeny for the reply. Will check the read and post to callback route using Python