From patchwork Sat Jan 20 13:16:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 863961 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="TSh0L31L"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zNyvd4sDQz9s83 for ; Sun, 21 Jan 2018 00:19:09 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 59528C22029; Sat, 20 Jan 2018 13:17:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id CAD92C21DA2; Sat, 20 Jan 2018 13:17:01 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B5A79C21F38; Sat, 20 Jan 2018 13:17:00 +0000 (UTC) Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by lists.denx.de (Postfix) with ESMTPS id 6543EC21DA2 for ; Sat, 20 Jan 2018 13:17:00 +0000 (UTC) Received: by mail-wr0-f195.google.com with SMTP id e41so3966364wre.9 for ; Sat, 20 Jan 2018 05:17:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/M84e+7H6WNkV1+QaBDhpKvaCeB8mf0b8RQ5iYw7mH0=; b=TSh0L31Ly3RL3dBOmsVQB7Dc1JjhPMZBH4EN4/7trT/cEnelB16+OaE1inmQlvYo6E Uqtx4xVErihuOxSsu+N71hiawEhKGht5cy2fZY4/Rs/wX6nJkUfWT3lmDXFMpf/nejFV +Ek+OEkMarE0frCEVFOmd19fPVaVcNOcXsBoxoG6GvQHFTJL3diXEyqAErwrRUD+HBrM R+izB2tC676Qf/TN0nob+I1RZ6EQ6zOa/C7icA7q4vJ+0dSqRsNSKfrIlpp0/JkcnmkY HI5zbHiPh2FFM7+UMuEX5G+mVCEbR2x8oLAsOAHdX3fWkTiFqagrgelKKCI/SF+e7Eak vycA== 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=/M84e+7H6WNkV1+QaBDhpKvaCeB8mf0b8RQ5iYw7mH0=; b=OiholuH2JoqrcmWjYIEcb9BU4CttH1sWnwWxFP9WEKS2d53lFazc79zulKidrZx2T5 PgUMgdE0oUN02reC/JhF5VGI9sRut8s27nzFwAwXvaN/yhjJdzhe9gGxU3kHzHGP7KJd I4UiKpK762tHSz7fIuQo0WdUESBC0PKjKn672b3yAry32JMugkAWlP2a5dGrA0QCgyi6 bYwfIrueqaS1WzAIh+zHly9vE+2VtY3kQqa77ceAKzLQaLj+xB2x4pea9K415m6f6Mwm IG8/yb0cUC/vW1Yvz73IcEj39rwRu7TROV5IOqv3HtmRXGtGXLkcbcfBHmvMcUMD5MSP Zb5Q== X-Gm-Message-State: AKwxytfq71EL0aL6gMqH51U/Wbil5M4LuqzR746+Skj5gNiImzI6j69A IRzUUOL3S8XZC2a0YK8u0oW24OpK X-Google-Smtp-Source: AH8x2274Mr8gTzAgF4PHnf28qqLKNq4rBe3Pu/H9BYd+nygRUGNsfZD/RxwWyBrE/lJRO9wRcB+THg== X-Received: by 10.223.201.143 with SMTP id f15mr1424977wrh.192.1516454219803; Sat, 20 Jan 2018 05:16:59 -0800 (PST) Received: from skynet.lan (175.red-2-137-31.dynamicip.rima-tde.net. [2.137.31.175]) by smtp.gmail.com with ESMTPSA id l8sm2167376wmg.24.2018.01.20.05.16.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 20 Jan 2018 05:16:59 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, daniel.schwierzeck@gmail.com, sjg@chromium.org Date: Sat, 20 Jan 2018 14:16:54 +0100 Message-Id: <20180120131656.4387-2-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180120131656.4387-1-noltari@gmail.com> References: <20180120105359.17981-1-noltari@gmail.com> <20180120131656.4387-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v2 1/3] dm: cpu: bmips: add BCM6368 support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Signed-off-by: Álvaro Fernández Rojas Reviewed-by: Daniel Schwierzeck --- v2: no changes drivers/cpu/bmips_cpu.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/drivers/cpu/bmips_cpu.c b/drivers/cpu/bmips_cpu.c index 1eb744adcd..2e3f1de74e 100644 --- a/drivers/cpu/bmips_cpu.c +++ b/drivers/cpu/bmips_cpu.c @@ -46,6 +46,17 @@ DECLARE_GLOBAL_DATA_PTR; #define DMIPSPLLCFG_6358_N2_SHIFT 29 #define DMIPSPLLCFG_6358_N2_MASK (0x7 << DMIPSPLLCFG_6358_N2_SHIFT) +#define REG_BCM6368_DDR_DMIPSPLLCFG 0x12a0 +#define DMIPSPLLCFG_6368_P1_SHIFT 0 +#define DMIPSPLLCFG_6368_P1_MASK (0xf << DMIPSPLLCFG_6368_P1_SHIFT) +#define DMIPSPLLCFG_6368_P2_SHIFT 4 +#define DMIPSPLLCFG_6368_P2_MASK (0xf << DMIPSPLLCFG_6368_P2_SHIFT) +#define DMIPSPLLCFG_6368_NDIV_SHIFT 16 +#define DMIPSPLLCFG_6368_NDIV_MASK (0x1ff << DMIPSPLLCFG_6368_NDIV_SHIFT) +#define REG_BCM6368_DDR_DMIPSPLLDIV 0x12a4 +#define DMIPSPLLDIV_6368_MDIV_SHIFT 0 +#define DMIPSPLLDIV_6368_MDIV_MASK (0xff << DMIPSPLLDIV_6368_MDIV_SHIFT) + #define REG_BCM63268_MISC_STRAPBUS 0x1814 #define STRAPBUS_63268_FCVO_SHIFT 21 #define STRAPBUS_63268_FCVO_MASK (0xf << STRAPBUS_63268_FCVO_SHIFT) @@ -157,6 +168,22 @@ static ulong bcm6358_get_cpu_freq(struct bmips_cpu_priv *priv) return (16 * 1000000 * n1 * n2) / m1; } +static ulong bcm6368_get_cpu_freq(struct bmips_cpu_priv *priv) +{ + unsigned int tmp, p1, p2, ndiv, m1; + + tmp = readl_be(priv->regs + REG_BCM6368_DDR_DMIPSPLLCFG); + p1 = (tmp & DMIPSPLLCFG_6368_P1_MASK) >> DMIPSPLLCFG_6368_P1_SHIFT; + p2 = (tmp & DMIPSPLLCFG_6368_P2_MASK) >> DMIPSPLLCFG_6368_P2_SHIFT; + ndiv = (tmp & DMIPSPLLCFG_6368_NDIV_MASK) >> + DMIPSPLLCFG_6368_NDIV_SHIFT; + + tmp = readl_be(priv->regs + REG_BCM6368_DDR_DMIPSPLLDIV); + m1 = (tmp & DMIPSPLLDIV_6368_MDIV_MASK) >> DMIPSPLLDIV_6368_MDIV_SHIFT; + + return (((64 * 1000000) / p1) * p2 * ndiv) / m1; +} + static ulong bcm63268_get_cpu_freq(struct bmips_cpu_priv *priv) { unsigned int mips_pll_fcvo; @@ -230,6 +257,12 @@ static const struct bmips_cpu_hw bmips_cpu_bcm6358 = { .get_cpu_count = bcm6358_get_cpu_count, }; +static const struct bmips_cpu_hw bmips_cpu_bcm6368 = { + .get_cpu_desc = bmips_short_cpu_desc, + .get_cpu_freq = bcm6368_get_cpu_freq, + .get_cpu_count = bcm6358_get_cpu_count, +}; + static const struct bmips_cpu_hw bmips_cpu_bcm63268 = { .get_cpu_desc = bmips_long_cpu_desc, .get_cpu_freq = bcm63268_get_cpu_freq, @@ -327,6 +360,9 @@ static const struct udevice_id bmips_cpu_ids[] = { .compatible = "brcm,bcm6358-cpu", .data = (ulong)&bmips_cpu_bcm6358, }, { + .compatible = "brcm,bcm6368-cpu", + .data = (ulong)&bmips_cpu_bcm6368, + }, { .compatible = "brcm,bcm63268-cpu", .data = (ulong)&bmips_cpu_bcm63268, },