There seems to be a large number of drivers or parts of drivers written for specific GPS devices, however there are several libraries in linux that provide GPS support with a common interface - gpsd being one.
It shouldn't be hard to write a driver that exposes GPS properties and backs onto gpsd.
The gpsd service encapsulates almost every gps device under the sun.
There is even support for the PPS signal for precision timing.
There is really no point in writing separate drivers for gps devices
at least for unix-like systems. It is also a core of the gps support in android.
Since I am initial author of the gpsd driver I would welcome suggestions for
improvement/patches. I think that the piface gps driver should be merged as well to minimize the confusion.