From patchwork Mon Mar 9 08:22:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ang, Chee Hong" X-Patchwork-Id: 1251271 X-Patchwork-Delegate: trini@ti.com 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=fail (p=none dis=none) header.from=intel.com 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 48bWS65RPSz9sPK for ; Mon, 9 Mar 2020 19:22:46 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EEB71812EB; Mon, 9 Mar 2020 09:22:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 358AD812D1; Mon, 9 Mar 2020 09:22:22 +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=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6E2EE8123C for ; Mon, 9 Mar 2020 09:22:16 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=chee.hong.ang@intel.com X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Mar 2020 01:22:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,532,1574150400"; d="scan'208";a="440842653" Received: from unknown (HELO admin-vm-ubuntu1604.localdomain) ([10.226.242.214]) by fmsmga005.fm.intel.com with ESMTP; 09 Mar 2020 01:22:12 -0700 From: chee.hong.ang@intel.com To: u-boot@lists.denx.de Cc: Marek Vasut , Simon Goldschmidt , Ching Liang See , Ley Foon Tan , Dalon Westergteen , Chee Hong Ang Subject: [PATCH v1 2/2] clk: socfpga: Switch to use ofnode API Date: Mon, 9 Mar 2020 01:22:00 -0700 Message-Id: <1583742120-6661-3-git-send-email-chee.hong.ang@intel.com> In-Reply-To: <1583742120-6661-1-git-send-email-chee.hong.ang@intel.com> References: <1583742120-6661-1-git-send-email-chee.hong.ang@intel.com> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.2 at phobos.denx.de X-Virus-Status: Clean From: Chee Hong Ang Replace FDT API with more generic ofnode API. Signed-off-by: Chee Hong Ang Reviewed-by: Ley Foon Tan --- drivers/clk/altera/clk-arria10.c | 52 +++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/drivers/clk/altera/clk-arria10.c b/drivers/clk/altera/clk-arria10.c index b7eed94..01bf5ec 100644 --- a/drivers/clk/altera/clk-arria10.c +++ b/drivers/clk/altera/clk-arria10.c @@ -190,16 +190,16 @@ static struct clk_ops socfpga_a10_clk_ops = { static void socfpga_a10_handoff_workaround(struct udevice *dev) { struct socfpga_a10_clk_platdata *plat = dev_get_platdata(dev); - const void *fdt = gd->fdt_blob; struct clk_bulk *bulk = &plat->clks; - int i, ret, offset = dev_of_offset(dev); + ofnode node = dev_ofnode(dev); + int i, ret; static const char * const socfpga_a10_fixedclk_map[] = { "osc1", "altera_arria10_hps_eosc1", "cb_intosc_ls_clk", "altera_arria10_hps_cb_intosc_ls", "f2s_free_clk", "altera_arria10_hps_f2h_free", }; - if (fdt_node_check_compatible(fdt, offset, "fixed-clock")) + if (!ofnode_device_is_compatible(node, "fixed-clock")) return; for (i = 0; i < ARRAY_SIZE(socfpga_a10_fixedclk_map); i += 2) @@ -227,42 +227,41 @@ static void socfpga_a10_handoff_workaround(struct udevice *dev) static int socfpga_a10_clk_bind(struct udevice *dev) { - const void *fdt = gd->fdt_blob; - int offset = dev_of_offset(dev); bool pre_reloc_only = !(gd->flags & GD_FLG_RELOC); const char *name; + ofnode node; int ret; - for (offset = fdt_first_subnode(fdt, offset); - offset > 0; - offset = fdt_next_subnode(fdt, offset)) { - name = fdt_get_name(fdt, offset, NULL); + for (node = dev_read_first_subnode(dev); + ofnode_valid(node); + node = ofnode_next_subnode(node)) { + name = ofnode_get_name(node); if (!name) return -EINVAL; if (!strcmp(name, "clocks")) { - offset = fdt_first_subnode(fdt, offset); - name = fdt_get_name(fdt, offset, NULL); + node = ofnode_first_subnode(node); + name = ofnode_get_name(node); if (!name) return -EINVAL; } /* Filter out supported sub-clock */ - if (fdt_node_check_compatible(fdt, offset, + if (!ofnode_device_is_compatible(node, "altr,socfpga-a10-pll-clock") && - fdt_node_check_compatible(fdt, offset, + !ofnode_device_is_compatible(node, "altr,socfpga-a10-perip-clk") && - fdt_node_check_compatible(fdt, offset, + !ofnode_device_is_compatible(node, "altr,socfpga-a10-gate-clk") && - fdt_node_check_compatible(fdt, offset, "fixed-clock")) + !ofnode_device_is_compatible(node, "fixed-clock")) continue; if (pre_reloc_only && - !dm_ofnode_pre_reloc(offset_to_ofnode(offset))) + !dm_ofnode_pre_reloc(node)) continue; ret = device_bind_driver_to_node(dev, "clk-a10", name, - offset_to_ofnode(offset), + node, NULL); if (ret) return ret; @@ -273,18 +272,17 @@ static int socfpga_a10_clk_bind(struct udevice *dev) static int socfpga_a10_clk_probe(struct udevice *dev) { + ofnode node = dev_ofnode(dev); struct socfpga_a10_clk_platdata *plat = dev_get_platdata(dev); struct socfpga_a10_clk_platdata *pplat; struct udevice *pdev; - const void *fdt = gd->fdt_blob; - int offset = dev_of_offset(dev); clk_get_bulk(dev, &plat->clks); socfpga_a10_handoff_workaround(dev); - if (!fdt_node_check_compatible(fdt, offset, "altr,clk-mgr")) { - plat->regs = devfdt_get_addr(dev); + if (ofnode_device_is_compatible(node, "altr,clk-mgr")) { + plat->regs = ofnode_get_addr(node); } else { pdev = dev_get_parent(dev); if (!pdev) @@ -298,18 +296,18 @@ static int socfpga_a10_clk_probe(struct udevice *dev) plat->regs = pplat->regs; } - if (!fdt_node_check_compatible(fdt, offset, - "altr,socfpga-a10-pll-clock")) { + if (ofnode_device_is_compatible(node, + "altr,socfpga-a10-pll-clock")) { /* Main PLL has 3 upstream clock */ if (plat->clks.count == 3) plat->type = SOCFPGA_A10_CLK_MAIN_PLL; else plat->type = SOCFPGA_A10_CLK_PER_PLL; - } else if (!fdt_node_check_compatible(fdt, offset, - "altr,socfpga-a10-perip-clk")) { + } else if (ofnode_device_is_compatible(node, + "altr,socfpga-a10-perip-clk")) { plat->type = SOCFPGA_A10_CLK_PERIP_CLK; - } else if (!fdt_node_check_compatible(fdt, offset, - "altr,socfpga-a10-gate-clk")) { + } else if (ofnode_device_is_compatible(node, + "altr,socfpga-a10-gate-clk")) { plat->type = SOCFPGA_A10_CLK_GATE_CLK; } else { plat->type = SOCFPGA_A10_CLK_UNKNOWN_CLK;