From patchwork Thu Oct 5 15:56:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 13410239 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 05F9DE9272F for ; Thu, 5 Oct 2023 15:58:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=JgHsHLdXq4wpgGZNSHjwhbqlXfZTVtbRXZE84t7vdcQ=; b=XvCJ+q3xk+u/hY Ok3pFtkI3NGR8/r6iMZVa1MbTV8yywBcnCLfEjZ3H/g5EXpLSF0OKTht4Ck4iRT1etFCImdtm/y7f Q+n6m2zLXKgHYlmBWswwPIAww16/8QXUdBGTxZs9mN5ft64glHSRuSD+diK71raMjSUB4Es/ilw/z SQqEo0ZKdBAV9BLsXB+4xucagroRNGzJqzMvMpE7VtE8DmqoTlHq39NK5yh+CaIukUaE2RAAkhbkc 599pgJ0GwtCqgrHEpKrq5j3jARszL5AdJ9k7jHNduLctSR0EfvFczTUhGRKSNX9+6kRP92DCrif2r OqXfkz3+siL/QYO3KHRA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qoQji-003xdn-0Z; Thu, 05 Oct 2023 15:58:02 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qoQjK-003xMO-1m for linux-arm-kernel@lists.infradead.org; Thu, 05 Oct 2023 15:57:41 +0000 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-31fa15f4cc6so1156516f8f.2 for ; Thu, 05 Oct 2023 08:57:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1696521457; x=1697126257; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yQQEqZ6dgoMIiE150E7fSsiHYzKXaQCMbIzJ/S4ZYh0=; b=nCp9BosXDTy/U6e+HTb0VdbLZA9dPeIUpdPbszQBy/nC+pQrCBK+OpDZThO3vNKo5d vL4kinZj04vVEohPnY7iinP5jQMBw7sJaSy725dJ+fn1Uoh4xSe6Gh+QQA2qMtBqoqoz TYgrGy+WCNPYtga+pWJGVpWH6IWZigmyM1WDgaL7eZeGaWUt3zUY9EYNcqoTG9TgldqG YSBPQjpT9kfQqfjHNX1ga0Nifg6dvuIEgU0P8HvRNMJwKA35w9dSggV0T1oiM/kxs6Gy +HB8tZRSb0EHFUdvTJ7FJkpbWdb3CQE6j3nRD9irP7Tul9u3fSHaqibKAxRRB8K4qunb 8gBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696521457; x=1697126257; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yQQEqZ6dgoMIiE150E7fSsiHYzKXaQCMbIzJ/S4ZYh0=; b=tgeq5pF5eVazk568pLdDFyAQH1MHJIwPkyTQY4CzjYcsGQz30N5VgugFSWRQTZP6qD qTguNKKCJjFWk8CLRWSxIwMmFsCMQEjFEGu58/nqG6hpcC0BUR/9cVYfws8IOfKY9FLV FqSzDOncmfwvu3P23GFUWa6TPgX9SCCWaFPsqsc6Ib8OWqyeU72v49dkhIqjKZUJE6jp ePf5O2gY1M9jopcaAfK+K9JKxCsOh2QJT1OGIUzIQPVuiSuWPinLARA3E0OHuhcnJzd2 Q9Q8NGsa+EllYR+3tC1qaVp1VBztT9eIxlUeoGWdAshIaDGVlJN7SoGzZpAU9AyA1Goa l+YA== X-Gm-Message-State: AOJu0Yw4OrFb4Sk1q6qInmfHe0EkVHQX5ULKlVdLiM280ScMUbT6vOpD hDCzPoW4CCxLqWdku9rIRuc2TQ== X-Google-Smtp-Source: AGHT+IF/lcHc9XUltM5UGXmSAYqRcd/8VSrf26P8R3iLwmpTL9VeuYYzrZE6bmpvvFoO8WJJ0m9ktQ== X-Received: by 2002:a5d:6909:0:b0:314:dc0:2fca with SMTP id t9-20020a5d6909000000b003140dc02fcamr5280803wru.29.1696521457202; Thu, 05 Oct 2023 08:57:37 -0700 (PDT) Received: from gpeter-l.lan (host-92-12-225-146.as13285.net. [92.12.225.146]) by smtp.gmail.com with ESMTPSA id t9-20020a5d4609000000b0031f8a59dbeasm2084336wrq.62.2023.10.05.08.57.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Oct 2023 08:57:36 -0700 (PDT) From: Peter Griffin To: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, mturquette@baylibre.com, conor+dt@kernel.org, sboyd@kernel.org, tomasz.figa@gmail.com, s.nawrocki@samsung.com, linus.walleij@linaro.org, wim@linux-watchdog.org, linux@roeck-us.net, catalin.marinas@arm.com, will@kernel.org, arnd@arndb.de, olof@lixom.net, cw00.choi@samsung.com Cc: peter.griffin@linaro.org, tudor.ambarus@linaro.org, andre.draszik@linaro.org, semen.protsenko@linaro.org, soc@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org, linux-watchdog@vger.kernel.org Subject: [PATCH 12/21] clk: samsung: clk-pll: Add support for pll_{0516,0517,518} Date: Thu, 5 Oct 2023 16:56:09 +0100 Message-ID: <20231005155618.700312-13-peter.griffin@linaro.org> X-Mailer: git-send-email 2.42.0.582.g8ccd20d70d-goog In-Reply-To: <20231005155618.700312-1-peter.griffin@linaro.org> References: <20231005155618.700312-1-peter.griffin@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231005_085738_678823_F025A844 X-CRM114-Status: GOOD ( 15.58 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Thesee plls are found in the Tensor gs101 SoC found in the Pixel 6. pll0516x: Integrer PLL with high frequency pll0517x: Integrer PLL with middle frequency pll0518x: Integrer PLL with low frequency PLL0516x FOUT = (MDIV * 2 * FIN)/PDIV * 2^SDIV) PLL0517x and PLL0518x FOUT = (MDIV * FIN)/PDIV*2^SDIV) The PLLs are similar enough to pll_0822x that the same code can handle both. The main difference is the change in the fout formula for the high frequency 0516 pll. Locktime for 516,517 & 518 is 150 the same as the pll_0822x lock factor. MDIV, SDIV PDIV masks and bit shifts are also the same as 0822x. When defining the PLL the "con" parameter should be set to CON3 register, like this PLL(pll_0517x, CLK_FOUT_SHARED0_PLL, "fout_shared0_pll", "oscclk", PLL_LOCKTIME_PLL_SHARED0, PLL_CON3_PLL_SHARED0, NULL), Signed-off-by: Peter Griffin Acked-by: Chanwoo Choi --- drivers/clk/samsung/clk-pll.c | 9 ++++++++- drivers/clk/samsung/clk-pll.h | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/clk/samsung/clk-pll.c b/drivers/clk/samsung/clk-pll.c index 74934c6182ce..4ef9fea2a425 100644 --- a/drivers/clk/samsung/clk-pll.c +++ b/drivers/clk/samsung/clk-pll.c @@ -442,7 +442,11 @@ static unsigned long samsung_pll0822x_recalc_rate(struct clk_hw *hw, pdiv = (pll_con3 >> PLL0822X_PDIV_SHIFT) & PLL0822X_PDIV_MASK; sdiv = (pll_con3 >> PLL0822X_SDIV_SHIFT) & PLL0822X_SDIV_MASK; - fvco *= mdiv; + if (pll->type == pll_0516x) + fvco = fvco * 2 * mdiv; + else + fvco *= mdiv; + do_div(fvco, (pdiv << sdiv)); return (unsigned long)fvco; @@ -1316,6 +1320,9 @@ static void __init _samsung_clk_register_pll(struct samsung_clk_provider *ctx, case pll_1417x: case pll_0818x: case pll_0822x: + case pll_0516x: + case pll_0517x: + case pll_0518x: pll->enable_offs = PLL0822X_ENABLE_SHIFT; pll->lock_offs = PLL0822X_LOCK_STAT_SHIFT; if (!pll->rate_table) diff --git a/drivers/clk/samsung/clk-pll.h b/drivers/clk/samsung/clk-pll.h index 0725d485c6ee..ffd3d52c0dec 100644 --- a/drivers/clk/samsung/clk-pll.h +++ b/drivers/clk/samsung/clk-pll.h @@ -38,6 +38,9 @@ enum samsung_pll_type { pll_0822x, pll_0831x, pll_142xx, + pll_0516x, + pll_0517x, + pll_0518x, }; #define PLL_RATE(_fin, _m, _p, _s, _k, _ks) \