From patchwork Wed Jun 8 02:48:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 631941 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3rPXzK3xwnz9t2p for ; Wed, 8 Jun 2016 12:52:29 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b=VJFOfLJv; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id AB148A7661; Wed, 8 Jun 2016 04:51:09 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4oc3S2_kE5U8; Wed, 8 Jun 2016 04:51:09 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 448CBA7658; Wed, 8 Jun 2016 04:49:30 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id C4B8BA752D for ; Wed, 8 Jun 2016 04:48:47 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lnFiBHfZTJCi for ; Wed, 8 Jun 2016 04:48:47 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-io0-f174.google.com (mail-io0-f174.google.com [209.85.223.174]) by theia.denx.de (Postfix) with ESMTPS id 209BFA75B8 for ; Wed, 8 Jun 2016 04:48:35 +0200 (CEST) Received: by mail-io0-f174.google.com with SMTP id 5so31907554ioy.1 for ; Tue, 07 Jun 2016 19:48:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=ZLP6b3H0RXusARYzDNZfOMII+fvsmw6R4QEsvB3acx8=; b=VJFOfLJv5DP3tKUd1gmBj2XCjTNE/qg8WNH2xDnQ3g/EmR2CHM/5V++bHzHv/2+UsV hn/XrgDmfbwI6TiRe4YOVKGseHeDnCDFNS2aw2TjjHkr3UJ6UPj9F7edhZwi2lQG9IXX rrGkD5K6laPJED0rNumXYb302bOCyHK6b9amqz3Jz/DRZgPrkUwPTT8WSlTWlSPqOVsM /cM+jI/3TkLh+8mjmPGH/oQ4DuBicCj5V/52KuFRHGYR+a4/dxKMhOxEh5Wrt69Ow6Fd WQ4c/27Z286AgJ0pLBcGr8M3WvqBCjDcvEkLXfN3GTbS2eGwvD2q5jItu39KTmnh4E43 5W+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=ZLP6b3H0RXusARYzDNZfOMII+fvsmw6R4QEsvB3acx8=; b=IqHlfoSC4XDqKyesiFeoIlGiPuz5mulL1Lxlj7qSwuxrwilBxCj7YP9SsjXZkQoGpZ Ag+uOya8DptuGHJ454ooOd659ACf0ilHiJBu+ln4BWZcNWGVj5YoTlNGVlhd/7FiWhor ZCNzKIgxy5MYSXM1178ISzUlXW472cWOHKDtaRkixc3g7p4fOKUhenOX6QFDiRo+edCF 8kWhREEfuXgP62J7z6nLlo/7WVzYMiljmtG4R9o1VmKlRWtNa0v7m4BogsTV3ET3ER/y dRplTfzB6JN5q/7+GkQ1KAQKGgnGzMAArI0dwuacfBGJGPGjC5YCwEpVrj+I41K3k235 zqbw== X-Gm-Message-State: ALyK8tID/xr6rb8OSUB7BwaSn6mQVOYZg0dXfVMv21D1Vn3I9XFYLRXCRdHCCfINgPs24sIq X-Received: by 10.107.25.13 with SMTP id 13mr4659482ioz.104.1465354113809; Tue, 07 Jun 2016 19:48:33 -0700 (PDT) Received: from kaki.bld.corp.google.com ([100.100.202.57]) by smtp.gmail.com with ESMTPSA id p68sm2219019itc.19.2016.06.07.19.48.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Jun 2016 19:48:29 -0700 (PDT) Received: by kaki.bld.corp.google.com (Postfix, from userid 121222) id D0BBB223F2C; Tue, 7 Jun 2016 20:48:25 -0600 (MDT) From: Simon Glass To: U-Boot Mailing List Date: Tue, 7 Jun 2016 20:48:01 -0600 Message-Id: <1465354089-3508-24-git-send-email-sjg@chromium.org> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 In-Reply-To: <1465354089-3508-1-git-send-email-sjg@chromium.org> References: <1465354089-3508-1-git-send-email-sjg@chromium.org> Cc: Tom Rini Subject: [U-Boot] [PATCH 23/31] dm: clk: Add support for of-platdata X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add support for this feature in the core clock code. Signed-off-by: Simon Glass --- drivers/clk/clk-uclass.c | 20 ++++++++++++++++++++ drivers/clk/clk_fixed_rate.c | 2 ++ include/clk.h | 4 ++++ 3 files changed, 26 insertions(+) diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index b483c1e..efe2d4e 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -65,6 +66,22 @@ ulong clk_set_periph_rate(struct udevice *dev, int periph, ulong rate) } #if CONFIG_IS_ENABLED(OF_CONTROL) +# if CONFIG_IS_ENABLED(OF_PLATDATA) +int clk_get_by_index_platdata(struct udevice *dev, int index, + struct phandle_2_cell *cells, + struct udevice **clk_devp) +{ + int ret; + + if (index != 0) + return -ENOSYS; + assert(*clk_devp); + ret = uclass_get_device(UCLASS_CLK, 0, clk_devp); + if (ret) + return ret; + return cells[0].id; +} +# else int clk_get_by_index(struct udevice *dev, int index, struct udevice **clk_devp) { int ret; @@ -104,6 +121,9 @@ int clk_get_by_index(struct udevice *dev, int index, struct udevice **clk_devp) return args.args_count > 0 ? args.args[0] : 0; #endif } +# endif /* OF_PLATDATA */ +#else + #endif UCLASS_DRIVER(clk) = { diff --git a/drivers/clk/clk_fixed_rate.c b/drivers/clk/clk_fixed_rate.c index 8beda9c..8c3fb8f 100644 --- a/drivers/clk/clk_fixed_rate.c +++ b/drivers/clk/clk_fixed_rate.c @@ -33,9 +33,11 @@ const struct clk_ops clk_fixed_rate_ops = { static int clk_fixed_rate_ofdata_to_platdata(struct udevice *dev) { +#if !CONFIG_IS_ENABLED(OF_PLATDATA) to_clk_fixed_rate(dev)->fixed_rate = fdtdec_get_int(gd->fdt_blob, dev->of_offset, "clock-frequency", 0); +#endif return 0; } diff --git a/include/clk.h b/include/clk.h index ca20c3d..e4d23be 100644 --- a/include/clk.h +++ b/include/clk.h @@ -120,6 +120,10 @@ ulong clk_set_periph_rate(struct udevice *dev, int periph, ulong rate); * argument after the clock node phandle. If there is no arguemnt, * returns 0. Return -ve error code on any error */ +struct phandle_2_cell; +int clk_get_by_index_platdata(struct udevice *dev, int index, + struct phandle_2_cell *cells, + struct udevice **clk_devp); int clk_get_by_index(struct udevice *dev, int index, struct udevice **clk_devp); #else static inline int clk_get_by_index(struct udevice *dev, int index,