{"id":809667,"url":"http://patchwork.ozlabs.org/api/1.0/patches/809667/?format=json","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/1.0/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<1504529757-10843-2-git-send-email-patrice.chotard@st.com>","date":"2017-09-04T12:55:56","name":"[U-Boot,v3,1/2] dm: core: add clocks node scan","commit_ref":"e81c98649b7a67d43c5baae407430a242d3b26b9","pull_url":null,"state":"accepted","archived":false,"hash":"af9a0db8e0f65560e4807f1dee69ed758e710d52","submitter":{"id":63958,"url":"http://patchwork.ozlabs.org/api/1.0/people/63958/?format=json","name":"Patrice CHOTARD","email":"patrice.chotard@st.com"},"delegate":{"id":3184,"url":"http://patchwork.ozlabs.org/api/1.0/users/3184/?format=json","username":"sjg","first_name":"Simon","last_name":"Glass","email":"sjg@chromium.org"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/1504529757-10843-2-git-send-email-patrice.chotard@st.com/mbox/","series":[{"id":1373,"url":"http://patchwork.ozlabs.org/api/1.0/series/1373/?format=json","date":"2017-09-04T12:55:55","name":"dm: core: add clocks node scan","version":3,"mbox":"http://patchwork.ozlabs.org/series/1373/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/809667/checks/","tags":{},"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)","Received":["from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xm8yM59Htz9sNr\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon,  4 Sep 2017 22:57:31 +1000 (AEST)","by lists.denx.de (Postfix, from userid 105)\n\tid 79D99C21F1F; Mon,  4 Sep 2017 12:57:01 +0000 (UTC)","from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 9FA15C21C2F;\n\tMon,  4 Sep 2017 12:56:46 +0000 (UTC)","by lists.denx.de (Postfix, from userid 105)\n\tid 7BC39C21C2F; Mon,  4 Sep 2017 12:56:42 +0000 (UTC)","from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com\n\t[91.207.212.93])\n\tby lists.denx.de (Postfix) with ESMTPS id 27DF7C21D9E\n\tfor <u-boot@lists.denx.de>; Mon,  4 Sep 2017 12:56:42 +0000 (UTC)","from pps.filterd (m0046660.ppops.net [127.0.0.1])\n\tby mx08-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv84Cl7RB022427; Mon, 4 Sep 2017 14:56:41 +0200","from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35])\n\tby mx08-00178001.pphosted.com with ESMTP id 2cqhs528wn-1\n\t(version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT);\n\tMon, 04 Sep 2017 14:56:41 +0200","from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9])\n\tby beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 717D038;\n\tMon,  4 Sep 2017 12:56:40 +0000 (GMT)","from Webmail-eu.st.com (sfhdag6node3.st.com [10.75.127.18])\n\tby zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 57710293E;\n\tMon,  4 Sep 2017 12:56:40 +0000 (GMT)","from localhost (10.75.127.46) by SFHDAG6NODE3.st.com (10.75.127.18)\n\twith Microsoft SMTP Server (TLS) id 15.0.1178.4;\n\tMon, 4 Sep 2017 14:56:39 +0200"],"X-Spam-Checker-Version":"SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW\n\tautolearn=unavailable autolearn_force=no version=3.4.0","From":"<patrice.chotard@st.com>","To":"<sjg@chromium.org>, <yamada.masahiro@socionext.com>","Date":"Mon, 4 Sep 2017 14:55:56 +0200","Message-ID":"<1504529757-10843-2-git-send-email-patrice.chotard@st.com>","X-Mailer":"git-send-email 1.9.1","In-Reply-To":"<1504529757-10843-1-git-send-email-patrice.chotard@st.com>","References":"<1504529757-10843-1-git-send-email-patrice.chotard@st.com>","MIME-Version":"1.0","X-Originating-IP":"[10.75.127.46]","X-ClientProxiedBy":"SFHDAG4NODE2.st.com (10.75.127.11) To SFHDAG6NODE3.st.com\n\t(10.75.127.18)","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-04_08:, , signatures=0","Cc":"u-boot@lists.denx.de","Subject":"[U-Boot] [PATCH v3 1/2] dm: core: add clocks node scan","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.18","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<http://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>"},"content":"From: Patrice Chotard <patrice.chotard@st.com>\n\nCurrently, all fixed-clock declared in \"clocks\" node in device tree\ncan be binded by clk_fixed_rate.c driver only if each of them have\nthe \"simple-bus\" compatible string.\nThis constraint has been invoked here [1].\n\nThis patch offers a solution to avoid adding \"simple-bus\" compatible\nstring to nodes that are not busses.\n\n[1] https://patchwork.ozlabs.org/patch/558837/\n\nSigned-off-by: Patrice Chotard <patrice.chotard@st.com>\n---\n\nv3:\t_ rename dm_extended_scan_dt() to dm_extended_scan_fdt() to insure \n\t  function naming consistency\n\t_ update dm_extended_scan_fdt() description\n\n drivers/core/root.c | 34 ++++++++++++++++++++++++++++++++--\n include/dm/root.h   | 14 ++++++++++++++\n 2 files changed, 46 insertions(+), 2 deletions(-)","diff":"diff --git a/drivers/core/root.c b/drivers/core/root.c\nindex d691d6f..757d109 100644\n--- a/drivers/core/root.c\n+++ b/drivers/core/root.c\n@@ -312,8 +312,38 @@ int dm_scan_fdt(const void *blob, bool pre_reloc_only)\n #endif\n \treturn dm_scan_fdt_node(gd->dm_root, blob, 0, pre_reloc_only);\n }\n+#else\n+static int dm_scan_fdt_node(struct udevice *parent, const void *blob,\n+\t\t\t    int offset, bool pre_reloc_only)\n+{\n+\treturn 0;\n+}\n #endif\n \n+int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only)\n+{\n+\tint node, ret;\n+\n+\tret = dm_scan_fdt(gd->fdt_blob, pre_reloc_only);\n+\tif (ret) {\n+\t\tdebug(\"dm_scan_fdt() failed: %d\\n\", ret);\n+\t\treturn ret;\n+\t}\n+\n+\t/* bind fixed-clock */\n+\tnode = ofnode_to_offset(ofnode_path(\"/clocks\"));\n+\t/* if no DT \"clocks\" node, no need to go further */\n+\tif (node < 0)\n+\t\treturn ret;\n+\n+\tret = dm_scan_fdt_node(gd->dm_root, gd->fdt_blob, node,\n+\t\t\t       pre_reloc_only);\n+\tif (ret)\n+\t\tdebug(\"dm_scan_fdt_node() failed: %d\\n\", ret);\n+\n+\treturn ret;\n+}\n+\n __weak int dm_scan_other(bool pre_reloc_only)\n {\n \treturn 0;\n@@ -335,9 +365,9 @@ int dm_init_and_scan(bool pre_reloc_only)\n \t}\n \n \tif (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) {\n-\t\tret = dm_scan_fdt(gd->fdt_blob, pre_reloc_only);\n+\t\tret = dm_extended_scan_fdt(gd->fdt_blob, pre_reloc_only);\n \t\tif (ret) {\n-\t\t\tdebug(\"dm_scan_fdt() failed: %d\\n\", ret);\n+\t\t\tdebug(\"dm_extended_scan_dt() failed: %d\\n\", ret);\n \t\t\treturn ret;\n \t\t}\n \t}\ndiff --git a/include/dm/root.h b/include/dm/root.h\nindex 50a6011..b075eef 100644\n--- a/include/dm/root.h\n+++ b/include/dm/root.h\n@@ -56,6 +56,20 @@ int dm_scan_platdata(bool pre_reloc_only);\n int dm_scan_fdt(const void *blob, bool pre_reloc_only);\n \n /**\n+ * dm_extended_scan_fdt() - Scan the device tree and bind drivers\n+ *\n+ * This calls dm_scna_dft() which scans the device tree and creates a driver\n+ * for each node. the top-level subnodes are examined and also all sub-nodes\n+ * of \"clocks\" node.\n+ *\n+ * @blob: Pointer to device tree blob\n+ * @pre_reloc_only: If true, bind only drivers with the DM_FLAG_PRE_RELOC\n+ * flag. If false bind all drivers.\n+ * @return 0 if OK, -ve on error\n+ */\n+int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only);\n+\n+/**\n  * dm_scan_other() - Scan for other devices\n  *\n  * Some devices may not be visible to Driver Model. This weak function can\n","prefixes":["U-Boot","v3","1/2"]}