On Wed, Apr 03, 2013 at 06:12:42PM -0700, Marcel Holtmann wrote: > Hi Greg, > > >> I've been approached by a developer at Sony who wants to publish an > >> open source driver for a Sony GPS receiver module. > > > > What does the device look like? USB device? UART? Something else? > > > >> I've looked in the kernel source, and only see one standalone GPS > >> driver, for Garmin. It appears that most GPS support in Linux is done > >> via user-space drivers. Many GPS hardware modules appear to be > >> accessed via a serial line, or USB/serial port. The Sony > >> module is pretty much the same, accepting commands and delivering > >> data via a uart from the chip. > >> > >> I planning to recommend writing a user-space driver (based on > >> gpsd and/or the Android GPS HAL specification). But I'm worried > >> I'm missing something. Is this the correct approach, or is there > >> an established kernel API for GPS modules - such that I should > >> recommend that this developer writes a kernel module instead > >> of, or in addition to, the user-space support for the hardware? > > > > If it's just a uart-like device, just write a serial driver and drive it > > from gpsd. That way seems to be the simplest and then the kernel just > > becomes a dumb-pipe, which is fine. > > the one thing that still bugs me is that detecting an UART with GPS > functionality behind it is extremely bad experience. If we could get > something like DEVTYPE=gps support for the TTY layer, that would be > helpful.
I would love that, but there's tons of USB gps devices that we don't know if they are a USB serial device, or a GPS device as the device id is the same (companies just embed a usb to serial chip in their devices.) So, someone has to guess, right now it's userspace. Unless you have a better idea? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/