Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'gnss-6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/gnss

Pull GNSS updates from Johan Hovold:

- add support for claiming and deasserting the safeboot pin found on
recent u-blox receivers

- fix timepulse pin description in the devicetree binding

... and some related binding updates

* tag 'gnss-6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/gnss:
dt-bindings: gnss: fix timepulse description
dt-bindings: gnss: u-blox: use lowercase company name
dt-bindings: gnss: u-blox: use open-drain reset and safeboot in example
gnss: ubx: add support for the safeboot gpio
dt-bindings: gnss: u-blox: add safeboot gpio

+16 -5
+1 -2
Documentation/devicetree/bindings/gnss/gnss-common.yaml
··· 31 31 maxItems: 1 32 32 33 33 timepulse-gpios: 34 - description: When a timepulse is provided to the GNSS device using a 35 - GPIO line, this is used. 34 + description: Timepulse signal 36 35 maxItems: 1 37 36 38 37 additionalProperties: true
+7 -3
Documentation/devicetree/bindings/gnss/u-blox,neo-6m.yaml
··· 4 4 $id: http://devicetree.org/schemas/gnss/u-blox,neo-6m.yaml# 5 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 - title: U-blox GNSS Receiver 7 + title: u-blox GNSS receiver 8 8 9 9 allOf: 10 10 - $ref: gnss-common.yaml# ··· 14 14 - Johan Hovold <johan@kernel.org> 15 15 16 16 description: > 17 - The U-blox GNSS receivers can use UART, DDC (I2C), SPI and USB interfaces. 17 + The u-blox GNSS receivers can use UART, DDC (I2C), SPI and USB interfaces. 18 18 19 19 properties: 20 20 compatible: ··· 34 34 depending on the bus used. Required for the DDC, SPI or USB busses. 35 35 36 36 reset-gpios: 37 + maxItems: 1 38 + 39 + safeboot-gpios: 37 40 maxItems: 1 38 41 39 42 vcc-supply: ··· 67 64 compatible = "u-blox,neo-8"; 68 65 v-bckp-supply = <&gnss_v_bckp_reg>; 69 66 vcc-supply = <&gnss_vcc_reg>; 70 - reset-gpios = <&gpio 1 GPIO_ACTIVE_LOW>; 67 + reset-gpios = <&gpio 1 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 68 + safeboot-gpios = <&gpio 2 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 71 69 }; 72 70 };
+8
drivers/gnss/ubx.c
··· 66 66 static int ubx_probe(struct serdev_device *serdev) 67 67 { 68 68 struct gnss_serial *gserial; 69 + struct gpio_desc *safeboot; 69 70 struct gpio_desc *reset; 70 71 struct ubx_data *data; 71 72 int ret; ··· 92 91 ret = devm_regulator_get_enable_optional(&serdev->dev, "v-bckp"); 93 92 if (ret < 0 && ret != -ENODEV) 94 93 goto err_free_gserial; 94 + 95 + /* Deassert safeboot */ 96 + safeboot = devm_gpiod_get_optional(&serdev->dev, "safeboot", GPIOD_OUT_LOW); 97 + if (IS_ERR(safeboot)) { 98 + ret = PTR_ERR(safeboot); 99 + goto err_free_gserial; 100 + } 95 101 96 102 /* Deassert reset */ 97 103 reset = devm_gpiod_get_optional(&serdev->dev, "reset", GPIOD_OUT_LOW);