From: Alejandro Enrique <alejandroe1@geotab.com>
U-Blox M8/M9 chip have a pin to start it in safeboot mode, to be used
to recover from situations where the flash content has become
corrupted and needs to be restored. If this pin is asserted at power
up/reset, the receiver starts in safeboot mode and GNSS operation is
disabled.
Deassert the safeboot pin when probing this driver.
Signed-off-by: Alejandro Enrique <alejandroe1@geotab.com>
---
drivers/gnss/ubx.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/gnss/ubx.c b/drivers/gnss/ubx.c
index 92402f6082c415c7b9051338eef5406b09e09455..1d6acace84f76f8d5d2eacdbbf5ab7a934b33486 100644
--- a/drivers/gnss/ubx.c
+++ b/drivers/gnss/ubx.c
@@ -67,6 +67,7 @@ static int ubx_probe(struct serdev_device *serdev)
{
struct gnss_serial *gserial;
struct gpio_desc *reset;
+ struct gpio_desc *safeboot;
struct ubx_data *data;
int ret;
@@ -82,6 +83,13 @@ static int ubx_probe(struct serdev_device *serdev)
data = gnss_serial_get_drvdata(gserial);
+ /* Deassert safeboot */
+ safeboot = devm_gpiod_get_optional(&serdev->dev, "safeboot", GPIOD_OUT_LOW);
+ if (IS_ERR(safeboot)) {
+ ret = PTR_ERR(safeboot);
+ goto err_free_gserial;
+ }
+
data->vcc = devm_regulator_get(&serdev->dev, "vcc");
if (IS_ERR(data->vcc)) {
ret = PTR_ERR(data->vcc);
--
2.34.1
On Wed, May 14, 2025 at 03:54:42PM GMT, Alejandro Enrique wrote: > U-Blox M8/M9 chip have a pin to start it in safeboot mode, to be used > to recover from situations where the flash content has become > corrupted and needs to be restored. If this pin is asserted at power > up/reset, the receiver starts in safeboot mode and GNSS operation is > disabled. > > Deassert the safeboot pin when probing this driver. > > Signed-off-by: Alejandro Enrique <alejandroe1@geotab.com> > --- > drivers/gnss/ubx.c | 8 ++++++++ > 1 file changed, 8 insertions(+) Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> <form letter> This is an automated instruction, just in case, because many review tags are being ignored. If you know the process, you can skip it (please do not feel offended by me posting it here - no bad intentions intended). If you do not know the process, here is a short explanation: Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply. https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577 </form letter> Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.