From patchwork Fri Jan 22 02:44:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 571496 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 7B3A3140556 for ; Fri, 22 Jan 2016 14:13:23 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b=Aj58oR8u; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id CB9CE4BEE5; Fri, 22 Jan 2016 04:13:21 +0100 (CET) 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 wrKyBHvIqtl1; Fri, 22 Jan 2016 04:13:21 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 73F02A7654; Fri, 22 Jan 2016 04:02:42 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A0AA04BFC0 for ; Fri, 22 Jan 2016 04:01:25 +0100 (CET) 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 jgQ6KnfoA-WB for ; Fri, 22 Jan 2016 04:01:25 +0100 (CET) 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-oi0-f54.google.com (mail-oi0-f54.google.com [209.85.218.54]) by theia.denx.de (Postfix) with ESMTPS id 33453A7518 for ; Fri, 22 Jan 2016 03:54:32 +0100 (CET) Received: by mail-oi0-f54.google.com with SMTP id p187so39413322oia.2 for ; Thu, 21 Jan 2016 18:54:32 -0800 (PST) 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=xiON24xztH0g3Ou0g+gTukhH6P9Hq1tNJFxdamWCwzc=; b=Aj58oR8udayQRGskNrucKt0fSFTmzdr3tVBRUExeGy1nOtOd96GMG8aM1gSJJf23/Y reh/NeOOs4qTbEVBeqc3oG/b0YmrZeT16zil8i3/pQaL3leygqwpQHIxn9cOxBJBBV0H xnfcvD/xpvHl75SDfg52IcblLQpYLpQlxcKv/aE9yXzE72huucvjk4fFGiC0vnCoYAGl YxAFqwtKwjUAeWrk6le9mpKtEnlpBtPoxVQrEAyiw/60dJ+JCwOxHTqyJfGeQOxUtRF1 M0Ze2SUbsmB3WDeIbYrzW3z1M4IqY2fBJfJFpSqQU/rrbi5Nq1xX/ebKaedHAuiCCY0Z 8A2Q== 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=xiON24xztH0g3Ou0g+gTukhH6P9Hq1tNJFxdamWCwzc=; b=l8Uprgc9AaElCQJCsGwfza1B6xFeUx0ulc3KzM02Dno1dh+JlfYeBs/FMrd+rvFei3 Y2CD6nXHfwrkXI7WW9oQRzXup6bHhJF4XTl3xLfjGNJi3RxAXr0tiFjjku56iGA1oHk0 C3u2lSbjVEzbBqNWmN8Sma6SJpNXgiTKkqvIrYOjPwa63YLlgtFryMW8NhMbJePZXscR hVHYuedA0t4wqUXFgZLk8BEd+36WAC4HwjwLoy4xCAQsm3mfGh0OZTNUCdD+bWnBFdch +ud6S2xx6i2usTq0dNQ81IWV4Ob6hLjcB8ZsAIENq8H9yLY126cDPie3QYXSN8a/kF6s iEFQ== X-Gm-Message-State: AG10YORmwZmakub0K9uS0HqncmJZy01DMpH5n2eSe1Ndgh5dQEtCX8eAbJ0SOyAevt7rdQrE X-Received: by 10.202.173.9 with SMTP id w9mr447797oie.79.1453431270985; Thu, 21 Jan 2016 18:54:30 -0800 (PST) Received: from kaki.bld.corp.google.com ([172.29.216.32]) by smtp.gmail.com with ESMTPSA id q188sm2132090oih.11.2016.01.21.18.54.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Jan 2016 18:54:29 -0800 (PST) Received: by kaki.bld.corp.google.com (Postfix, from userid 121222) id 8222D221E58; Thu, 21 Jan 2016 19:44:22 -0700 (MST) From: Simon Glass To: U-Boot Mailing List Date: Thu, 21 Jan 2016 19:44:05 -0700 Message-Id: <1453430653-3280-42-git-send-email-sjg@chromium.org> X-Mailer: git-send-email 2.7.0.rc3.207.g0ac5344 In-Reply-To: <1453430653-3280-1-git-send-email-sjg@chromium.org> References: <1453430653-3280-1-git-send-email-sjg@chromium.org> Cc: Jeffy Chen Subject: [U-Boot] [PATCH v9 41/49] rockchip: clk: Make rkclk_get_clk() SoC-specific 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" The current method assumes that clocks are numbered from 0 and we can determine a clock by its number. It is safer to use an ID in the clock's platform data to avoid the situation where another clock is bound before the one we expect. Move the existing code into rk3036 since it still works there. Add a new implementation for rk3288. Signed-off-by: Simon Glass --- Changes in v9: None Changes in v2: None arch/arm/mach-rockchip/Makefile | 1 - arch/arm/mach-rockchip/common.c | 28 ---------------------------- drivers/clk/clk_rk3036.c | 17 +++++++++++++++++ drivers/clk/clk_rk3288.c | 13 +++++++++++++ 4 files changed, 30 insertions(+), 29 deletions(-) delete mode 100644 arch/arm/mach-rockchip/common.c diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile index 1cc4a96..55567cb 100644 --- a/arch/arm/mach-rockchip/Makefile +++ b/arch/arm/mach-rockchip/Makefile @@ -11,6 +11,5 @@ else obj-$(CONFIG_ROCKCHIP_RK3288) += board.o endif obj-y += rk_timer.o -obj-$(CONFIG_$(SPL_)ROCKCHIP_COMMON) += common.o obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288/ obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036/ diff --git a/arch/arm/mach-rockchip/common.c b/arch/arm/mach-rockchip/common.c deleted file mode 100644 index fc7ac72..0000000 --- a/arch/arm/mach-rockchip/common.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * (C) Copyright 2015 Google, Inc - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#include -#include -#include -#include -#include - -void *rockchip_get_cru(void) -{ - struct udevice *dev; - fdt_addr_t addr; - int ret; - - ret = uclass_get_device(UCLASS_CLK, 0, &dev); - if (ret) - return ERR_PTR(ret); - - addr = dev_get_addr(dev); - if (addr == FDT_ADDR_T_NONE) - return ERR_PTR(-EINVAL); - - return (void *)addr; -} diff --git a/drivers/clk/clk_rk3036.c b/drivers/clk/clk_rk3036.c index dfecc24..bd5f22a 100644 --- a/drivers/clk/clk_rk3036.c +++ b/drivers/clk/clk_rk3036.c @@ -57,6 +57,23 @@ static inline unsigned int log2(unsigned int value) return fls(value) - 1; } +void *rockchip_get_cru(void) +{ + struct udevice *dev; + fdt_addr_t addr; + int ret; + + ret = uclass_get_device(UCLASS_CLK, 0, &dev); + if (ret) + return ERR_PTR(ret); + + addr = dev_get_addr(dev); + if (addr == FDT_ADDR_T_NONE) + return ERR_PTR(-EINVAL); + + return (void *)addr; +} + static int rkclk_set_pll(struct rk3036_cru *cru, enum rk_clk_id clk_id, const struct pll_div *div) { diff --git a/drivers/clk/clk_rk3288.c b/drivers/clk/clk_rk3288.c index d294788..5a8f175 100644 --- a/drivers/clk/clk_rk3288.c +++ b/drivers/clk/clk_rk3288.c @@ -159,6 +159,19 @@ int rkclk_get_clk(enum rk_clk_id clk_id, struct udevice **devp) return -ENODEV; } +void *rockchip_get_cru(void) +{ + struct rk3288_clk_priv *priv; + struct udevice *dev; + int ret; + + ret = rkclk_get_clk(CLK_GENERAL, &dev); + if (ret) + return ERR_PTR(ret); + priv = dev_get_priv(dev); + return priv->cru; +} + static int rkclk_set_pll(struct rk3288_cru *cru, enum rk_clk_id clk_id, const struct pll_div *div) {