]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
i2c: mxc_i2c: Convert to use livetree API for fdt access
authorTim Harvey <tharvey@gateworks.com>
Wed, 23 Oct 2024 20:28:54 +0000 (13:28 -0700)
committerFabio Estevam <festevam@gmail.com>
Fri, 25 Oct 2024 12:07:39 +0000 (09:07 -0300)
Convert to using livetree API functions.

Without this if livetree is enabled (OF_LIVE) the mxc-i2c
driver will fail to support scl-gpios and sda-gpios for
i2c bus recovery.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
drivers/i2c/mxc_i2c.c

index 2f3cb5908c91954fe629f79678e3f5a7c1074b94..2dfc1c4eab5d83e617407f49a8c783ef61778b3a 100644 (file)
@@ -29,7 +29,6 @@
 #include <watchdog.h>
 #include <dm.h>
 #include <dm/pinctrl.h>
-#include <fdtdec.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -867,8 +866,7 @@ static int mxc_i2c_set_bus_speed(struct udevice *bus, unsigned int speed)
 static int mxc_i2c_probe(struct udevice *bus)
 {
        struct mxc_i2c_bus *i2c_bus = dev_get_priv(bus);
-       const void *fdt = gd->fdt_blob;
-       int node = dev_of_offset(bus);
+       ofnode node = dev_ofnode(bus);
        fdt_addr_t addr;
        int ret, ret2;
 
@@ -912,17 +910,15 @@ static int mxc_i2c_probe(struct udevice *bus)
         * See Documentation/devicetree/bindings/i2c/i2c-imx.txt
         * Use gpio to force bus idle when necessary.
         */
-       ret = fdt_stringlist_search(fdt, node, "pinctrl-names", "gpio");
+       ret = ofnode_stringlist_search(node, "pinctrl-names", "gpio");
        if (ret < 0) {
                debug("i2c bus %d at 0x%2lx, no gpio pinctrl state.\n",
                      dev_seq(bus), i2c_bus->base);
        } else {
-               ret = gpio_request_by_name_nodev(offset_to_ofnode(node),
-                               "scl-gpios", 0, &i2c_bus->scl_gpio,
-                               GPIOD_IS_OUT);
-               ret2 = gpio_request_by_name_nodev(offset_to_ofnode(node),
-                               "sda-gpios", 0, &i2c_bus->sda_gpio,
-                               GPIOD_IS_OUT);
+               ret = gpio_request_by_name(bus, "scl-gpios", 0, &i2c_bus->scl_gpio,
+                                          GPIOD_IS_OUT);
+               ret2 = gpio_request_by_name(bus, "sda-gpios", 0, &i2c_bus->sda_gpio,
+                                           GPIOD_IS_OUT);
                if (!dm_gpio_is_valid(&i2c_bus->sda_gpio) ||
                    !dm_gpio_is_valid(&i2c_bus->scl_gpio) ||
                    ret || ret2) {