cool, that's good news.. makes life easier
ok, you wont be able to 'migrate the software' , as the device structure on Linux is very different....
what I would do is...
largely, ignore the low level usb part of the code, what your looking for is 3 bits code of code:
i) initialisation
often usb devices have some kind of handshake, startup procedure, this can be as simple as recognising the device/model and telling it to start sending data, all the way to downloading firmware to it.
.. the point is, often without that initialisation sequence, the device wont send anything. so this has to be your first step
ii) protocol encoding/decoding
basically, the low level code (which cant be ported) will allow data to be sent to the device, and received from it... it'll then be passed to another bit of code, to handle the data... this is where you'll be able to see the protocol, and might even be able to reuse bits of the code (with some modification)
... once you have this, you should be able to 'see' the raw data
iii) driver capabilities
often, not always, the raw data then has to be massaged to be useable, this can be anything from simple (or complex) filtering... to adding various 'capabilities' (eg switching modes).
obviously this varies enormously between devices, some will do more of this in firmware/hardware, others will have pretty 'dumb' hardware, and do lots of stuff in software.
(also its where, open source drivers often vary from the OEM driver)
of course, the other bit, as mentioned before, is getting familiar with how usb data is sent/received on Axoloti, by looking at other drivers... this is pretty simple for synchronous devices like these.
btw... also what I like to do, is have the open source driver running on Linux (even if only in a VM), this makes it easier to check the code is doing what you think its doing... you can even build a modified version of the driver (with debug code) to check if your unsure.
ps. I had a quick look at the above driver, and your in luck because it appears to be cross-platform, that makes it much , since they already have had to abstract the low level layer, to make it work across platforms.. or in other words, your task is to add an additional platform.