Skip to content

Commit

Permalink
gnss: add driver for sirfstar-based receivers
Browse files Browse the repository at this point in the history
Add driver for serial-connected SiRFstar-based GNSS receivers.

These devices typically boot into hibernate mode from which they can be
woken using a pulse on the ON_OFF input pin. Once active, a pulse on the
same ON_OFF pin is used to put the device back into hibernate mode. The
current state can be determined by sampling the WAKEUP output.

Hardware configurations where WAKEUP has been connected to ON_OFF (and
where an initial WAKEUP pulse during boot is sufficient to have the
device boot into active mode) are also supported. In this case, device
power is managed using the main-supply regulator only.

Note that configurations where WAKEUP is left not connected, so that the
device power state can only indirectly be determined using the I/O
interface, is currently not supported. It should be fairly
straight-forward to extend the current implementation with such support
however (and this this is the main reason for not using the generic
serial implementation for this driver).

Note that timepulse-support is left unimplemented.

Signed-off-by: Johan Hovold <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
jhovold authored and gregkh committed Jun 28, 2018
1 parent 176193b commit d2efbbd
Show file tree
Hide file tree
Showing 3 changed files with 422 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/gnss/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,18 @@ if GNSS
config GNSS_SERIAL
tristate

config GNSS_SIRF_SERIAL
tristate "SiRFstar GNSS receiver support"
depends on SERIAL_DEV_BUS
---help---
Say Y here if you have a SiRFstar-based GNSS receiver which uses a
serial interface.

To compile this driver as a module, choose M here: the module will
be called gnss-sirf.

If unsure, say N.

config GNSS_UBX_SERIAL
tristate "u-blox GNSS receiver support"
depends on SERIAL_DEV_BUS
Expand Down
3 changes: 3 additions & 0 deletions drivers/gnss/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,8 @@ gnss-y := core.o
obj-$(CONFIG_GNSS_SERIAL) += gnss-serial.o
gnss-serial-y := serial.o

obj-$(CONFIG_GNSS_SIRF_SERIAL) += gnss-sirf.o
gnss-sirf-y := sirf.o

obj-$(CONFIG_GNSS_UBX_SERIAL) += gnss-ubx.o
gnss-ubx-y := ubx.o
Loading

0 comments on commit d2efbbd

Please sign in to comment.