From patchwork Sun Nov 29 00:50:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407758 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=FN4L+RUR; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8tb4cKnz9sVh for ; Sun, 29 Nov 2020 11:50:57 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 401B882738; Sun, 29 Nov 2020 01:50:35 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="FN4L+RUR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1E01E8270B; Sun, 29 Nov 2020 01:50:33 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 526048270B for ; Sun, 29 Nov 2020 01:50:29 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x141.google.com with SMTP id f5so7923499ilj.9 for ; Sat, 28 Nov 2020 16:50:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9JLIM8NSDEyOtDd+Wh1SXIgrb7DQM2pV1dC4ZYcY118=; b=FN4L+RURfM0Btv22b8hlnoNr9O+1aXOpK4IIrKTCkNWq6KE/UIYFqbQOyyD9zoR8dr pbOp6enmeuwnF8UfpsZH9sWH2SaajaLQu4BjvhMbLdVbE4CWG/JLtU70Tn3aVp6bOcMx eqsNK/GRyAiEK27Wt6s/XuTqABGpzC2UWXSE8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9JLIM8NSDEyOtDd+Wh1SXIgrb7DQM2pV1dC4ZYcY118=; b=VTlFGylsEXDna4mEyi/gQvupES6/D2nbnrw9DtTmp9d+9bb7EScDs4HvCZAieb+79d HT9JiW6Kc7kOnObZI39JPOq4thRImtCn+S1FS676VxsvoA01Iu3xWUGEZbJjjwl9zn6u YqVnUuLwaGHWtMcsvpBW9FDQoFJKeq+ZB4wr6k6ZcgOpW6GTnkvD0Wlg8JAxUV2mtEcM f5k+qLYOk1HF7UE/p7/0GzzDQfSpN7GlxDEeGO5n+nXd5woVYe7irw0qldG9kOyD1BBV qVyKrUfsRMyTBVBQIxZCLeNjeVaWUxqrNdIhzKlFhix4PDygNFOeX26JelYI0qk74T2V NPsA== X-Gm-Message-State: AOAM532KeIlRRHSgNcWlrRw2GiXcYL+0jUOMU8FMiTVCkt1roPgrduzn FbdOwzpxSXPDAXfo9lK3+epZwHh6fIhOuQ== X-Google-Smtp-Source: ABdhPJyODgwqJFYjt9Y8NC8VSIMHYMFigp1Jv76OGjuFgvMImz+VFOR4UbAZ5PBcLLHIcEgRL5FDuw== X-Received: by 2002:a92:c5a7:: with SMTP id r7mr10112690ilt.219.1606611027820; Sat, 28 Nov 2020 16:50:27 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:27 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Anatolij Gustschin , Bin Meng , Gregory CLEMENT , Horatiu Vultur , Icenowy Zheng , Jaehoon Chung , Jagan Teki , Joe Hershberger , Lars Povlsen , Lukasz Majewski , Marek Vasut , Martin Fuzzey , Masahiro Yamada , Matthias Brugger , Neil Armstrong , Pavel Herrmann , Peng Fan , Robert Beckett , u-boot-amlogic@groups.io Subject: [PATCH 01/11] dm: core: Rename device_bind() to device_bind_offset() Date: Sat, 28 Nov 2020 17:50:00 -0700 Message-Id: <20201128174958.1.I65ee0a32775ee9048715428e258b8c28e9382e4f@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This function is not necessary anymore, since device_bind_ofnode() does the same thing and works with both flattree and livetree. Rename it to indicate that it is special. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- arch/x86/cpu/apollolake/spl.c | 2 +- drivers/clk/clk.c | 2 +- drivers/core/device.c | 6 +++--- drivers/gpio/mt7621_gpio.c | 4 ++-- drivers/gpio/s5p_gpio.c | 4 ++-- drivers/gpio/sunxi_gpio.c | 4 ++-- drivers/gpio/tegra186_gpio.c | 4 ++-- drivers/gpio/tegra_gpio.c | 5 +++-- drivers/net/mvpp2.c | 2 +- drivers/pinctrl/broadcom/pinctrl-bcm283x.c | 5 +++-- drivers/pinctrl/meson/pinctrl-meson.c | 2 +- drivers/pinctrl/mscc/pinctrl-jr2.c | 4 ++-- drivers/pinctrl/mscc/pinctrl-luton.c | 4 ++-- drivers/pinctrl/mscc/pinctrl-ocelot.c | 4 ++-- drivers/pinctrl/mscc/pinctrl-serval.c | 4 ++-- drivers/pinctrl/mscc/pinctrl-servalt.c | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 4 ++-- drivers/power/regulator/Kconfig | 2 +- include/dm/device-internal.h | 8 ++++---- include/power/regulator.h | 2 +- 20 files changed, 39 insertions(+), 37 deletions(-) diff --git a/arch/x86/cpu/apollolake/spl.c b/arch/x86/cpu/apollolake/spl.c index 089b37c59f8..1f75e1894b7 100644 --- a/arch/x86/cpu/apollolake/spl.c +++ b/arch/x86/cpu/apollolake/spl.c @@ -86,7 +86,7 @@ static int apl_flash_probe(struct udevice *dev) /* * Manually set the parent of the SPI flash to SPI, since dtoc doesn't. We also * need to allocate the parent_platdata since by the time this function is - * called device_bind() has already gone past that step. + * called device_bind_offset() has already gone past that step. */ static int apl_flash_bind(struct udevice *dev) { diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 319808d433f..1fa9bec6fea 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -36,7 +36,7 @@ int clk_register(struct clk *clk, const char *drv_name, return -ENOENT; } - ret = device_bind(parent, drv, name, NULL, -1, &clk->dev); + ret = device_bind_offset(parent, drv, name, NULL, -1, &clk->dev); if (ret) { printf("%s: CLK: %s driver bind error [%d]!\n", __func__, name, ret); diff --git a/drivers/core/device.c b/drivers/core/device.c index 4b3dcb3b379..081dd1f7780 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -232,9 +232,9 @@ int device_bind_with_driver_data(struct udevice *parent, 0, devp); } -int device_bind(struct udevice *parent, const struct driver *drv, - const char *name, void *platdata, int of_offset, - struct udevice **devp) +int device_bind_offset(struct udevice *parent, const struct driver *drv, + const char *name, void *platdata, int of_offset, + struct udevice **devp) { return device_bind_common(parent, drv, name, platdata, 0, offset_to_ofnode(of_offset), 0, devp); diff --git a/drivers/gpio/mt7621_gpio.c b/drivers/gpio/mt7621_gpio.c index 612413e17bc..b64bc838a31 100644 --- a/drivers/gpio/mt7621_gpio.c +++ b/drivers/gpio/mt7621_gpio.c @@ -157,8 +157,8 @@ static int gpio_mediatek_bind(struct udevice *parent) plat->gpio_count = MTK_BANK_WIDTH; plat->bank = bank; - ret = device_bind(parent, parent->driver, - plat->bank_name, plat, -1, &dev); + ret = device_bind_offset(parent, parent->driver, + plat->bank_name, plat, -1, &dev); if (ret) return ret; diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c index c78227f4da3..4f9fedd6129 100644 --- a/drivers/gpio/s5p_gpio.c +++ b/drivers/gpio/s5p_gpio.c @@ -332,8 +332,8 @@ static int gpio_exynos_bind(struct udevice *parent) return -ENOMEM; plat->bank_name = fdt_get_name(blob, node, NULL); - ret = device_bind(parent, parent->driver, - plat->bank_name, plat, -1, &dev); + ret = device_bind_offset(parent, parent->driver, + plat->bank_name, plat, -1, &dev); if (ret) return ret; diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c index 02c3471b568..f18f0c8152c 100644 --- a/drivers/gpio/sunxi_gpio.c +++ b/drivers/gpio/sunxi_gpio.c @@ -305,8 +305,8 @@ static int gpio_sunxi_bind(struct udevice *parent) plat->bank_name = gpio_bank_name(soc_data->start + bank); plat->gpio_count = SUNXI_GPIOS_PER_BANK; - ret = device_bind(parent, parent->driver, - plat->bank_name, plat, -1, &dev); + ret = device_bind_offset(parent, parent->driver, + plat->bank_name, plat, -1, &dev); if (ret) return ret; dev_set_of_offset(dev, dev_of_offset(parent)); diff --git a/drivers/gpio/tegra186_gpio.c b/drivers/gpio/tegra186_gpio.c index 6626b5415a3..a518a395cab 100644 --- a/drivers/gpio/tegra186_gpio.c +++ b/drivers/gpio/tegra186_gpio.c @@ -190,8 +190,8 @@ static int tegra186_gpio_bind(struct udevice *parent) plat->name = ctlr_data->ports[port].name; plat->regs = &(regs[ctlr_data->ports[port].offset / 4]); - ret = device_bind(parent, parent->driver, plat->name, plat, - -1, &dev); + ret = device_bind_offset(parent, parent->driver, plat->name, + plat, -1, &dev); if (ret) return ret; dev_set_of_offset(dev, dev_of_offset(parent)); diff --git a/drivers/gpio/tegra_gpio.c b/drivers/gpio/tegra_gpio.c index 912577a5719..0056171fc51 100644 --- a/drivers/gpio/tegra_gpio.c +++ b/drivers/gpio/tegra_gpio.c @@ -360,8 +360,9 @@ static int gpio_tegra_bind(struct udevice *parent) plat->base_gpio = TEGRA_GPIOS_PER_PORT * base_port; plat->port_name = gpio_port_name(base_port); - ret = device_bind(parent, parent->driver, - plat->port_name, plat, -1, &dev); + ret = device_bind_offset(parent, parent->driver, + plat->port_name, plat, -1, + &dev); if (ret) return ret; dev_set_of_offset(dev, dev_of_offset(parent)); diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c index 8f790a8b44c..df77a0d5e8e 100644 --- a/drivers/net/mvpp2.c +++ b/drivers/net/mvpp2.c @@ -5477,7 +5477,7 @@ static int mvpp2_base_bind(struct udevice *parent) sprintf(name, "mvpp2-%d", id); /* Create child device UCLASS_ETH and bind it */ - device_bind(parent, &mvpp2_driver, name, plat, subnode, &dev); + device_bind_offset(parent, &mvpp2_driver, name, plat, subnode, &dev); dev_set_of_offset(dev, subnode); } diff --git a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c index 41da8141232..54928a607cb 100644 --- a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c +++ b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c @@ -125,8 +125,9 @@ int bcm283x_pinctl_probe(struct udevice *dev) struct udevice *pdev; /* Create GPIO device as well */ - ret = device_bind(dev, lists_driver_lookup_name("gpio_bcm2835"), - "gpio_bcm2835", NULL, dev_of_offset(dev), &pdev); + ret = device_bind_offset(dev, lists_driver_lookup_name("gpio_bcm2835"), + "gpio_bcm2835", NULL, dev_of_offset(dev), + &pdev); if (ret) { /* * While we really want the pinctrl driver to work to make diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c index d4539b02d88..45a1ccf58d6 100644 --- a/drivers/pinctrl/meson/pinctrl-meson.c +++ b/drivers/pinctrl/meson/pinctrl-meson.c @@ -419,7 +419,7 @@ int meson_pinctrl_probe(struct udevice *dev) sprintf(name, "meson-gpio"); /* Create child device UCLASS_GPIO and bind it */ - device_bind(dev, priv->data->gpio_driver, name, NULL, gpio, &gpio_dev); + device_bind_offset(dev, priv->data->gpio_driver, name, NULL, gpio, &gpio_dev); dev_set_of_offset(gpio_dev, gpio); return 0; diff --git a/drivers/pinctrl/mscc/pinctrl-jr2.c b/drivers/pinctrl/mscc/pinctrl-jr2.c index 72a9470854e..fc730b79d6a 100644 --- a/drivers/pinctrl/mscc/pinctrl-jr2.c +++ b/drivers/pinctrl/mscc/pinctrl-jr2.c @@ -299,8 +299,8 @@ static int jr2_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind(dev, &jr2_gpio_driver, "jr2-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind_offset(dev, &jr2_gpio_driver, "jr2-gpio", NULL, + dev_of_offset(dev), NULL); if (ret) return ret; diff --git a/drivers/pinctrl/mscc/pinctrl-luton.c b/drivers/pinctrl/mscc/pinctrl-luton.c index 17fbc53c257..4fb17984abe 100644 --- a/drivers/pinctrl/mscc/pinctrl-luton.c +++ b/drivers/pinctrl/mscc/pinctrl-luton.c @@ -165,8 +165,8 @@ int luton_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind(dev, &luton_gpio_driver, "luton-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind_offset(dev, &luton_gpio_driver, "luton-gpio", NULL, + dev_of_offset(dev), NULL); return 0; } diff --git a/drivers/pinctrl/mscc/pinctrl-ocelot.c b/drivers/pinctrl/mscc/pinctrl-ocelot.c index 49e026bc98b..12ecad7a6e9 100644 --- a/drivers/pinctrl/mscc/pinctrl-ocelot.c +++ b/drivers/pinctrl/mscc/pinctrl-ocelot.c @@ -181,8 +181,8 @@ int ocelot_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind(dev, &ocelot_gpio_driver, "ocelot-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind_offset(dev, &ocelot_gpio_driver, "ocelot-gpio", NULL, + dev_of_offset(dev), NULL); return ret; } diff --git a/drivers/pinctrl/mscc/pinctrl-serval.c b/drivers/pinctrl/mscc/pinctrl-serval.c index d59f08d4eb7..93b31d20833 100644 --- a/drivers/pinctrl/mscc/pinctrl-serval.c +++ b/drivers/pinctrl/mscc/pinctrl-serval.c @@ -209,8 +209,8 @@ static int serval_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind(dev, &serval_gpio_driver, "serval-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind_offset(dev, &serval_gpio_driver, "serval-gpio", NULL, + dev_of_offset(dev), NULL); if (ret) return ret; diff --git a/drivers/pinctrl/mscc/pinctrl-servalt.c b/drivers/pinctrl/mscc/pinctrl-servalt.c index 592b7c547b7..9bbc7698a52 100644 --- a/drivers/pinctrl/mscc/pinctrl-servalt.c +++ b/drivers/pinctrl/mscc/pinctrl-servalt.c @@ -245,8 +245,8 @@ static int servalt_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind(dev, &servalt_gpio_driver, "servalt-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind_offset(dev, &servalt_gpio_driver, "servalt-gpio", NULL, + dev_of_offset(dev), NULL); if (ret) return ret; diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c index fb497803b93..7bbeb413ba5 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c @@ -567,8 +567,8 @@ static int armada_37xx_gpiochip_register(struct udevice *parent, sprintf(name, "armada-37xx-gpio"); /* Create child device UCLASS_GPIO and bind it */ - device_bind(parent, &armada_37xx_gpio_driver, name, NULL, subnode, - &dev); + device_bind_offset(parent, &armada_37xx_gpio_driver, name, NULL, + subnode, &dev); dev_set_of_offset(dev, subnode); return 0; diff --git a/drivers/power/regulator/Kconfig b/drivers/power/regulator/Kconfig index d431102462a..a6f78d96706 100644 --- a/drivers/power/regulator/Kconfig +++ b/drivers/power/regulator/Kconfig @@ -11,7 +11,7 @@ config DM_REGULATOR - 'include/power/regulator.h' - 'drivers/power/pmic/pmic-uclass.c' - 'drivers/power/pmic/regulator-uclass.c' - It's important to call the device_bind() with the proper node offset, + It's important to call the device_bind_offset() with the proper node offset, when binding the regulator devices. The pmic_bind_childs() can be used for this purpose if PMIC I/O driver is implemented or dm_scan_fdt_dev() otherwise. Detailed information can be found in the header file. diff --git a/include/dm/device-internal.h b/include/dm/device-internal.h index c5d7ec0650f..59d3be09a1e 100644 --- a/include/dm/device-internal.h +++ b/include/dm/device-internal.h @@ -16,7 +16,7 @@ struct device_node; struct udevice; /** - * device_bind() - Create a device and bind it to a driver + * device_bind_offset() - Create a device and bind it to a driver * * Called to set up a new device attached to a driver. The device will either * have platdata, or a device tree node which can be used to create the @@ -36,9 +36,9 @@ struct udevice; * @devp: if non-NULL, returns a pointer to the bound device * @return 0 if OK, -ve on error */ -int device_bind(struct udevice *parent, const struct driver *drv, - const char *name, void *platdata, int of_offset, - struct udevice **devp); +int device_bind_offset(struct udevice *parent, const struct driver *drv, + const char *name, void *platdata, int of_offset, + struct udevice **devp); int device_bind_ofnode(struct udevice *parent, const struct driver *drv, const char *name, void *platdata, ofnode node, diff --git a/include/power/regulator.h b/include/power/regulator.h index 7f278e8c7dc..4d58a436fea 100644 --- a/include/power/regulator.h +++ b/include/power/regulator.h @@ -48,7 +48,7 @@ * If regulator-name property is not provided, node name will be chosen. * * Regulator bind: - * For each regulator device, the device_bind() should be called with passed + * For each regulator device, the device_bind_offset() should be called with passed * device tree offset. This is required for this uclass's '.post_bind' method, * which does the scan on the device node, for the 'regulator-name' constraint. * If the parent is not a PMIC device, and the child is not bind by function: From patchwork Sun Nov 29 00:50:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407757 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=f1RWfxhk; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8tZ50Fgz9sSn for ; Sun, 29 Nov 2020 11:51:01 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 00BBF8270E; Sun, 29 Nov 2020 01:50:41 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="f1RWfxhk"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 91D6E82730; Sun, 29 Nov 2020 01:50:34 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 98C3E8270E for ; Sun, 29 Nov 2020 01:50:30 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x142.google.com with SMTP id f5so7923514ilj.9 for ; Sat, 28 Nov 2020 16:50:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LHi71cgCPt2icwGubCu0Itc5i7q64USaDE1rN0+mSy0=; b=f1RWfxhktoIPTePqVjm//yQVIFYpWbpjjmSq0T+K15pnpDUPrJPvHTMPxjvsCMTHwr 8uipbQohvJJPlP3rK9tk2CItkSeplpWiRW7xFr3EmaMdVUzhVLWaq/igAkNRx7l2k0vM m2k6lQ/c7lGFIKfjAc8jIR2cQ5AdubNggvjIY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LHi71cgCPt2icwGubCu0Itc5i7q64USaDE1rN0+mSy0=; b=OHTEFBN7kqoLiqHf9KOCgxAjuChuVj26pr5H/FWP5mhk15dPgIQYZ7wcSj2gsEdQjq 2grNP19MR+DSuv++mVZI6+4UB6WYyZNZPbfisxYxV2zE1RYYYh7O2vkJscEm1xupu8vL kF2SHd7F2LRVjzspa0cYp6kYBeLQD7uiEIQ4LVbxIV98JIh2EoiQSJ4dN8rpMFcZw5kj X32IbkfgjlEoLZ6fV7F5/LRUU5sa2NKsfz89iuFxq/oTgdQUIHt2FWnjbSOqE1w8OsJQ eHFzCJWgtpUTZBrDLkJ5T9R8Att0gpqggb4UmFNa5VQNaV5KbFaiwSvWEuEFb3Y/mYln nitQ== X-Gm-Message-State: AOAM530n60E4RCDRW/nw65GUJ/ulNIyTY+hKACuDd2LOl2hE/x76k0pX Gua0WDb9Zdk+zQrpGLa/8dn8DYH6A986/g== X-Google-Smtp-Source: ABdhPJyCc75C2fhUTNnKwN4l47c8N79/ji1piMyhXJiD/8sU0lXbz03Ug8dZFKqSxFOd9DixpK5nFg== X-Received: by 2002:a92:6403:: with SMTP id y3mr13670429ilb.72.1606611029195; Sat, 28 Nov 2020 16:50:29 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:28 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Anatolij Gustschin , Andy Shevchenko , Bin Meng , Etienne Carriere , Eugen Hristev , Heiko Schocher , Jagan Teki , Ley Foon Tan , Marek Vasut , Masahiro Yamada , Michael Walle , Michal Simek , Pavel Herrmann , Peng Fan , Rayagonda Kokatanur , Robert Beckett , Sean Anderson , Stefan Roese , Suneel Garapati , Vignesh R , Ye Li Subject: [PATCH 02/11] dm: core: Rename device_bind_ofnode() to device_bind() Date: Sat, 28 Nov 2020 17:50:01 -0700 Message-Id: <20201128174958.2.Ib100c98f398ec68c4b7e04ade5493c5819c7dbce@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This is the standard function to use when binding devices. Drop the '_ofnode' suffix to make this clear. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- drivers/core/device.c | 6 +++--- drivers/firmware/scmi/scmi_agent-uclass.c | 4 ++-- drivers/gpio/dwapb_gpio.c | 4 ++-- drivers/misc/i2c_eeprom.c | 4 ++-- drivers/mtd/spi/sandbox.c | 2 +- drivers/pci/pci-uclass.c | 4 ++-- drivers/pci/pci_mvebu.c | 4 ++-- drivers/usb/host/usb-uclass.c | 4 ++-- include/dm/device-internal.h | 6 +++--- test/dm/core.c | 4 ++-- 10 files changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/core/device.c b/drivers/core/device.c index 081dd1f7780..c8a219d77b3 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -240,9 +240,9 @@ int device_bind_offset(struct udevice *parent, const struct driver *drv, offset_to_ofnode(of_offset), 0, devp); } -int device_bind_ofnode(struct udevice *parent, const struct driver *drv, - const char *name, void *platdata, ofnode node, - struct udevice **devp) +int device_bind(struct udevice *parent, const struct driver *drv, + const char *name, void *platdata, ofnode node, + struct udevice **devp) { return device_bind_common(parent, drv, name, platdata, 0, node, 0, devp); diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c b/drivers/firmware/scmi/scmi_agent-uclass.c index 7dc533149b6..b3d3f0a51b0 100644 --- a/drivers/firmware/scmi/scmi_agent-uclass.c +++ b/drivers/firmware/scmi/scmi_agent-uclass.c @@ -89,8 +89,8 @@ static int scmi_bind_protocols(struct udevice *dev) continue; } - ret = device_bind_ofnode(dev, drv, ofnode_get_name(node), - NULL, node, NULL); + ret = device_bind(dev, drv, ofnode_get_name(node), NULL, node, + NULL); if (ret) break; } diff --git a/drivers/gpio/dwapb_gpio.c b/drivers/gpio/dwapb_gpio.c index 37916e77716..cf20a5024e0 100644 --- a/drivers/gpio/dwapb_gpio.c +++ b/drivers/gpio/dwapb_gpio.c @@ -202,8 +202,8 @@ static int gpio_dwapb_bind(struct udevice *dev) } } - ret = device_bind_ofnode(dev, dev->driver, plat->name, - plat, node, &subdev); + ret = device_bind(dev, dev->driver, plat->name, plat, node, + &subdev); if (ret) return ret; diff --git a/drivers/misc/i2c_eeprom.c b/drivers/misc/i2c_eeprom.c index 3651ba4871e..92e18356254 100644 --- a/drivers/misc/i2c_eeprom.c +++ b/drivers/misc/i2c_eeprom.c @@ -131,8 +131,8 @@ static int i2c_eeprom_std_bind(struct udevice *dev) if (!name) continue; - device_bind_ofnode(dev, DM_GET_DRIVER(i2c_eeprom_partition), - name, NULL, partition, NULL); + device_bind(dev, DM_GET_DRIVER(i2c_eeprom_partition), name, + NULL, partition, NULL); } return 0; diff --git a/drivers/mtd/spi/sandbox.c b/drivers/mtd/spi/sandbox.c index 0b602dc9140..1d0c1cb3fa2 100644 --- a/drivers/mtd/spi/sandbox.c +++ b/drivers/mtd/spi/sandbox.c @@ -538,7 +538,7 @@ int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs, str = strdup(name); if (!str) return -ENOMEM; - ret = device_bind_ofnode(bus, drv, str, NULL, node, &emul); + ret = device_bind(bus, drv, str, NULL, node, &emul); if (ret) { free(str); printf("Cannot create emul device for spec '%s' (err=%d)\n", diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c index eb07d253011..9230cfe88b5 100644 --- a/drivers/pci/pci-uclass.c +++ b/drivers/pci/pci-uclass.c @@ -750,8 +750,8 @@ static int pci_find_and_bind_driver(struct udevice *parent, * find another driver. For now this doesn't seem * necesssary, so just bind the first match. */ - ret = device_bind_ofnode(parent, drv, drv->name, NULL, - node, &dev); + ret = device_bind(parent, drv, drv->name, NULL, node, + &dev); if (ret) goto error; debug("%s: Match found: %s\n", __func__, drv->name); diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c index c9afe751501..ba1c139dbc5 100644 --- a/drivers/pci/pci_mvebu.c +++ b/drivers/pci/pci_mvebu.c @@ -501,8 +501,8 @@ static int mvebu_pcie_bind(struct udevice *parent) return -ENOMEM; /* Create child device UCLASS_PCI and bind it */ - device_bind_ofnode(parent, &pcie_mvebu_drv, pcie->name, pcie, - subnode, &dev); + device_bind(parent, &pcie_mvebu_drv, pcie->name, pcie, subnode, + &dev); } return 0; diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c index 8773824e057..2f8c9037c12 100644 --- a/drivers/usb/host/usb-uclass.c +++ b/drivers/usb/host/usb-uclass.c @@ -581,8 +581,8 @@ static int usb_find_and_bind_driver(struct udevice *parent, * find another driver. For now this doesn't seem * necesssary, so just bind the first match. */ - ret = device_bind_ofnode(parent, drv, drv->name, NULL, - node, &dev); + ret = device_bind(parent, drv, drv->name, NULL, node, + &dev); if (ret) goto error; debug("%s: Match found: %s\n", __func__, drv->name); diff --git a/include/dm/device-internal.h b/include/dm/device-internal.h index 59d3be09a1e..636210f73ed 100644 --- a/include/dm/device-internal.h +++ b/include/dm/device-internal.h @@ -40,9 +40,9 @@ int device_bind_offset(struct udevice *parent, const struct driver *drv, const char *name, void *platdata, int of_offset, struct udevice **devp); -int device_bind_ofnode(struct udevice *parent, const struct driver *drv, - const char *name, void *platdata, ofnode node, - struct udevice **devp); +int device_bind(struct udevice *parent, const struct driver *drv, + const char *name, void *platdata, ofnode node, + struct udevice **devp); /** * device_bind_with_driver_data() - Create a device and bind it to a driver diff --git a/test/dm/core.c b/test/dm/core.c index 6f380a574cf..ba9e60d09cb 100644 --- a/test/dm/core.c +++ b/test/dm/core.c @@ -1052,8 +1052,8 @@ static int dm_test_inactive_child(struct unit_test_state *uts) */ ut_asserteq(-ENODEV, device_find_first_inactive_child(parent, UCLASS_TEST, &dev1)); - ut_assertok(device_bind_ofnode(parent, DM_GET_DRIVER(test_drv), - "test_child", 0, ofnode_null(), &dev1)); + ut_assertok(device_bind(parent, DM_GET_DRIVER(test_drv), + "test_child", 0, ofnode_null(), &dev1)); ut_assertok(device_find_first_inactive_child(parent, UCLASS_TEST, &dev2)); From patchwork Sun Nov 29 00:50:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407759 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=Yo3wh7Y4; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8tl61qFz9sSf for ; Sun, 29 Nov 2020 11:51:11 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EFA678241C; Sun, 29 Nov 2020 01:50:45 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="Yo3wh7Y4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1BEEF82710; Sun, 29 Nov 2020 01:50:37 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 91A9B82710 for ; Sun, 29 Nov 2020 01:50:31 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x143.google.com with SMTP id v3so7945978ilo.5 for ; Sat, 28 Nov 2020 16:50:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=s8yJNmOpMHV9bEeWjoIxil+RcihY7r3UjnNW2ok9CP8=; b=Yo3wh7Y4ydrvazFVjZuomhwJN28lFWn4W4lPFz2hjzzGGcrEHVsVhnOsMeD8L5GSrl uzqxjW6zStzQBaxq7Wh5X38Rf2Idp7MLDTOW9aqF77zsU7jde2kT2BnLinOK5w3FQrdJ Sifb40o8Vz7lLaGE3VI9ToJ87XItK6LrHLOoA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=s8yJNmOpMHV9bEeWjoIxil+RcihY7r3UjnNW2ok9CP8=; b=onSZHTIjoM4SvDK6jN7MXQvDxc3qYxXihgRbmWdzQWxbIlSs1oZyU83bPaHLUVQ3ok PLR9OiiRMB2NMzk0JeVWcC141a1mXgAp2NqNX3FU77CFIXcbCJIBsCRGCGjxfreejwKn 8cmzRdgMTiYXfpdBfhT1JA09YdZVyW0gMCNKwrkh/bzd5NqbXIaTGOy0Vqgtr0qAXalD 9rXhqNlT/BXQ8Uswloby6ErWeuVNpSwSMrgNWWCGmoHFQmHWlUTFIAub+SXdsV8XvHGm 2V/B8SXZbG/PjJisgmegce+LP1lgc671VAav0DFMfk73PoncVKJhDzA4vnWzNQmW3sXA RyWg== X-Gm-Message-State: AOAM5322yOp5XkSmCnvXBxZJYiqLFas+kTOxj2mwSBf9IYpTzXfc6oyY uziaHbkPsrvWKbUeOibH7TaTl0xDsMr0pQ== X-Google-Smtp-Source: ABdhPJzvXGNE6/uQiM0EEA2Hq562RFcvJFl5zrxqHnQCyu2uTHTIuClVX7OU2sw3cHNIs2NxwXTrUg== X-Received: by 2002:a92:cc52:: with SMTP id t18mr12422519ilq.124.1606611030240; Sat, 28 Nov 2020 16:50:30 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:29 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Marek Vasut , Pavel Herrmann Subject: [PATCH 03/11] dm: core: Add a livetree function to check node status Date: Sat, 28 Nov 2020 17:50:02 -0700 Message-Id: <20201128174958.3.Ida482bbbdb5e84e96b2d959c340fdf43b728cf62@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- drivers/core/ofnode.c | 10 ++++++++++ include/dm/ofnode.h | 11 +++++++++++ test/dm/ofnode.c | 12 ++++++++++++ 3 files changed, 33 insertions(+) diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index a68076bf351..87072094f32 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -226,6 +226,16 @@ int ofnode_read_u32_array(ofnode node, const char *propname, } } +bool ofnode_is_enabled(ofnode node) +{ + if (ofnode_is_np(node)) { + return of_device_is_available(ofnode_to_np(node)); + } else { + return fdtdec_get_is_enabled(gd->fdt_blob, + ofnode_to_offset(node)); + } +} + ofnode ofnode_first_subnode(ofnode node) { assert(ofnode_valid(node)); diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index ced7f6ffb25..ee8c44a71ec 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -345,6 +345,17 @@ const char *ofnode_read_string(ofnode node, const char *propname); */ int ofnode_read_u32_array(ofnode node, const char *propname, u32 *out_values, size_t sz); +/** + * ofnode_is_enabled() - Checks whether a node is enabled. + * This looks for a 'status' property. If this exists, then returns true if + * the status is 'okay' and false otherwise. If there is no status property, + * it returns true on the assumption that anything mentioned should be enabled + * by default. + * + * @node: node to examine + * @return false (not enabled) or true (enabled) + */ +bool ofnode_is_enabled(ofnode node); /** * ofnode_read_bool() - read a boolean value from a property diff --git a/test/dm/ofnode.c b/test/dm/ofnode.c index fb1ceb13180..c5391342962 100644 --- a/test/dm/ofnode.c +++ b/test/dm/ofnode.c @@ -249,3 +249,15 @@ static int dm_test_ofnode_get_child_count(struct unit_test_state *uts) } DM_TEST(dm_test_ofnode_get_child_count, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + +static int dm_test_ofnode_is_enabled(struct unit_test_state *uts) +{ + ofnode root_node = ofnode_path("/"); + ofnode node = ofnode_path("/usb@0"); + + ut_assert(ofnode_is_enabled(root_node)); + ut_assert(!ofnode_is_enabled(node)); + + return 0; +} +DM_TEST(dm_test_ofnode_is_enabled, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); From patchwork Sun Nov 29 00:50:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407761 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=Tvv0N8Cq; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8vB3Qzzz9sSf for ; Sun, 29 Nov 2020 11:51:34 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 92A358274A; Sun, 29 Nov 2020 01:50:57 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="Tvv0N8Cq"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7B54C8270E; Sun, 29 Nov 2020 01:50:40 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x144.google.com (mail-il1-x144.google.com [IPv6:2607:f8b0:4864:20::144]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 09DE182732 for ; Sun, 29 Nov 2020 01:50:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x144.google.com with SMTP id p5so7926026iln.8 for ; Sat, 28 Nov 2020 16:50:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vFY86PdqVnWQroDG6Z1Y+eMRErXGKIhfQ1wBGKA7QFM=; b=Tvv0N8CqU+vvQt5kaVLSpZUrV0nfgY0SBPLqVdosfAbn9a1vCkdP8ho6NrZrj4Okj4 Y+g0EEiJXNi2dTnHAG02cllxX8VDfKukdHfL68Ngls0IBt/CQBkDqKX12Mu3yVj2cYsw GKzZLTl3LSxxxfM85ESwp1tlgCe9mFk9JTscc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vFY86PdqVnWQroDG6Z1Y+eMRErXGKIhfQ1wBGKA7QFM=; b=ZpX2tjs07p8sHUfNsBdjyJ7ixTz5JmFGEP+p6KsMjovQ6F0zOb1pTSCcjh8TRkwyHw yU6Lj/57EPOcTGD8+qKtOGMaLf13AcnseSTpFXbRqNFaP5R5morx5zm5rbYL82COEc5F yl+mMDJCY5jQAHm3xUODYywsI+sX9eqPtTidpPX19Rytt9+06AclmtfMeWCbAkmrRIMp 9hdQHlCv2q6eYOiGlxGOdkeZkJork/ynK7oxLeg6ATzb4dC+DLihn5GDbt5hcysjXAyJ 0wyrJfbyxaqy0Z3l9h2A9YDJLAaxb0L1ZYtXGkrRBQGeCuOiCmTq7cR/7UwKmWd0Q+8S SjDA== X-Gm-Message-State: AOAM532iqSO4unXwSfqymTRjoJLAU6PCSN3OcQ3TJBbmSHPlnDsoYS29 FtFX2aPIiINdUPVYasKMXZcjUe1Xru0WLg== X-Google-Smtp-Source: ABdhPJzLbCCQq9bdpQ0t2CnrqnI2F0vhUZkuB0PKsPx/LXiqAGcIPGCZc8ukSQy5FMGghu72fbg02Q== X-Received: by 2002:a92:dc0d:: with SMTP id t13mr3864609iln.209.1606611031575; Sat, 28 Nov 2020 16:50:31 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:31 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Anatolij Gustschin , Bin Meng , Claudiu Beznea , Gregory CLEMENT , Horatiu Vultur , Icenowy Zheng , Jaehoon Chung , Jagan Teki , Joe Hershberger , Lars Povlsen , Lukasz Majewski , Marek Vasut , Martin Fuzzey , Masahiro Yamada , Matthias Brugger , Neil Armstrong , Pavel Herrmann , Peng Fan , Robert Beckett , u-boot-amlogic@groups.io Subject: [PATCH 04/11] dm: Remove uses of device_bind_offset() Date: Sat, 28 Nov 2020 17:50:03 -0700 Message-Id: <20201128174958.4.I07862310b4e40efa2ea158f4f84e0f79dcfec7ed@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This function is not needed since the standard device_bind() can be used instead. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- arch/x86/cpu/apollolake/spl.c | 2 +- drivers/clk/at91/compat.c | 20 ++++++++------------ drivers/clk/clk.c | 2 +- drivers/gpio/mt7621_gpio.c | 4 ++-- drivers/gpio/s5p_gpio.c | 4 ++-- drivers/gpio/sunxi_gpio.c | 4 ++-- drivers/gpio/tegra186_gpio.c | 4 ++-- drivers/gpio/tegra_gpio.c | 6 +++--- drivers/net/mvpp2.c | 4 ++-- drivers/pinctrl/broadcom/pinctrl-bcm283x.c | 5 ++--- drivers/pinctrl/meson/pinctrl-meson.c | 4 +++- drivers/pinctrl/mscc/pinctrl-jr2.c | 4 ++-- drivers/pinctrl/mscc/pinctrl-luton.c | 4 ++-- drivers/pinctrl/mscc/pinctrl-ocelot.c | 4 ++-- drivers/pinctrl/mscc/pinctrl-serval.c | 4 ++-- drivers/pinctrl/mscc/pinctrl-servalt.c | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 8 ++++---- drivers/power/regulator/Kconfig | 2 +- include/dm/device-internal.h | 4 ++-- include/power/regulator.h | 2 +- 20 files changed, 46 insertions(+), 49 deletions(-) diff --git a/arch/x86/cpu/apollolake/spl.c b/arch/x86/cpu/apollolake/spl.c index 1f75e1894b7..089b37c59f8 100644 --- a/arch/x86/cpu/apollolake/spl.c +++ b/arch/x86/cpu/apollolake/spl.c @@ -86,7 +86,7 @@ static int apl_flash_probe(struct udevice *dev) /* * Manually set the parent of the SPI flash to SPI, since dtoc doesn't. We also * need to allocate the parent_platdata since by the time this function is - * called device_bind_offset() has already gone past that step. + * called device_bind() has already gone past that step. */ static int apl_flash_bind(struct udevice *dev) { diff --git a/drivers/clk/at91/compat.c b/drivers/clk/at91/compat.c index 9563285674b..afd67b290d8 100644 --- a/drivers/clk/at91/compat.c +++ b/drivers/clk/at91/compat.c @@ -62,34 +62,30 @@ static int at91_pmc_core_probe(struct udevice *dev) */ int at91_clk_sub_device_bind(struct udevice *dev, const char *drv_name) { - const void *fdt = gd->fdt_blob; - int offset = dev_of_offset(dev); + ofnode parent = dev_ofnode(dev); + ofnode node; bool pre_reloc_only = !(gd->flags & GD_FLG_RELOC); const char *name; int ret; - for (offset = fdt_first_subnode(fdt, offset); - offset > 0; - offset = fdt_next_subnode(fdt, offset)) { - if (pre_reloc_only && - !ofnode_pre_reloc(offset_to_ofnode(offset))) + ofnode_for_each_subnode(node, parent) { + if (pre_reloc_only && !ofnode_pre_reloc(node)) continue; /* * If this node has "compatible" property, this is not * a clock sub-node, but a normal device. skip. */ - fdt_get_property(fdt, offset, "compatible", &ret); - if (ret >= 0) + if (ofnode_read_prop(node, "compatible", NULL)) continue; if (ret != -FDT_ERR_NOTFOUND) return ret; - name = fdt_get_name(fdt, offset, NULL); + name = ofnode_get_name(node); if (!name) return -EINVAL; - ret = device_bind_driver_to_node(dev, drv_name, name, - offset_to_ofnode(offset), NULL); + ret = device_bind_driver_to_node(dev, drv_name, name, node, + NULL); if (ret) return ret; } diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 1fa9bec6fea..928ad13641a 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -36,7 +36,7 @@ int clk_register(struct clk *clk, const char *drv_name, return -ENOENT; } - ret = device_bind_offset(parent, drv, name, NULL, -1, &clk->dev); + ret = device_bind(parent, drv, name, NULL, ofnode_null(), &clk->dev); if (ret) { printf("%s: CLK: %s driver bind error [%d]!\n", __func__, name, ret); diff --git a/drivers/gpio/mt7621_gpio.c b/drivers/gpio/mt7621_gpio.c index b64bc838a31..8b41e34844e 100644 --- a/drivers/gpio/mt7621_gpio.c +++ b/drivers/gpio/mt7621_gpio.c @@ -157,8 +157,8 @@ static int gpio_mediatek_bind(struct udevice *parent) plat->gpio_count = MTK_BANK_WIDTH; plat->bank = bank; - ret = device_bind_offset(parent, parent->driver, - plat->bank_name, plat, -1, &dev); + ret = device_bind(parent, parent->driver, plat->bank_name, plat, + ofnode_null(), &dev); if (ret) return ret; diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c index 4f9fedd6129..d6054c4a6dd 100644 --- a/drivers/gpio/s5p_gpio.c +++ b/drivers/gpio/s5p_gpio.c @@ -332,8 +332,8 @@ static int gpio_exynos_bind(struct udevice *parent) return -ENOMEM; plat->bank_name = fdt_get_name(blob, node, NULL); - ret = device_bind_offset(parent, parent->driver, - plat->bank_name, plat, -1, &dev); + ret = device_bind(parent, parent->driver, plat->bank_name, plat, + ofnode_null(), &dev); if (ret) return ret; diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c index f18f0c8152c..b6b0e9acbdb 100644 --- a/drivers/gpio/sunxi_gpio.c +++ b/drivers/gpio/sunxi_gpio.c @@ -305,8 +305,8 @@ static int gpio_sunxi_bind(struct udevice *parent) plat->bank_name = gpio_bank_name(soc_data->start + bank); plat->gpio_count = SUNXI_GPIOS_PER_BANK; - ret = device_bind_offset(parent, parent->driver, - plat->bank_name, plat, -1, &dev); + ret = device_bind(parent, parent->driver, plat->bank_name, plat, + ofnode_null(), &dev); if (ret) return ret; dev_set_of_offset(dev, dev_of_offset(parent)); diff --git a/drivers/gpio/tegra186_gpio.c b/drivers/gpio/tegra186_gpio.c index a518a395cab..bcc322c3b02 100644 --- a/drivers/gpio/tegra186_gpio.c +++ b/drivers/gpio/tegra186_gpio.c @@ -190,8 +190,8 @@ static int tegra186_gpio_bind(struct udevice *parent) plat->name = ctlr_data->ports[port].name; plat->regs = &(regs[ctlr_data->ports[port].offset / 4]); - ret = device_bind_offset(parent, parent->driver, plat->name, - plat, -1, &dev); + ret = device_bind(parent, parent->driver, plat->name, plat, + ofnode_null(), &dev); if (ret) return ret; dev_set_of_offset(dev, dev_of_offset(parent)); diff --git a/drivers/gpio/tegra_gpio.c b/drivers/gpio/tegra_gpio.c index 0056171fc51..3877ee659af 100644 --- a/drivers/gpio/tegra_gpio.c +++ b/drivers/gpio/tegra_gpio.c @@ -360,9 +360,9 @@ static int gpio_tegra_bind(struct udevice *parent) plat->base_gpio = TEGRA_GPIOS_PER_PORT * base_port; plat->port_name = gpio_port_name(base_port); - ret = device_bind_offset(parent, parent->driver, - plat->port_name, plat, -1, - &dev); + ret = device_bind(parent, parent->driver, + plat->port_name, plat, ofnode_null(), + &dev); if (ret) return ret; dev_set_of_offset(dev, dev_of_offset(parent)); diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c index df77a0d5e8e..c1a78a2918e 100644 --- a/drivers/net/mvpp2.c +++ b/drivers/net/mvpp2.c @@ -5477,8 +5477,8 @@ static int mvpp2_base_bind(struct udevice *parent) sprintf(name, "mvpp2-%d", id); /* Create child device UCLASS_ETH and bind it */ - device_bind_offset(parent, &mvpp2_driver, name, plat, subnode, &dev); - dev_set_of_offset(dev, subnode); + device_bind(parent, &mvpp2_driver, name, plat, + offset_to_ofnode(subnode), &dev); } return 0; diff --git a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c index 54928a607cb..5f5f3f3622f 100644 --- a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c +++ b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c @@ -125,9 +125,8 @@ int bcm283x_pinctl_probe(struct udevice *dev) struct udevice *pdev; /* Create GPIO device as well */ - ret = device_bind_offset(dev, lists_driver_lookup_name("gpio_bcm2835"), - "gpio_bcm2835", NULL, dev_of_offset(dev), - &pdev); + ret = device_bind(dev, lists_driver_lookup_name("gpio_bcm2835"), + "gpio_bcm2835", NULL, dev_ofnode(dev), &pdev); if (ret) { /* * While we really want the pinctrl driver to work to make diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c index 45a1ccf58d6..c35e4c42a09 100644 --- a/drivers/pinctrl/meson/pinctrl-meson.c +++ b/drivers/pinctrl/meson/pinctrl-meson.c @@ -347,6 +347,7 @@ int meson_pinctrl_probe(struct udevice *dev) int na, ns; char *name; + /* FIXME: Should use livetree */ na = fdt_address_cells(gd->fdt_blob, dev_of_offset(dev->parent)); if (na < 1) { debug("bad #address-cells\n"); @@ -419,7 +420,8 @@ int meson_pinctrl_probe(struct udevice *dev) sprintf(name, "meson-gpio"); /* Create child device UCLASS_GPIO and bind it */ - device_bind_offset(dev, priv->data->gpio_driver, name, NULL, gpio, &gpio_dev); + device_bind(dev, priv->data->gpio_driver, name, NULL, + offset_to_ofnode(gpio), &gpio_dev); dev_set_of_offset(gpio_dev, gpio); return 0; diff --git a/drivers/pinctrl/mscc/pinctrl-jr2.c b/drivers/pinctrl/mscc/pinctrl-jr2.c index fc730b79d6a..6de7a416f0e 100644 --- a/drivers/pinctrl/mscc/pinctrl-jr2.c +++ b/drivers/pinctrl/mscc/pinctrl-jr2.c @@ -299,8 +299,8 @@ static int jr2_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind_offset(dev, &jr2_gpio_driver, "jr2-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind(dev, &jr2_gpio_driver, "jr2-gpio", NULL, + dev_ofnode(dev), NULL); if (ret) return ret; diff --git a/drivers/pinctrl/mscc/pinctrl-luton.c b/drivers/pinctrl/mscc/pinctrl-luton.c index 4fb17984abe..0adeef9ec67 100644 --- a/drivers/pinctrl/mscc/pinctrl-luton.c +++ b/drivers/pinctrl/mscc/pinctrl-luton.c @@ -165,8 +165,8 @@ int luton_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind_offset(dev, &luton_gpio_driver, "luton-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind(dev, &luton_gpio_driver, "luton-gpio", NULL, + dev_ofnode(dev), NULL); return 0; } diff --git a/drivers/pinctrl/mscc/pinctrl-ocelot.c b/drivers/pinctrl/mscc/pinctrl-ocelot.c index 12ecad7a6e9..4df5eef1b10 100644 --- a/drivers/pinctrl/mscc/pinctrl-ocelot.c +++ b/drivers/pinctrl/mscc/pinctrl-ocelot.c @@ -181,8 +181,8 @@ int ocelot_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind_offset(dev, &ocelot_gpio_driver, "ocelot-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind(dev, &ocelot_gpio_driver, "ocelot-gpio", NULL, + dev_ofnode(dev), NULL); return ret; } diff --git a/drivers/pinctrl/mscc/pinctrl-serval.c b/drivers/pinctrl/mscc/pinctrl-serval.c index 93b31d20833..2cef5df3dc2 100644 --- a/drivers/pinctrl/mscc/pinctrl-serval.c +++ b/drivers/pinctrl/mscc/pinctrl-serval.c @@ -209,8 +209,8 @@ static int serval_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind_offset(dev, &serval_gpio_driver, "serval-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind(dev, &serval_gpio_driver, "serval-gpio", NULL, + dev_ofnode(dev), NULL); if (ret) return ret; diff --git a/drivers/pinctrl/mscc/pinctrl-servalt.c b/drivers/pinctrl/mscc/pinctrl-servalt.c index 9bbc7698a52..37ce52ce7b8 100644 --- a/drivers/pinctrl/mscc/pinctrl-servalt.c +++ b/drivers/pinctrl/mscc/pinctrl-servalt.c @@ -245,8 +245,8 @@ static int servalt_pinctrl_probe(struct udevice *dev) if (ret) return ret; - ret = device_bind_offset(dev, &servalt_gpio_driver, "servalt-gpio", NULL, - dev_of_offset(dev), NULL); + ret = device_bind(dev, &servalt_gpio_driver, "servalt-gpio", NULL, + dev_ofnode(dev), NULL); if (ret) return ret; diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c index 7bbeb413ba5..17d7603ebdb 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c @@ -547,13 +547,14 @@ static int armada_37xx_gpiochip_register(struct udevice *parent, int subnode; char *name; - /* Lookup GPIO driver */ + /* FIXME: Should not need to lookup GPIO uclass */ drv = lists_uclass_lookup(UCLASS_GPIO); if (!drv) { puts("Cannot find GPIO driver\n"); return -ENOENT; } + /* FIXME: Use livtree and check the result of device_bind() below */ fdt_for_each_subnode(subnode, blob, node) { if (fdtdec_get_bool(blob, subnode, "gpio-controller")) { ret = 0; @@ -567,9 +568,8 @@ static int armada_37xx_gpiochip_register(struct udevice *parent, sprintf(name, "armada-37xx-gpio"); /* Create child device UCLASS_GPIO and bind it */ - device_bind_offset(parent, &armada_37xx_gpio_driver, name, NULL, - subnode, &dev); - dev_set_of_offset(dev, subnode); + device_bind(parent, &armada_37xx_gpio_driver, name, NULL, + offset_to_ofnode(subnode), &dev); return 0; } diff --git a/drivers/power/regulator/Kconfig b/drivers/power/regulator/Kconfig index a6f78d96706..d431102462a 100644 --- a/drivers/power/regulator/Kconfig +++ b/drivers/power/regulator/Kconfig @@ -11,7 +11,7 @@ config DM_REGULATOR - 'include/power/regulator.h' - 'drivers/power/pmic/pmic-uclass.c' - 'drivers/power/pmic/regulator-uclass.c' - It's important to call the device_bind_offset() with the proper node offset, + It's important to call the device_bind() with the proper node offset, when binding the regulator devices. The pmic_bind_childs() can be used for this purpose if PMIC I/O driver is implemented or dm_scan_fdt_dev() otherwise. Detailed information can be found in the header file. diff --git a/include/dm/device-internal.h b/include/dm/device-internal.h index 636210f73ed..6f4f8510f7e 100644 --- a/include/dm/device-internal.h +++ b/include/dm/device-internal.h @@ -37,8 +37,8 @@ struct udevice; * @return 0 if OK, -ve on error */ int device_bind_offset(struct udevice *parent, const struct driver *drv, - const char *name, void *platdata, int of_offset, - struct udevice **devp); + const char *name, void *platdata, int of_offset, + struct udevice **devp); int device_bind(struct udevice *parent, const struct driver *drv, const char *name, void *platdata, ofnode node, diff --git a/include/power/regulator.h b/include/power/regulator.h index 4d58a436fea..7f278e8c7dc 100644 --- a/include/power/regulator.h +++ b/include/power/regulator.h @@ -48,7 +48,7 @@ * If regulator-name property is not provided, node name will be chosen. * * Regulator bind: - * For each regulator device, the device_bind_offset() should be called with passed + * For each regulator device, the device_bind() should be called with passed * device tree offset. This is required for this uclass's '.post_bind' method, * which does the scan on the device node, for the 'regulator-name' constraint. * If the parent is not a PMIC device, and the child is not bind by function: From patchwork Sun Nov 29 00:50:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407762 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=drty8y/A; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8vR6jZJz9sRR for ; Sun, 29 Nov 2020 11:51:47 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9916782774; Sun, 29 Nov 2020 01:51:00 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="drty8y/A"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A5D7382754; Sun, 29 Nov 2020 01:50:39 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 050C78270B for ; Sun, 29 Nov 2020 01:50:34 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd41.google.com with SMTP id n14so3471910iom.10 for ; Sat, 28 Nov 2020 16:50:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=u97qFHNRuzdOrxKBujOaBGLjo53UQUwUC1kr7yknww8=; b=drty8y/A1wxGuATBJVTjvaMBoiCUwHb8MxENf8SjrpiKP1q9sQoO0mhU5vzM1KJJia iYf1OG40rgudTiiH7Yk/+tFG7kK7P+v5hUoPLd3XDDSXljTNhtuNxJa4xXIdrQDMKxIl cJaKslpjYnvDsF1lx1pPzveoO9R/PXtxCzed8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=u97qFHNRuzdOrxKBujOaBGLjo53UQUwUC1kr7yknww8=; b=CchdFhBb0j3nchiKCr3DnqS4T52ZMBP03NdYlzLz6aRfAKLZ8AYChp98oE6fMn6m5M WXkkVlmCwdURoIvQKcGZ9bOqNCwt9TX68La+9lo92uNTu/ga/zgAi1BkiDJC6gxJb++w msO2gbE8HH0tcxmnzquTKmCRXd4xfro/2txd51H9eKR4wvq0I8yX51UhVwNlMRH5TuBe 1KuqCpCrdX7eEL7rK2Y5KS7Qj6QqEumJpA9/6+L29bauc6bQfjNKYyB2aUeFb+WpY3aE JEuIYB7feFVtKHLzlYO6saQvXwldc2dUMo5AV+H8jjZu3oSBTf7t2y4+0Nwp82cJIsf+ gQ0A== X-Gm-Message-State: AOAM532rEPzReuWoAkIi/hjAgW3dkpiXgp2YI3FjV1wpwBvTO59syU7A wwjsL41YCCQLOZ8l2uXXvr7cUGr8ThlDOg== X-Google-Smtp-Source: ABdhPJxD19UJ6wjqoDu8yJsq1z4+gsOMyJrNaPWNrIvkIBQSxOheHoUCL3vm7Z3w2oSrwIoZsE6HAQ== X-Received: by 2002:a05:6638:25d4:: with SMTP id u20mr13806857jat.54.1606611032674; Sat, 28 Nov 2020 16:50:32 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:32 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Bin Meng , Icenowy Zheng , Jagan Teki , Marek Vasut , Masahiro Yamada , Neil Armstrong , Pavel Herrmann , u-boot-amlogic@groups.io Subject: [PATCH 05/11] dm: Drop uses of dev_set_of_offset() Date: Sat, 28 Nov 2020 17:50:04 -0700 Message-Id: <20201128174958.5.I538f3f84e07991a9886f3c697ed0ac238b827a6b@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean The need for this can be avoided by passing the correct node to the device_bind() function. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- drivers/gpio/mt7621_gpio.c | 3 +-- drivers/gpio/s5p_gpio.c | 4 +--- drivers/gpio/sunxi_gpio.c | 3 +-- drivers/gpio/tegra186_gpio.c | 3 +-- drivers/gpio/tegra_gpio.c | 5 ++--- drivers/pinctrl/meson/pinctrl-meson.c | 1 - 6 files changed, 6 insertions(+), 13 deletions(-) diff --git a/drivers/gpio/mt7621_gpio.c b/drivers/gpio/mt7621_gpio.c index 8b41e34844e..ea51291e237 100644 --- a/drivers/gpio/mt7621_gpio.c +++ b/drivers/gpio/mt7621_gpio.c @@ -158,11 +158,10 @@ static int gpio_mediatek_bind(struct udevice *parent) plat->bank = bank; ret = device_bind(parent, parent->driver, plat->bank_name, plat, - ofnode_null(), &dev); + node, &dev); if (ret) return ret; - dev->node = node; bank++; } diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c index d6054c4a6dd..ec8d54922d3 100644 --- a/drivers/gpio/s5p_gpio.c +++ b/drivers/gpio/s5p_gpio.c @@ -333,12 +333,10 @@ static int gpio_exynos_bind(struct udevice *parent) plat->bank_name = fdt_get_name(blob, node, NULL); ret = device_bind(parent, parent->driver, plat->bank_name, plat, - ofnode_null(), &dev); + offset_to_ofnode(node), &dev); if (ret) return ret; - dev_set_of_offset(dev, node); - reg = dev_read_addr(dev); if (reg != FDT_ADDR_T_NONE) bank = (struct s5p_gpio_bank *)((ulong)base + reg); diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c index b6b0e9acbdb..dea71a7f340 100644 --- a/drivers/gpio/sunxi_gpio.c +++ b/drivers/gpio/sunxi_gpio.c @@ -306,10 +306,9 @@ static int gpio_sunxi_bind(struct udevice *parent) plat->gpio_count = SUNXI_GPIOS_PER_BANK; ret = device_bind(parent, parent->driver, plat->bank_name, plat, - ofnode_null(), &dev); + dev_ofnode(parent), &dev); if (ret) return ret; - dev_set_of_offset(dev, dev_of_offset(parent)); } return 0; diff --git a/drivers/gpio/tegra186_gpio.c b/drivers/gpio/tegra186_gpio.c index bcc322c3b02..ad97e13a1cb 100644 --- a/drivers/gpio/tegra186_gpio.c +++ b/drivers/gpio/tegra186_gpio.c @@ -191,10 +191,9 @@ static int tegra186_gpio_bind(struct udevice *parent) plat->regs = &(regs[ctlr_data->ports[port].offset / 4]); ret = device_bind(parent, parent->driver, plat->name, plat, - ofnode_null(), &dev); + dev_ofnode(parent), &dev); if (ret) return ret; - dev_set_of_offset(dev, dev_of_offset(parent)); } return 0; diff --git a/drivers/gpio/tegra_gpio.c b/drivers/gpio/tegra_gpio.c index 3877ee659af..22d25313227 100644 --- a/drivers/gpio/tegra_gpio.c +++ b/drivers/gpio/tegra_gpio.c @@ -361,11 +361,10 @@ static int gpio_tegra_bind(struct udevice *parent) plat->port_name = gpio_port_name(base_port); ret = device_bind(parent, parent->driver, - plat->port_name, plat, ofnode_null(), - &dev); + plat->port_name, plat, + dev_ofnode(parent), &dev); if (ret) return ret; - dev_set_of_offset(dev, dev_of_offset(parent)); } } diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c index c35e4c42a09..37bddb14e08 100644 --- a/drivers/pinctrl/meson/pinctrl-meson.c +++ b/drivers/pinctrl/meson/pinctrl-meson.c @@ -422,7 +422,6 @@ int meson_pinctrl_probe(struct udevice *dev) /* Create child device UCLASS_GPIO and bind it */ device_bind(dev, priv->data->gpio_driver, name, NULL, offset_to_ofnode(gpio), &gpio_dev); - dev_set_of_offset(gpio_dev, gpio); return 0; } From patchwork Sun Nov 29 00:50:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407760 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=hBGUUCrL; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8tz59vhz9sSn for ; Sun, 29 Nov 2020 11:51:23 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 14B4D82732; Sun, 29 Nov 2020 01:50:55 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="hBGUUCrL"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E42A68275B; Sun, 29 Nov 2020 01:50:39 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id DAF468270E for ; Sun, 29 Nov 2020 01:50:34 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x142.google.com with SMTP id x15so7967741ilq.1 for ; Sat, 28 Nov 2020 16:50:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G8ZESKmubA8GSBy5DZl5iiSXSaGTIaVwHJzLWmkTACQ=; b=hBGUUCrLFNg5HZvlg96D6HCMhcNleDPoPF4raaRQWqpfalBhF+iQOqJZ/rB/O4YJA+ zxUdRd2c0MHT7MJ4kesNXuo7HI83B9mHQIcsw+4J4hKb5TrxNmOQwncxP8v909p5oZDQ cSf2DH6u3eDoONWj6pFHiDIIdAcFveeuJAQ8o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G8ZESKmubA8GSBy5DZl5iiSXSaGTIaVwHJzLWmkTACQ=; b=udZwPIP1NIXJLsL0fz2cVpubShKVMgqrOkWEXrmcPaiOTvwxcoh+3KlZDEhKZZoUXo l+jaIxmppOHtD+2TGElPE87MobeT6pxrGP3RTCUO5oXYHE54GcbEGq8nJ7BxOJuLSy4Y 5V3SSY0xKsGwGaQtGwq7kchDkiOJfRNA/+CVigrs7acw+C+y8ejXJuLEnYC4IufA0SuR qTfWzvErkjPtigetX5OI8nhVxpLoVzjkmwFukT3i1z4sSswoXWX4u84xBSh0j6U+Pt7w 5XVsVCan0uSutzp8Y4klIfMAiep3IndTkmzTwo8/5u6cQ3mU/VDyVrmMLLQt6nAZjk3h oBhA== X-Gm-Message-State: AOAM530xz2H3Fs9Y4NnmYJjST/wWz9oTjnJAsIiAPa4pkRLsREbSXYg7 HvrOcsz1L2QNdhC/7PCCsAB1wKD+n3Mquw== X-Google-Smtp-Source: ABdhPJw5l6czXCJCls3F2TcR7aJREm0NLnjSxz15X0phzdTCJ47riQs/VRkdMPp/8/n1SISnEC9qkQ== X-Received: by 2002:a05:6e02:689:: with SMTP id o9mr13018843ils.47.1606611033649; Sat, 28 Nov 2020 16:50:33 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:33 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Marek Vasut , Pavel Herrmann Subject: [PATCH 06/11] dm: core: Drop dev_set_of_offset() Date: Sat, 28 Nov 2020 17:50:05 -0700 Message-Id: <20201128174958.6.Ib1d61a00e42835cc4ed42779689b3ec58334128e@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This pre-livetree function is not needed anymore. Drop it. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- include/dm/device.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/include/dm/device.h b/include/dm/device.h index 5bef4842470..25a77d08b9d 100644 --- a/include/dm/device.h +++ b/include/dm/device.h @@ -177,11 +177,6 @@ static inline int dev_of_offset(const struct udevice *dev) return ofnode_to_offset(dev->node); } -static inline void dev_set_of_offset(struct udevice *dev, int of_offset) -{ - dev->node = offset_to_ofnode(of_offset); -} - static inline bool dev_has_of_node(struct udevice *dev) { return ofnode_valid(dev->node); From patchwork Sun Nov 29 00:50:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407764 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=blmUoep6; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8vv5FD8z9sRR for ; Sun, 29 Nov 2020 11:52:11 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 250C48277B; Sun, 29 Nov 2020 01:51:10 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="blmUoep6"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 555348241C; Sun, 29 Nov 2020 01:50:42 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CF2378273B for ; Sun, 29 Nov 2020 01:50:35 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd43.google.com with SMTP id z5so8252268iob.11 for ; Sat, 28 Nov 2020 16:50:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ppGCbZCSGp5FQAlNDRfffAJJDB9gvnklQlpAEZDVOeI=; b=blmUoep6cEKeD2BIY1tgVby6RzYSRxBuAhViIgi/YQtZCdFrHAbUndDM6imL+mtTgj UVUt3IfbwcC4l+WDw0eionsYQFrLJyda3bv0bdmJ+wggAw0mmTWJdmAEsMIQhpa9rjwn SsN4/zX6hGb8aae6oigielzF8ylrPgsTvCqt4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ppGCbZCSGp5FQAlNDRfffAJJDB9gvnklQlpAEZDVOeI=; b=ozFBiURIOlI27FJuKsjMZvoBYIwOvAo6RYKSKRbA7ssFSwjgQ/qv6pWmfJAcmoEVTY rVnuVaJofzRSZbfFiu+996gqYYRDMZ9nDM60w7L4xw8cqrJGtVKieBWLGsfVfZ6wQIbE 9Ybl4362x6k/QIUFdpIRd4C/KRqfHUs5dFlHtLJ+NkDXYv7e1UsDknLGsA/+pFulOW0E tTmiXH4CA+I0+E70uA14HS/9ktk8k/wMoHG7QSh65RNMHIUqYtBiny0YlE2z4r/MUdhd w7mYwSZGbzkKy+1LmFqZxSld5Lhhng8bb0+uQG3pF6w4qtn32Ugu33LOlTWZmcjgZlQJ Ganw== X-Gm-Message-State: AOAM533yVXfGkZ05pmoF2TTArPG6XsGjbdc8Wzumu1zGr704OIC3EdJq vZGt+XyuD2yMO6Zyr+y8xt6YxKlpqWxUUg== X-Google-Smtp-Source: ABdhPJx2SM6eW4bkavM9dvbZsBVHMUFc+d/vORs86nM+Q2xw/2fsfWJHcnYDeKH9Ut3QvBM4zfzO6A== X-Received: by 2002:a6b:2cd0:: with SMTP id s199mr11234552ios.129.1606611034562; Sat, 28 Nov 2020 16:50:34 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:34 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Marek Vasut , Pavel Herrmann Subject: [PATCH 07/11] dm: core: Drop device_bind_offset() Date: Sat, 28 Nov 2020 17:50:06 -0700 Message-Id: <20201128174958.7.I9ab40479628e51e68f2efc34e6aae90ebe0b6160@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This function is not needed since the standard device_bind() can be used instead. Drop it. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- drivers/core/device.c | 8 -------- include/dm/device-internal.h | 10 +++------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/core/device.c b/drivers/core/device.c index c8a219d77b3..79afaf06290 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -232,14 +232,6 @@ int device_bind_with_driver_data(struct udevice *parent, 0, devp); } -int device_bind_offset(struct udevice *parent, const struct driver *drv, - const char *name, void *platdata, int of_offset, - struct udevice **devp) -{ - return device_bind_common(parent, drv, name, platdata, 0, - offset_to_ofnode(of_offset), 0, devp); -} - int device_bind(struct udevice *parent, const struct driver *drv, const char *name, void *platdata, ofnode node, struct udevice **devp) diff --git a/include/dm/device-internal.h b/include/dm/device-internal.h index 6f4f8510f7e..578a483497e 100644 --- a/include/dm/device-internal.h +++ b/include/dm/device-internal.h @@ -16,7 +16,7 @@ struct device_node; struct udevice; /** - * device_bind_offset() - Create a device and bind it to a driver + * device_bind() - Create a device and bind it to a driver * * Called to set up a new device attached to a driver. The device will either * have platdata, or a device tree node which can be used to create the @@ -31,15 +31,11 @@ struct udevice; * @platdata: Pointer to data for this device - the structure is device- * specific but may include the device's I/O address, etc.. This is NULL for * devices which use device tree. - * @of_offset: Offset of device tree node for this device. This is -1 for - * devices which don't use device tree. + * @ofnode: Devicetree node for this device. This is ofnode_null() for + * devices which don't use devicetree or don't have a node. * @devp: if non-NULL, returns a pointer to the bound device * @return 0 if OK, -ve on error */ -int device_bind_offset(struct udevice *parent, const struct driver *drv, - const char *name, void *platdata, int of_offset, - struct udevice **devp); - int device_bind(struct udevice *parent, const struct driver *drv, const char *name, void *platdata, ofnode node, struct udevice **devp); From patchwork Sun Nov 29 00:50:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407763 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=LpmqvxJt; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8vh0BPRz9sRR for ; Sun, 29 Nov 2020 11:51:59 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 54BAD82762; Sun, 29 Nov 2020 01:51:07 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="LpmqvxJt"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8916A82732; Sun, 29 Nov 2020 01:50:41 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B142082741 for ; Sun, 29 Nov 2020 01:50:36 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd43.google.com with SMTP id r9so8259257ioo.7 for ; Sat, 28 Nov 2020 16:50:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kAGCBqk7a7kdSRcVLjdXe6h2gERNpB8WXbSHKemRpBQ=; b=LpmqvxJtLtfmMfcihEqboDhowvphdY2Nm+okjAzPzRMzYuxV02uitHXa8bqjedQJKs ojsloqOG2Hec9R0NG+x9864F45wEJlp7ZNSD3wo8UHWywTOW2GqbIT0ko8+W1BrUBL4C /Bb23CZzw5ZlbSdK4or00P2OLWBozoeLHna1Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kAGCBqk7a7kdSRcVLjdXe6h2gERNpB8WXbSHKemRpBQ=; b=ql3eKGWhs9/ptke1fOwfc4qSewNOZOjrYv+iIFqc01ALgGx1Rhf9QKtbgFY+7OJ9MU lyZ7d3Ldy3yLIvtbX9NtaPkfFUn/sSLE5jXVWWFdfJKZAgqwO5Ca5sHqASWxO4JTfFgE 01q6iuNPZvLOyaL9T7ap5zEGlzlnjOXzjQuhBq5Ll/WvGktxvjU+nlyy/NRhqwBhrYhR KabUizEo0H43GRPyQaUIicBopRqcaC2etOctOUQfSMFbdcsw5u4CmxWhqOJIsVh/02d3 lfmvkfVM0TrZ16DUpS08pd2lA0BQOrY0E3EzmxgExTAyHQxLjQ3GVQjJ/YOeLKSUPvbg kDqw== X-Gm-Message-State: AOAM530df6t0RGlp7e9XXPkZT3jjJENpnwbSwI+S17jAClBSzXJpb/NY VsxFh593MMMhkLv8FCgjj7DHvnWjNXTTMw== X-Google-Smtp-Source: ABdhPJwggG2k0GQEYy5+2zuJlrGPOqIytr+7/XwUMDXMZ8vb1oDGJ0JjMrzvx9qBZu2s5KOmzqMd9w== X-Received: by 2002:a05:6638:526:: with SMTP id j6mr2928562jar.1.1606611035474; Sat, 28 Nov 2020 16:50:35 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:35 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Marek Vasut , Pavel Herrmann Subject: [PATCH 08/11] dm: core: Add an ofnode function to get the devicetree root Date: Sat, 28 Nov 2020 17:50:07 -0700 Message-Id: <20201128174958.8.I6c692ce05eb01451838b2a517b166bd4dd76aec0@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- drivers/core/root.c | 8 ++------ include/dm/ofnode.h | 12 ++++++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/core/root.c b/drivers/core/root.c index 5f10d7a39c7..9ee65504e6e 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -147,12 +147,8 @@ int dm_init(bool of_live) ret = device_bind_by_name(NULL, false, &root_info, &DM_ROOT_NON_CONST); if (ret) return ret; -#if CONFIG_IS_ENABLED(OF_CONTROL) - if (CONFIG_IS_ENABLED(OF_LIVE) && of_live) - DM_ROOT_NON_CONST->node = np_to_ofnode(gd_of_root()); - else - DM_ROOT_NON_CONST->node = offset_to_ofnode(0); -#endif + if (CONFIG_IS_ENABLED(OF_CONTROL)) + DM_ROOT_NON_CONST->node = ofnode_root(); ret = device_probe(DM_ROOT_NON_CONST); if (ret) return ret; diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index ee8c44a71ec..53f04ac91d0 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -218,6 +218,18 @@ static inline ofnode ofnode_null(void) return node; } +static inline ofnode ofnode_root(void) +{ + ofnode node; + + if (of_live_active()) + node.np = gd_of_root(); + else + node.of_offset = 0; + + return node; +} + /** * ofnode_read_u32() - Read a 32-bit integer from a property * From patchwork Sun Nov 29 00:50:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407767 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=WcYB5eWS; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8wW1sGrz9sRR for ; Sun, 29 Nov 2020 11:52:41 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6216C82782; Sun, 29 Nov 2020 01:51:19 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="WcYB5eWS"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9896C8274A; Sun, 29 Nov 2020 01:50:48 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B964F82739 for ; Sun, 29 Nov 2020 01:50:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x142.google.com with SMTP id q1so7932604ilt.6 for ; Sat, 28 Nov 2020 16:50:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=c2c/y3i75/Uo8qpN35Xl3ARXRCquJ1vga2FJOjiXmXo=; b=WcYB5eWSwx2C/9wCAETdksGIF5bnXkPdf7tIg4sCuhiD+Mg3dykthVUFL5YIyYJbFP eV+6u47D9c8AceHioZYUgtwEXOptFhwV7iuiJPZO8BwrG65wTSycOJpi5p05DdRxrOwB 4fECLg2vakvoDQNT5WePEyGCZ+ZORoXmwcNZs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=c2c/y3i75/Uo8qpN35Xl3ARXRCquJ1vga2FJOjiXmXo=; b=ZDaBvMNw6rLG0qfabQJyMa2q8Qngi4dOsh5oVrrFmMvYN62iet5WRqEfh1Ccwsm5is jg/wyRVaoT6LOA5CJeD/j+jAYBuvPsm5YxxW/zAm8Kej3K6WwR9tQ41a/S+dHtWpS0j5 IykHns73+F9aFznepq4psQxswQH8Z7DPlvJhRXpk5vzxZk8oaU2cQ4ZvszfeDUDyyz6s EFAph4+DZRGejLviZPA4IAYl1nUEMKuxYkFvv2ALAaudYNDjiUFr8N/WNrQCUU5jb9ke 7ub8gvqnYMO0EGqfLLG+f3TdkVftc/XMYBQhlaBkgtvk9Vi74I1PHcbu2CuMk/jgsBzg xrjg== X-Gm-Message-State: AOAM532qwY+enqESlHrODHsihS9f9nJEb+E8LhF+hWuJUd3MqAugzOiV vEf/HL7K/EBXABEYJpcX/shPHy5GG8mqaA== X-Google-Smtp-Source: ABdhPJwRSs4eQOg8rHGuvKFpDmyq86cKRBgx/4nwpL3s4YHTmCqRpW3LGLLhPjCwq6jsH6b1a3VeoQ== X-Received: by 2002:a05:6e02:1207:: with SMTP id a7mr13164526ilq.29.1606611036395; Sat, 28 Nov 2020 16:50:36 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:35 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Marek Vasut , Pavel Herrmann Subject: [PATCH 09/11] dm: core: Combine the flattree and livetree binding code Date: Sat, 28 Nov 2020 17:50:08 -0700 Message-Id: <20201128174958.9.Ia1e9e05434447b46189fa7d729820c68dde511e0@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean At present there are two copies of this code. With ofnode we can combine them to reduce duplication. Update the dm_scan_fdt_node() function and adjust its callers. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- drivers/core/root.c | 74 ++++++++++----------------------------------- 1 file changed, 16 insertions(+), 58 deletions(-) diff --git a/drivers/core/root.c b/drivers/core/root.c index 9ee65504e6e..62efa0fedcf 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -199,33 +199,6 @@ int dm_scan_platdata(bool pre_reloc_only) } #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) -static int dm_scan_fdt_live(struct udevice *parent, - const struct device_node *node_parent, - bool pre_reloc_only) -{ - struct device_node *np; - int ret = 0, err; - - for (np = node_parent->child; np; np = np->sibling) { - - if (!of_device_is_available(np)) { - pr_debug(" - ignoring disabled device\n"); - continue; - } - err = lists_bind_fdt(parent, np_to_ofnode(np), NULL, - pre_reloc_only); - if (err && !ret) { - ret = err; - debug("%s: ret=%d\n", np->name, ret); - } - } - - if (ret) - dm_warn("Some drivers failed to bind\n"); - - return ret; -} - /** * dm_scan_fdt_node() - Scan the device tree and bind drivers for a node * @@ -233,28 +206,30 @@ static int dm_scan_fdt_live(struct udevice *parent, * for each one. * * @parent: Parent device for the devices that will be created - * @blob: Pointer to device tree blob - * @offset: Offset of node to scan + * @node: Node to scan * @pre_reloc_only: If true, bind only drivers with the DM_FLAG_PRE_RELOC * flag. If false bind all drivers. * @return 0 if OK, -ve on error */ -static int dm_scan_fdt_node(struct udevice *parent, const void *blob, - int offset, bool pre_reloc_only) +static int dm_scan_fdt_node(struct udevice *parent, ofnode parent_node, + bool pre_reloc_only) { int ret = 0, err; + ofnode node; + + if (!ofnode_valid(parent_node)) + return 0; - for (offset = fdt_first_subnode(blob, offset); - offset > 0; - offset = fdt_next_subnode(blob, offset)) { - const char *node_name = fdt_get_name(blob, offset, NULL); + for (node = ofnode_first_subnode(parent_node); + ofnode_valid(node); + node = ofnode_next_subnode(node)) { + const char *node_name = ofnode_get_name(node); - if (!fdtdec_get_is_enabled(blob, offset)) { + if (!ofnode_is_enabled(node)) { pr_debug(" - ignoring disabled device\n"); continue; } - err = lists_bind_fdt(parent, offset_to_ofnode(offset), NULL, - pre_reloc_only); + err = lists_bind_fdt(parent, node, NULL, pre_reloc_only); if (err && !ret) { ret = err; debug("%s: ret=%d\n", node_name, ret); @@ -269,24 +244,13 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob, int dm_scan_fdt_dev(struct udevice *dev) { - if (!dev_of_valid(dev)) - return 0; - - if (of_live_active()) - return dm_scan_fdt_live(dev, dev_np(dev), - gd->flags & GD_FLG_RELOC ? false : true); - - return dm_scan_fdt_node(dev, gd->fdt_blob, dev_of_offset(dev), + return dm_scan_fdt_node(dev, dev_ofnode(dev), gd->flags & GD_FLG_RELOC ? false : true); } int dm_scan_fdt(const void *blob, bool pre_reloc_only) { - if (of_live_active()) - return dm_scan_fdt_live(gd->dm_root, gd_of_root(), - pre_reloc_only); - - return dm_scan_fdt_node(gd->dm_root, blob, 0, pre_reloc_only); + return dm_scan_fdt_node(gd->dm_root, ofnode_root(), pre_reloc_only); } static int dm_scan_fdt_ofnode_path(const void *blob, const char *path, @@ -295,14 +259,8 @@ static int dm_scan_fdt_ofnode_path(const void *blob, const char *path, ofnode node; node = ofnode_path(path); - if (!ofnode_valid(node)) - return 0; - - if (of_live_active()) - return dm_scan_fdt_live(gd->dm_root, node.np, pre_reloc_only); - return dm_scan_fdt_node(gd->dm_root, blob, node.of_offset, - pre_reloc_only); + return dm_scan_fdt_node(gd->dm_root, node, pre_reloc_only); } int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only) From patchwork Sun Nov 29 00:50:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407765 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=lh72m7N7; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8w56hwVz9sRR for ; Sun, 29 Nov 2020 11:52:21 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2284E82788; Sun, 29 Nov 2020 01:51:12 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="lh72m7N7"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2D25182755; Sun, 29 Nov 2020 01:50:46 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B489E82750 for ; Sun, 29 Nov 2020 01:50:38 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd41.google.com with SMTP id o8so8297500ioh.0 for ; Sat, 28 Nov 2020 16:50:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JhYdQBAtvRoW6TeQo4I4BbP0mHwFs1ydYIfo2EL+1FQ=; b=lh72m7N7+qC6lAER1YSM/mwRwNU/KJViIilo/NjvzSx4Axn/IIyMHdSlOtjETP6qCH AI9Gc5QrHM0kkJx7/InpxNn8MUeFLghH1c0K5/ka1QeulrOY4fpcc0LeRfvofEP4w902 /YgoIREfwt+zdFLQJuQIQNrDKCEhaRJIVwDM0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JhYdQBAtvRoW6TeQo4I4BbP0mHwFs1ydYIfo2EL+1FQ=; b=aKltY/hbTKLShKz7AcWgwkUjl1bbQvwWVnw9a2I8+czRX/C78LqvOZ9hKahWTjtqFu T5+gUSj7T8yzic2yt7+heuJ6Kl2icVaPWuvZSMddLu9cxyyqR4RyuiKq99NJkT/rBeOi DPN2Ti+ETPhhwo5cy562JjB9XA5ieahlAK25J6XYrbQhGsl54iLjRJae6Hq2Gdg0knIO YHgkCTVT1/oeLdaMLokUbf3NP2YEAsfVfYlnL9OCVswlrHYtINUo9Dgq9UbHPDtz+ZM6 hYNV5AZvptYKufkStjGVssLYtGcXW41gh3fvHfgd0RQmiGvAijSUXeWF3zqXx4QFk8cD 9K8w== X-Gm-Message-State: AOAM530D09CnbCsv/+bUjRkONan6oleGSFxko/5Zr7FaglwYMJwWI9UD 8eMkkauWHW5+pkT77yzUVCxXL3IPLFCFcg== X-Google-Smtp-Source: ABdhPJz5P6hhCqOZRGdP/gK4XF57iV99u8/LeEMB8T0mK3E0HGoKaL8L2maggcZ7OMhroKfEN1ABwQ== X-Received: by 2002:a05:6602:29cf:: with SMTP id z15mr11267640ioq.39.1606611037416; Sat, 28 Nov 2020 16:50:37 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:36 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Marek Vasut , Pavel Herrmann Subject: [PATCH 10/11] dm: core: Drop unused parameter from dm_scan_fdt() Date: Sat, 28 Nov 2020 17:50:09 -0700 Message-Id: <20201128174958.10.I8f521f3ad512645f7b89cfaa3a0fca1ceaab147d@changeid> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This doesn't need to be passed the devicetree anymore. Drop it. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- drivers/core/root.c | 9 ++++----- include/dm/root.h | 3 +-- test/dm/core.c | 2 +- test/dm/test-fdt.c | 2 +- test/dm/test-main.c | 2 +- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/core/root.c b/drivers/core/root.c index 62efa0fedcf..54498b2df71 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -248,13 +248,12 @@ int dm_scan_fdt_dev(struct udevice *dev) gd->flags & GD_FLG_RELOC ? false : true); } -int dm_scan_fdt(const void *blob, bool pre_reloc_only) +int dm_scan_fdt(bool pre_reloc_only) { return dm_scan_fdt_node(gd->dm_root, ofnode_root(), pre_reloc_only); } -static int dm_scan_fdt_ofnode_path(const void *blob, const char *path, - bool pre_reloc_only) +static int dm_scan_fdt_ofnode_path(const char *path, bool pre_reloc_only) { ofnode node; @@ -272,7 +271,7 @@ int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only) "/firmware" }; - ret = dm_scan_fdt(blob, pre_reloc_only); + ret = dm_scan_fdt(pre_reloc_only); if (ret) { debug("dm_scan_fdt() failed: %d\n", ret); return ret; @@ -280,7 +279,7 @@ int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only) /* Some nodes aren't devices themselves but may contain some */ for (i = 0; i < ARRAY_SIZE(nodes); i++) { - ret = dm_scan_fdt_ofnode_path(blob, nodes[i], pre_reloc_only); + ret = dm_scan_fdt_ofnode_path(nodes[i], pre_reloc_only); if (ret) { debug("dm_scan_fdt() scan for %s failed: %d\n", nodes[i], ret); diff --git a/include/dm/root.h b/include/dm/root.h index c8d629ba9bf..e277ebb9523 100644 --- a/include/dm/root.h +++ b/include/dm/root.h @@ -47,12 +47,11 @@ int dm_scan_platdata(bool pre_reloc_only); * This scans the device tree and creates a driver for each node. Only * the top-level subnodes are examined. * - * @blob: Pointer to device tree blob * @pre_reloc_only: If true, bind only nodes with special devicetree properties, * or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers. * @return 0 if OK, -ve on error */ -int dm_scan_fdt(const void *blob, bool pre_reloc_only); +int dm_scan_fdt(bool pre_reloc_only); /** * dm_extended_scan_fdt() - Scan the device tree and bind drivers diff --git a/test/dm/core.c b/test/dm/core.c index ba9e60d09cb..71ebb36d88b 100644 --- a/test/dm/core.c +++ b/test/dm/core.c @@ -486,7 +486,7 @@ static int dm_test_leak(struct unit_test_state *uts) dm_leak_check_start(uts); ut_assertok(dm_scan_platdata(false)); - ut_assertok(dm_scan_fdt(gd->fdt_blob, false)); + ut_assertok(dm_scan_fdt(false)); /* Scanning the uclass is enough to probe all the devices */ for (id = UCLASS_ROOT; id < UCLASS_COUNT; id++) { diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c index cc12419ea0f..9507636b630 100644 --- a/test/dm/test-fdt.c +++ b/test/dm/test-fdt.c @@ -308,7 +308,7 @@ static int dm_test_fdt_pre_reloc(struct unit_test_state *uts) struct uclass *uc; int ret; - ret = dm_scan_fdt(gd->fdt_blob, true); + ret = dm_scan_fdt(true); ut_assert(!ret); ret = uclass_get(UCLASS_TEST_FDT, &uc); diff --git a/test/dm/test-main.c b/test/dm/test-main.c index fd24635006c..2ab73b647e6 100644 --- a/test/dm/test-main.c +++ b/test/dm/test-main.c @@ -213,7 +213,7 @@ int dm_test_main(const char *test_name) ut_assertok(dm_init(CONFIG_IS_ENABLED(OF_LIVE))); dm_scan_platdata(false); if (!CONFIG_IS_ENABLED(OF_PLATDATA)) - dm_scan_fdt(gd->fdt_blob, false); + dm_scan_fdt(false); return uts->fail_count ? CMD_RET_FAILURE : 0; } From patchwork Sun Nov 29 00:50:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1407766 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=MSJJ4d4z; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Ck8wH6D4sz9sRR for ; Sun, 29 Nov 2020 11:52:31 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5F63B82793; Sun, 29 Nov 2020 01:51:15 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="MSJJ4d4z"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 625B48275B; Sun, 29 Nov 2020 01:50:47 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A5B8E8274A for ; Sun, 29 Nov 2020 01:50:39 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x141.google.com with SMTP id v3so7946153ilo.5 for ; Sat, 28 Nov 2020 16:50:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=M47PDhYKUY1nL4ypby5yp1krYIDEqCfpuPzjS9/UoiM=; b=MSJJ4d4z+Tthda6S7aHbA2+j6kj9rlAnOAc97UkF8svPv1zw6nk0YXyMFSoXHk0KY7 ANPBj04BOSEsJHPJiG5Pmw5UKgxSlbo56zUNE815ZhLs6vXqIvOMU8E12awMApaDyUlB O675v9tcdVPq5r6Jcb598HmrmFjvJZj6Ahd3g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=M47PDhYKUY1nL4ypby5yp1krYIDEqCfpuPzjS9/UoiM=; b=UVZyGspS9tVaIca6XPgEMZ8hAhI/3xAIC4RQIrUGnJx2Ph0zaTgSaZC5K1xNhpvipC fFVxcbNMuuERC2hBXCAjm5biYUxruDIq+kFnpDpqxdpzTkqlkLWwnR6C9z4tgn/+9mlf q8K7WnAzVwyFpTFf76Ma4V7Qz08koeKZWM6da4SEiwmLCVW2COdyETWzm3mhxJIURfoq jN1MhIe/G6DJ/9KO5SZpTqh0qkbW5uUoLdIn6ddMhsjEAUt2ZxwQgt60IcAATtsSyIRz lsvqlApwXeLLn4fWkDA9eAyPYWjX/fqL8ewWS22bi+vjoqv8P8RQqVTwsqPF5pEQdId5 vWGA== X-Gm-Message-State: AOAM531Kr22X/hiH5D+UhxqYzr7dcb4MYffVkaJJltyO1OM0K3ZVh6Ps yzerdWX1rs7h8hfwc/XR/Z+EPIOOHbLhgg== X-Google-Smtp-Source: ABdhPJxat5qtrPKDFs1GR9K7YaZP1gwx8Hj5CRLFoC3KPDQfTiK2IlMnkelJoBEY6G60LOPTJotH6Q== X-Received: by 2002:a92:5eda:: with SMTP id f87mr13684108ilg.131.1606611038366; Sat, 28 Nov 2020 16:50:38 -0800 (PST) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id s4sm5807982iop.21.2020.11.28.16.50.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 16:50:37 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass , Marek Vasut , Pavel Herrmann Subject: [PATCH 11/11] dm: core: Drop unused parameter from dm_extended_scan_fdt() Date: Sat, 28 Nov 2020 17:50:10 -0700 Message-Id: <20201129005011.2104545-2-sjg@chromium.org> X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog In-Reply-To: <20201129005011.2104545-1-sjg@chromium.org> References: <20201129005011.2104545-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This doesn't need to be passed the devicetree anymore. Drop it. Also rename the function to drop the _fdt suffix. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- drivers/core/root.c | 6 +++--- include/dm/root.h | 5 ++--- test/dm/test-fdt.c | 2 +- test/dm/test-main.c | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/core/root.c b/drivers/core/root.c index 54498b2df71..6f8168bb92d 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -262,7 +262,7 @@ static int dm_scan_fdt_ofnode_path(const char *path, bool pre_reloc_only) return dm_scan_fdt_node(gd->dm_root, node, pre_reloc_only); } -int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only) +int dm_extended_scan(bool pre_reloc_only) { int ret, i; const char * const nodes[] = { @@ -315,9 +315,9 @@ int dm_init_and_scan(bool pre_reloc_only) } if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) { - ret = dm_extended_scan_fdt(gd->fdt_blob, pre_reloc_only); + ret = dm_extended_scan(pre_reloc_only); if (ret) { - debug("dm_extended_scan_dt() failed: %d\n", ret); + debug("dm_extended_scan() failed: %d\n", ret); return ret; } } diff --git a/include/dm/root.h b/include/dm/root.h index e277ebb9523..830e31312df 100644 --- a/include/dm/root.h +++ b/include/dm/root.h @@ -54,18 +54,17 @@ int dm_scan_platdata(bool pre_reloc_only); int dm_scan_fdt(bool pre_reloc_only); /** - * dm_extended_scan_fdt() - Scan the device tree and bind drivers + * dm_extended_scan() - Scan the device tree and bind drivers * * This calls dm_scna_dft() which scans the device tree and creates a driver * for each node. the top-level subnodes are examined and also all sub-nodes * of "clocks" node. * - * @blob: Pointer to device tree blob * @pre_reloc_only: If true, bind only nodes with special devicetree properties, * or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers. * @return 0 if OK, -ve on error */ -int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only); +int dm_extended_scan(bool pre_reloc_only); /** * dm_scan_other() - Scan for other devices diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c index 9507636b630..673ffb4de94 100644 --- a/test/dm/test-fdt.c +++ b/test/dm/test-fdt.c @@ -257,7 +257,7 @@ static int dm_test_fdt(struct unit_test_state *uts) int ret; int i; - ret = dm_extended_scan_fdt(gd->fdt_blob, false); + ret = dm_extended_scan(false); ut_assert(!ret); ret = uclass_get(UCLASS_TEST_FDT, &uc); diff --git a/test/dm/test-main.c b/test/dm/test-main.c index 2ab73b647e6..4814e186cb7 100644 --- a/test/dm/test-main.c +++ b/test/dm/test-main.c @@ -94,7 +94,7 @@ static int dm_do_test(struct unit_test_state *uts, struct unit_test *test, ut_assertok(do_autoprobe(uts)); if (!CONFIG_IS_ENABLED(OF_PLATDATA) && (test->flags & UT_TESTF_SCAN_FDT)) - ut_assertok(dm_extended_scan_fdt(gd->fdt_blob, false)); + ut_assertok(dm_extended_scan(false)); /* * Silence the console and rely on console recording to get