| 0cbbbe09 | 13-Nov-2023 |
Wolfram Sang <[email protected]> |
gnss: ubx: add support for the reset gpio
The Renesas KingFisher board includes a U-Blox Neo-M8 chip. This chip has a reset pin which is also wired on the board. When Linux starts, reset is asserted
gnss: ubx: add support for the reset gpio
The Renesas KingFisher board includes a U-Blox Neo-M8 chip. This chip has a reset pin which is also wired on the board. When Linux starts, reset is asserted by the firmware. Deassert the reset pin when probing this driver.
Signed-off-by: Wolfram Sang <[email protected]> Reviewed-by: Geert Uytterhoeven <[email protected]> [ johan: rename gpio descriptor variable ] Signed-off-by: Johan Hovold <[email protected]>
show more ...
|
| 547d2167 | 20-Dec-2021 |
Johan Hovold <[email protected]> |
gnss: usb: add support for Sierra Wireless XM1210
Add support for the USB interface of the Sierra Wireless XM1210 receiver.
Note that the device only supports NMEA.
Bus 002 Device 003: ID 1199:b00
gnss: usb: add support for Sierra Wireless XM1210
Add support for the USB interface of the Sierra Wireless XM1210 receiver.
Note that the device only supports NMEA.
Bus 002 Device 003: ID 1199:b000 Sierra Wireless, Inc. Sierra Wireless_GNSS Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x1199 Sierra Wireless, Inc. idProduct 0xb000 bcdDevice 0.01 iManufacturer 1 Sierra-wireless iProduct 2 Sierra Wireless_GNSS iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0020 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 50mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 0 bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 255 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 255 can't get debug descriptor: Resource temporarily unavailable Device Status: 0x0001 Self Powered
Reported-by: Marc Ferland <[email protected]> Link: https://lore.kernel.org/r/[email protected] Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Greg Kroah-Hartman <[email protected]> Tested-by: Marc Ferland <[email protected]> Signed-off-by: Johan Hovold <[email protected]>
show more ...
|
| 9b5816b5 | 07-May-2020 |
Gustavo A. R. Silva <[email protected]> |
gnss: replace zero-length array with flexible-array
The current codebase makes use of the zero-length array language extension to the C90 standard, but the preferred mechanism to declare variable-le
gnss: replace zero-length array with flexible-array
The current codebase makes use of the zero-length array language extension to the C90 standard, but the preferred mechanism to declare variable-length types such as these ones is a flexible array member[1][2], introduced in C99:
struct foo { int stuff; struct boo array[]; };
By making use of the mechanism above, we will get a compiler warning in case the flexible array does not occur last in the structure, which will help us prevent some kind of undefined behavior bugs from being inadvertently introduced[3] to the codebase from now on.
Also, notice that, dynamic memory allocations won't be affected by this change:
"Flexible array members have incomplete type, and so the sizeof operator may not be applied. As a quirk of the original implementation of zero-length arrays, sizeof evaluates to zero."[1]
sizeof(flexible-array-member) triggers a warning because flexible array members have incomplete type[1]. There are some instances of code in which the sizeof operator is being incorrectly/erroneously applied to zero-length arrays and the result is zero. Such instances may be hiding some bugs. So, this work (flexible-array member conversions) will also help to get completely rid of those sorts of issues.
This issue was found with the help of Coccinelle.
[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html [2] https://github.com/KSPP/linux/issues/21 [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")
Signed-off-by: Gustavo A. R. Silva <[email protected]> Signed-off-by: Johan Hovold <[email protected]>
show more ...
|
| d4584bbf | 13-Feb-2019 |
Loys Ollivier <[email protected]> |
gnss: add driver for mediatek receivers
Add driver for serial-connected Mediatek-based GNSS receivers.
These devices typically boot transmitting vendor specific NMEA output sequences. The serial po
gnss: add driver for mediatek receivers
Add driver for serial-connected Mediatek-based GNSS receivers.
These devices typically boot transmitting vendor specific NMEA output sequences. The serial port bit rate is read from the device tree "current-speed".
Note that the driver uses the generic GNSS serial implementation and therefore essentially only manages power abstracted into three power states: ACTIVE, STANDBY, and OFF.
For mediatek receivers with a main supply and no enable-gpios, this simply means that the main supply is disabled in STANDBY and OFF (the optional backup supply is kept enabled while the driver is bound).
Note that the timepulse-support is left unimplemented.
Signed-off-by: Loys Ollivier <[email protected]> [ johan: rename backup supply ] Signed-off-by: Johan Hovold <[email protected]>
show more ...
|
| ccd0e496 | 24-Jan-2019 |
Andreas Kemnade <[email protected]> |
gnss: sirf: add support for configurations without wakeup signal
Some Wi2Wi devices do not have a wakeup output, so device state can only be indirectly detected by looking whether there is communica
gnss: sirf: add support for configurations without wakeup signal
Some Wi2Wi devices do not have a wakeup output, so device state can only be indirectly detected by looking whether there is communication over the serial lines. This approach requires a report cycle set to a value less than 2 seconds to be reliable.
Signed-off-by: Andreas Kemnade <[email protected]> [ johan: simplify sirf_set_active(), style changes ] Signed-off-by: Johan Hovold <[email protected]>
show more ...
|
| 196d9184 | 24-Jan-2019 |
Andreas Kemnade <[email protected]> |
gnss: sirf: write data to gnss only when the gnss device is open
The api forbids writing data there otherwise. Prepare for the serdev_open()/close() being a part of sirf_set_active.
Signed-off-by:
gnss: sirf: write data to gnss only when the gnss device is open
The api forbids writing data there otherwise. Prepare for the serdev_open()/close() being a part of sirf_set_active.
Signed-off-by: Andreas Kemnade <[email protected]> Signed-off-by: Johan Hovold <[email protected]>
show more ...
|
| 4ceda5f6 | 22-Jan-2019 |
Johan Hovold <[email protected]> |
gnss: sirf: force hibernate mode on probe
Make sure to put the receiver in hibernate mode in case it is already active during probe in order to avoid wasting power until first open or suspend.
This
gnss: sirf: force hibernate mode on probe
Make sure to put the receiver in hibernate mode in case it is already active during probe in order to avoid wasting power until first open or suspend.
This can happen, for example, after a reset or non-clean shutdown, and possibly also due to glitches during power-on.
Reported-by: Andreas Kemnade <[email protected]> Signed-off-by: Johan Hovold <[email protected]>
show more ...
|