Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp790619rwd; Sat, 27 May 2023 06:33:14 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4GbfTsV0Mzf7jOPLsoq1Zwk8AJLvChzoUZ8DTK7TQ/hdvBvNAp7Nn+2TuBWwB2AKn4rATP X-Received: by 2002:a05:6a20:12c2:b0:10d:12a8:c95b with SMTP id v2-20020a056a2012c200b0010d12a8c95bmr3686128pzg.0.1685194394459; Sat, 27 May 2023 06:33:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685194394; cv=none; d=google.com; s=arc-20160816; b=hV7PxHto+qpAZmXOT8Wy5Ft3PX/WvT4D9khIFfd00g1VbtroS4z6O1KDLYQrzuHAj7 f6AIAdVpNMcLKoRcV7YVJcwfYmwRCYYyhbYA274pGeiBbOhD1Hp0Xgl6VogN8VLFG7hm Eh8YNsnBMG6kdrW+Kou2XMdog9p6thETVrGFohQK+x2efZQwn6Zg5tNfZPUh5V61yijh iXqw9lM4jN7gS3U10Pzr4GQwPYMzNxGT8eDft0VkUqGp5BkBGXOH1T9+VCBdY8LAm0f+ Xjzw2GOK5h/MYWmCp3gLGR2Czx000cpNEvq+I6OhailaR4e2iy2Lh9lSq5ZWZvlX7mlf o+OQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=gFF9ojQNgCDGStL3SMO101+doudWZ1WYnV6ZyOfRyN4=; b=D/UKfszxgoNTUGCkLp7aZn9aibZDjAD/QoNUch17tugxmgaLYkbrlah1MST20ZXQ14 U4Ld43thhfzcuAVTonyngykjg3OTLDUKoMl1G7oVGP6bPimje3SOXPATxaUyIfCzDWlD vT1mV3a4py0ZW8KXmAFmiP05lTEQFZN+O5bO7BIngPiZG/m6AjJEGIstUC0hHBdJKkd8 iuN1yzzf6il2UEa+617mDafNzVGcyNcSzUt/YDBeYm3/tlv7yjITpNiQPNh2tJr8Ayyi K7o6wZcd69txCYUZesuG2YD03H2pV1+KR5VBr6y4Nvf8NmEzeKTDRSsI56uOISN7VxaA EqDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oltmanns.dev header.s=MBO0001 header.b=KVBUsqVL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oltmanns.dev Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bv8-20020a632e08000000b0053ef0f20fe3si4515685pgb.600.2023.05.27.06.32.59; Sat, 27 May 2023 06:33:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oltmanns.dev header.s=MBO0001 header.b=KVBUsqVL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oltmanns.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232289AbjE0N2g (ORCPT + 99 others); Sat, 27 May 2023 09:28:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232491AbjE0N23 (ORCPT ); Sat, 27 May 2023 09:28:29 -0400 Received: from mout-p-201.mailbox.org (mout-p-201.mailbox.org [IPv6:2001:67c:2050:0:465::201]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AFC7BB8; Sat, 27 May 2023 06:28:27 -0700 (PDT) Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4QT2fr2GC4z9sWs; Sat, 27 May 2023 15:28:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oltmanns.dev; s=MBO0001; t=1685194100; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gFF9ojQNgCDGStL3SMO101+doudWZ1WYnV6ZyOfRyN4=; b=KVBUsqVLI+u86N2T/90YmIBDSi49QRWF13wM1NpuWj8HECM6v3EfKHDgZfufOaVrRoBTh5 98PrMXN/TKvQI48yPUwwCZCUs57tSHQaVs/SOla8ZbVWVerBTnzdoBifRXUmJqwEWjTcWf 71ZPtMqcLkmNVuUFsVkTB+AxkhDtESysYURXEEKNacZ73k4c408S/WVmjY13OJR3SGxeXv ZX3Dp6MMn2hftYFG/TQYN2DEMqggCG99SJHvU/zqlZJX6Z/2VCov5MRQnBzwDW0GDQmQya afb/eWQYobGElUufDZQNurknJlILcmJ879YwalttX2VpZlMOM8amZ6o9OMmj6Q== From: Frank Oltmanns To: linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev Cc: Frank Oltmanns , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng , Jernej Skrabec , Maxime Ripard , Michael Turquette , Rob Herring , Samuel Holland , Stephen Boyd Subject: [RFC PATCH 3/3] clk: sunxi-ng: sun50i-a64: Precalculate NKM combinations for pll-mipi Date: Sat, 27 May 2023 15:27:47 +0200 Message-Id: <20230527132747.83196-4-frank@oltmanns.dev> In-Reply-To: <20230527132747.83196-1-frank@oltmanns.dev> References: <20230527132747.83196-1-frank@oltmanns.dev> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The NKM driver now support using a table of precalculated NKM combinations. Use this new method for sun50i-a64 for a faster selection of clock rates. Signed-off-by: Frank Oltmanns --- drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 281 ++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c index ff242bccc827..d201f9ec5378 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c @@ -165,6 +165,283 @@ static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_gpu_clk, "pll-gpu", */ #define SUN50I_A64_PLL_MIPI_REG 0x040 +static struct clk_nkm_combo pll_mipi_nkm_combos[] = { + { .n = 1, .k = 2, .m = 16 /* 0.1250000*/ }, + { .n = 1, .k = 2, .m = 15 /* 0.1333333*/ }, + { .n = 1, .k = 2, .m = 14 /* 0.1428571*/ }, + { .n = 1, .k = 2, .m = 13 /* 0.1538462*/ }, + { .n = 1, .k = 2, .m = 12 /* 0.1666667*/ }, + { .n = 1, .k = 2, .m = 11 /* 0.1818182*/ }, + { .n = 1, .k = 3, .m = 16 /* 0.1875000*/ }, + { .n = 1, .k = 2, .m = 10 /* 0.2000000*/ }, + { .n = 1, .k = 3, .m = 14 /* 0.2142857*/ }, + { .n = 1, .k = 2, .m = 9 /* 0.2222222*/ }, + { .n = 1, .k = 3, .m = 13 /* 0.2307692*/ }, + { .n = 1, .k = 2, .m = 8 /* 0.2500000*/ }, + { .n = 2, .k = 2, .m = 15 /* 0.2666667*/ }, + { .n = 1, .k = 3, .m = 11 /* 0.2727273*/ }, + { .n = 1, .k = 2, .m = 7 /* 0.2857143*/ }, + { .n = 1, .k = 3, .m = 10 /* 0.3000000*/ }, + { .n = 2, .k = 2, .m = 13 /* 0.3076923*/ }, + { .n = 1, .k = 2, .m = 6 /* 0.3333333*/ }, + { .n = 2, .k = 2, .m = 11 /* 0.3636364*/ }, + { .n = 3, .k = 2, .m = 16 /* 0.3750000*/ }, + { .n = 1, .k = 2, .m = 5 /* 0.4000000*/ }, + { .n = 3, .k = 2, .m = 14 /* 0.4285714*/ }, + { .n = 2, .k = 2, .m = 9 /* 0.4444444*/ }, + { .n = 3, .k = 2, .m = 13 /* 0.4615385*/ }, + { .n = 1, .k = 2, .m = 4 /* 0.5000000*/ }, + { .n = 4, .k = 2, .m = 15 /* 0.5333333*/ }, + { .n = 3, .k = 2, .m = 11 /* 0.5454545*/ }, + { .n = 3, .k = 3, .m = 16 /* 0.5625000*/ }, + { .n = 2, .k = 2, .m = 7 /* 0.5714286*/ }, + { .n = 3, .k = 2, .m = 10 /* 0.6000000*/ }, + { .n = 4, .k = 2, .m = 13 /* 0.6153846*/ }, + { .n = 5, .k = 2, .m = 16 /* 0.6250000*/ }, + { .n = 3, .k = 3, .m = 14 /* 0.6428571*/ }, + { .n = 1, .k = 2, .m = 3 /* 0.6666667*/ }, + { .n = 3, .k = 3, .m = 13 /* 0.6923077*/ }, + { .n = 5, .k = 2, .m = 14 /* 0.7142857*/ }, + { .n = 4, .k = 2, .m = 11 /* 0.7272727*/ }, + { .n = 3, .k = 2, .m = 8 /* 0.7500000*/ }, + { .n = 5, .k = 2, .m = 13 /* 0.7692308*/ }, + { .n = 2, .k = 2, .m = 5 /* 0.8000000*/ }, + { .n = 3, .k = 3, .m = 11 /* 0.8181818*/ }, + { .n = 5, .k = 2, .m = 12 /* 0.8333333*/ }, + { .n = 3, .k = 2, .m = 7 /* 0.8571429*/ }, + { .n = 7, .k = 2, .m = 16 /* 0.8750000*/ }, + { .n = 4, .k = 2, .m = 9 /* 0.8888889*/ }, + { .n = 3, .k = 3, .m = 10 /* 0.9000000*/ }, + { .n = 5, .k = 2, .m = 11 /* 0.9090909*/ }, + { .n = 6, .k = 2, .m = 13 /* 0.9230769*/ }, + { .n = 7, .k = 2, .m = 15 /* 0.9333333*/ }, + { .n = 5, .k = 3, .m = 16 /* 0.9375000*/ }, + { .n = 1, .k = 2, .m = 2 /* 1.0000000*/ }, + { .n = 8, .k = 2, .m = 15 /* 1.0666667*/ }, + { .n = 5, .k = 3, .m = 14 /* 1.0714286*/ }, + { .n = 7, .k = 2, .m = 13 /* 1.0769231*/ }, + { .n = 6, .k = 2, .m = 11 /* 1.0909091*/ }, + { .n = 5, .k = 2, .m = 9 /* 1.1111111*/ }, + { .n = 9, .k = 2, .m = 16 /* 1.1250000*/ }, + { .n = 4, .k = 2, .m = 7 /* 1.1428571*/ }, + { .n = 5, .k = 3, .m = 13 /* 1.1538462*/ }, + { .n = 7, .k = 2, .m = 12 /* 1.1666667*/ }, + { .n = 3, .k = 2, .m = 5 /* 1.2000000*/ }, + { .n = 8, .k = 2, .m = 13 /* 1.2307692*/ }, + { .n = 5, .k = 2, .m = 8 /* 1.2500000*/ }, + { .n = 7, .k = 2, .m = 11 /* 1.2727273*/ }, + { .n = 9, .k = 2, .m = 14 /* 1.2857143*/ }, + { .n = 7, .k = 3, .m = 16 /* 1.3125000*/ }, + { .n = 2, .k = 2, .m = 3 /* 1.3333333*/ }, + { .n = 5, .k = 3, .m = 11 /* 1.3636364*/ }, + { .n = 11, .k = 2, .m = 16 /* 1.3750000*/ }, + { .n = 9, .k = 2, .m = 13 /* 1.3846154*/ }, + { .n = 7, .k = 2, .m = 10 /* 1.4000000*/ }, + { .n = 5, .k = 2, .m = 7 /* 1.4285714*/ }, + { .n = 8, .k = 2, .m = 11 /* 1.4545455*/ }, + { .n = 11, .k = 2, .m = 15 /* 1.4666667*/ }, + { .n = 3, .k = 2, .m = 4 /* 1.5000000*/ }, + { .n = 10, .k = 2, .m = 13 /* 1.5384615*/ }, + { .n = 7, .k = 2, .m = 9 /* 1.5555556*/ }, + { .n = 11, .k = 2, .m = 14 /* 1.5714286*/ }, + { .n = 4, .k = 2, .m = 5 /* 1.6000000*/ }, + { .n = 7, .k = 3, .m = 13 /* 1.6153846*/ }, + { .n = 13, .k = 2, .m = 16 /* 1.6250000*/ }, + { .n = 9, .k = 2, .m = 11 /* 1.6363636*/ }, + { .n = 5, .k = 2, .m = 6 /* 1.6666667*/ }, + { .n = 9, .k = 3, .m = 16 /* 1.6875000*/ }, + { .n = 11, .k = 2, .m = 13 /* 1.6923077*/ }, + { .n = 6, .k = 2, .m = 7 /* 1.7142857*/ }, + { .n = 13, .k = 2, .m = 15 /* 1.7333333*/ }, + { .n = 7, .k = 2, .m = 8 /* 1.7500000*/ }, + { .n = 8, .k = 2, .m = 9 /* 1.7777778*/ }, + { .n = 9, .k = 2, .m = 10 /* 1.8000000*/ }, + { .n = 10, .k = 2, .m = 11 /* 1.8181818*/ }, + { .n = 11, .k = 2, .m = 12 /* 1.8333333*/ }, + { .n = 12, .k = 2, .m = 13 /* 1.8461538*/ }, + { .n = 13, .k = 2, .m = 14 /* 1.8571429*/ }, + { .n = 14, .k = 2, .m = 15 /* 1.8666667*/ }, + { .n = 15, .k = 2, .m = 16 /* 1.8750000*/ }, + { .n = 7, .k = 3, .m = 11 /* 1.9090909*/ }, + { .n = 9, .k = 3, .m = 14 /* 1.9285714*/ }, + { .n = 1, .k = 2, .m = 1 /* 2.0000000*/ }, + { .n = 11, .k = 3, .m = 16 /* 2.0625000*/ }, + { .n = 9, .k = 3, .m = 13 /* 2.0769231*/ }, + { .n = 7, .k = 3, .m = 10 /* 2.1000000*/ }, + { .n = 16, .k = 2, .m = 15 /* 2.1333333*/ }, + { .n = 15, .k = 2, .m = 14 /* 2.1428571*/ }, + { .n = 14, .k = 2, .m = 13 /* 2.1538462*/ }, + { .n = 13, .k = 2, .m = 12 /* 2.1666667*/ }, + { .n = 12, .k = 2, .m = 11 /* 2.1818182*/ }, + { .n = 11, .k = 2, .m = 10 /* 2.2000000*/ }, + { .n = 10, .k = 2, .m = 9 /* 2.2222222*/ }, + { .n = 9, .k = 2, .m = 8 /* 2.2500000*/ }, + { .n = 8, .k = 2, .m = 7 /* 2.2857143*/ }, + { .n = 15, .k = 2, .m = 13 /* 2.3076923*/ }, + { .n = 7, .k = 2, .m = 6 /* 2.3333333*/ }, + { .n = 11, .k = 3, .m = 14 /* 2.3571429*/ }, + { .n = 13, .k = 2, .m = 11 /* 2.3636364*/ }, + { .n = 6, .k = 2, .m = 5 /* 2.4000000*/ }, + { .n = 13, .k = 3, .m = 16 /* 2.4375000*/ }, + { .n = 11, .k = 2, .m = 9 /* 2.4444444*/ }, + { .n = 9, .k = 3, .m = 11 /* 2.4545455*/ }, + { .n = 16, .k = 2, .m = 13 /* 2.4615385*/ }, + { .n = 5, .k = 2, .m = 4 /* 2.5000000*/ }, + { .n = 11, .k = 3, .m = 13 /* 2.5384615*/ }, + { .n = 14, .k = 2, .m = 11 /* 2.5454545*/ }, + { .n = 9, .k = 2, .m = 7 /* 2.5714286*/ }, + { .n = 13, .k = 2, .m = 10 /* 2.6000000*/ }, + { .n = 7, .k = 3, .m = 8 /* 2.6250000*/ }, + { .n = 4, .k = 2, .m = 3 /* 2.6666667*/ }, + { .n = 9, .k = 3, .m = 10 /* 2.7000000*/ }, + { .n = 15, .k = 2, .m = 11 /* 2.7272727*/ }, + { .n = 11, .k = 2, .m = 8 /* 2.7500000*/ }, + { .n = 12, .k = 3, .m = 13 /* 2.7692308*/ }, + { .n = 13, .k = 3, .m = 14 /* 2.7857143*/ }, + { .n = 7, .k = 2, .m = 5 /* 2.8000000*/ }, + { .n = 15, .k = 3, .m = 16 /* 2.8125000*/ }, + { .n = 10, .k = 2, .m = 7 /* 2.8571429*/ }, + { .n = 13, .k = 2, .m = 9 /* 2.8888889*/ }, + { .n = 16, .k = 2, .m = 11 /* 2.9090909*/ }, + { .n = 11, .k = 4, .m = 15 /* 2.9333333*/ }, + { .n = 3, .k = 2, .m = 2 /* 3.0000000*/ }, + { .n = 10, .k = 4, .m = 13 /* 3.0769231*/ }, + { .n = 14, .k = 2, .m = 9 /* 3.1111111*/ }, + { .n = 11, .k = 2, .m = 7 /* 3.1428571*/ }, + { .n = 8, .k = 2, .m = 5 /* 3.2000000*/ }, + { .n = 15, .k = 3, .m = 14 /* 3.2142857*/ }, + { .n = 14, .k = 3, .m = 13 /* 3.2307692*/ }, + { .n = 13, .k = 2, .m = 8 /* 3.2500000*/ }, + { .n = 12, .k = 3, .m = 11 /* 3.2727273*/ }, + { .n = 11, .k = 3, .m = 10 /* 3.3000000*/ }, + { .n = 5, .k = 2, .m = 3 /* 3.3333333*/ }, + { .n = 9, .k = 3, .m = 8 /* 3.3750000*/ }, + { .n = 11, .k = 4, .m = 13 /* 3.3846154*/ }, + { .n = 12, .k = 2, .m = 7 /* 3.4285714*/ }, + { .n = 15, .k = 3, .m = 13 /* 3.4615385*/ }, + { .n = 13, .k = 4, .m = 15 /* 3.4666667*/ }, + { .n = 7, .k = 2, .m = 4 /* 3.5000000*/ }, + { .n = 13, .k = 3, .m = 11 /* 3.5454545*/ }, + { .n = 16, .k = 2, .m = 9 /* 3.5555556*/ }, + { .n = 9, .k = 2, .m = 5 /* 3.6000000*/ }, + { .n = 10, .k = 4, .m = 11 /* 3.6363636*/ }, + { .n = 11, .k = 2, .m = 6 /* 3.6666667*/ }, + { .n = 16, .k = 3, .m = 13 /* 3.6923077*/ }, + { .n = 13, .k = 2, .m = 7 /* 3.7142857*/ }, + { .n = 14, .k = 4, .m = 15 /* 3.7333333*/ }, + { .n = 15, .k = 2, .m = 8 /* 3.7500000*/ }, + { .n = 14, .k = 3, .m = 11 /* 3.8181818*/ }, + { .n = 9, .k = 3, .m = 7 /* 3.8571429*/ }, + { .n = 13, .k = 3, .m = 10 /* 3.9000000*/ }, + { .n = 2, .k = 2, .m = 1 /* 4.0000000*/ }, + { .n = 15, .k = 3, .m = 11 /* 4.0909091*/ }, + { .n = 11, .k = 3, .m = 8 /* 4.1250000*/ }, + { .n = 7, .k = 3, .m = 5 /* 4.2000000*/ }, + { .n = 16, .k = 4, .m = 15 /* 4.2666667*/ }, + { .n = 15, .k = 2, .m = 7 /* 4.2857143*/ }, + { .n = 14, .k = 4, .m = 13 /* 4.3076923*/ }, + { .n = 13, .k = 2, .m = 6 /* 4.3333333*/ }, + { .n = 16, .k = 3, .m = 11 /* 4.3636364*/ }, + { .n = 11, .k = 2, .m = 5 /* 4.4000000*/ }, + { .n = 10, .k = 4, .m = 9 /* 4.4444444*/ }, + { .n = 9, .k = 2, .m = 4 /* 4.5000000*/ }, + { .n = 16, .k = 2, .m = 7 /* 4.5714286*/ }, + { .n = 15, .k = 4, .m = 13 /* 4.6153846*/ }, + { .n = 7, .k = 2, .m = 3 /* 4.6666667*/ }, + { .n = 11, .k = 3, .m = 7 /* 4.7142857*/ }, + { .n = 13, .k = 4, .m = 11 /* 4.7272727*/ }, + { .n = 12, .k = 2, .m = 5 /* 4.8000000*/ }, + { .n = 13, .k = 3, .m = 8 /* 4.8750000*/ }, + { .n = 11, .k = 4, .m = 9 /* 4.8888889*/ }, + { .n = 16, .k = 4, .m = 13 /* 4.9230769*/ }, + { .n = 5, .k = 2, .m = 2 /* 5.0000000*/ }, + { .n = 14, .k = 4, .m = 11 /* 5.0909091*/ }, + { .n = 12, .k = 3, .m = 7 /* 5.1428571*/ }, + { .n = 13, .k = 2, .m = 5 /* 5.2000000*/ }, + { .n = 7, .k = 3, .m = 4 /* 5.2500000*/ }, + { .n = 8, .k = 2, .m = 3 /* 5.3333333*/ }, + { .n = 9, .k = 3, .m = 5 /* 5.4000000*/ }, + { .n = 15, .k = 4, .m = 11 /* 5.4545455*/ }, + { .n = 11, .k = 2, .m = 4 /* 5.5000000*/ }, + { .n = 13, .k = 3, .m = 7 /* 5.5714286*/ }, + { .n = 14, .k = 2, .m = 5 /* 5.6000000*/ }, + { .n = 15, .k = 3, .m = 8 /* 5.6250000*/ }, + { .n = 10, .k = 4, .m = 7 /* 5.7142857*/ }, + { .n = 13, .k = 4, .m = 9 /* 5.7777778*/ }, + { .n = 16, .k = 4, .m = 11 /* 5.8181818*/ }, + { .n = 3, .k = 2, .m = 1 /* 6.0000000*/ }, + { .n = 14, .k = 4, .m = 9 /* 6.2222222*/ }, + { .n = 11, .k = 4, .m = 7 /* 6.2857143*/ }, + { .n = 16, .k = 2, .m = 5 /* 6.4000000*/ }, + { .n = 15, .k = 3, .m = 7 /* 6.4285714*/ }, + { .n = 13, .k = 2, .m = 4 /* 6.5000000*/ }, + { .n = 11, .k = 3, .m = 5 /* 6.6000000*/ }, + { .n = 10, .k = 2, .m = 3 /* 6.6666667*/ }, + { .n = 9, .k = 3, .m = 4 /* 6.7500000*/ }, + { .n = 16, .k = 3, .m = 7 /* 6.8571429*/ }, + { .n = 7, .k = 2, .m = 2 /* 7.0000000*/ }, + { .n = 16, .k = 4, .m = 9 /* 7.1111111*/ }, + { .n = 12, .k = 3, .m = 5 /* 7.2000000*/ }, + { .n = 11, .k = 2, .m = 3 /* 7.3333333*/ }, + { .n = 13, .k = 4, .m = 7 /* 7.4285714*/ }, + { .n = 15, .k = 2, .m = 4 /* 7.5000000*/ }, + { .n = 13, .k = 3, .m = 5 /* 7.8000000*/ }, + { .n = 4, .k = 2, .m = 1 /* 8.0000000*/ }, + { .n = 11, .k = 3, .m = 4 /* 8.2500000*/ }, + { .n = 14, .k = 3, .m = 5 /* 8.4000000*/ }, + { .n = 15, .k = 4, .m = 7 /* 8.5714286*/ }, + { .n = 13, .k = 2, .m = 3 /* 8.6666667*/ }, + { .n = 11, .k = 4, .m = 5 /* 8.8000000*/ }, + { .n = 9, .k = 2, .m = 2 /* 9.0000000*/ }, + { .n = 16, .k = 4, .m = 7 /* 9.1428571*/ }, + { .n = 14, .k = 2, .m = 3 /* 9.3333333*/ }, + { .n = 16, .k = 3, .m = 5 /* 9.6000000*/ }, + { .n = 13, .k = 3, .m = 4 /* 9.7500000*/ }, + { .n = 5, .k = 2, .m = 1 /*10.0000000*/ }, + { .n = 13, .k = 4, .m = 5 /*10.4000000*/ }, + { .n = 7, .k = 3, .m = 2 /*10.5000000*/ }, + { .n = 16, .k = 2, .m = 3 /*10.6666667*/ }, + { .n = 11, .k = 2, .m = 2 /*11.0000000*/ }, + { .n = 14, .k = 4, .m = 5 /*11.2000000*/ }, + { .n = 15, .k = 3, .m = 4 /*11.2500000*/ }, + { .n = 6, .k = 2, .m = 1 /*12.0000000*/ }, + { .n = 16, .k = 4, .m = 5 /*12.8000000*/ }, + { .n = 13, .k = 2, .m = 2 /*13.0000000*/ }, + { .n = 10, .k = 4, .m = 3 /*13.3333333*/ }, + { .n = 9, .k = 3, .m = 2 /*13.5000000*/ }, + { .n = 7, .k = 2, .m = 1 /*14.0000000*/ }, + { .n = 11, .k = 4, .m = 3 /*14.6666667*/ }, + { .n = 15, .k = 2, .m = 2 /*15.0000000*/ }, + { .n = 8, .k = 2, .m = 1 /*16.0000000*/ }, + { .n = 11, .k = 3, .m = 2 /*16.5000000*/ }, + { .n = 13, .k = 4, .m = 3 /*17.3333333*/ }, + { .n = 9, .k = 2, .m = 1 /*18.0000000*/ }, + { .n = 14, .k = 4, .m = 3 /*18.6666667*/ }, + { .n = 13, .k = 3, .m = 2 /*19.5000000*/ }, + { .n = 10, .k = 2, .m = 1 /*20.0000000*/ }, + { .n = 7, .k = 3, .m = 1 /*21.0000000*/ }, + { .n = 16, .k = 4, .m = 3 /*21.3333333*/ }, + { .n = 11, .k = 2, .m = 1 /*22.0000000*/ }, + { .n = 15, .k = 3, .m = 2 /*22.5000000*/ }, + { .n = 12, .k = 2, .m = 1 /*24.0000000*/ }, + { .n = 13, .k = 2, .m = 1 /*26.0000000*/ }, + { .n = 9, .k = 3, .m = 1 /*27.0000000*/ }, + { .n = 14, .k = 2, .m = 1 /*28.0000000*/ }, + { .n = 15, .k = 2, .m = 1 /*30.0000000*/ }, + { .n = 16, .k = 2, .m = 1 /*32.0000000*/ }, + { .n = 11, .k = 3, .m = 1 /*33.0000000*/ }, + { .n = 12, .k = 3, .m = 1 /*36.0000000*/ }, + { .n = 13, .k = 3, .m = 1 /*39.0000000*/ }, + { .n = 10, .k = 4, .m = 1 /*40.0000000*/ }, + { .n = 14, .k = 3, .m = 1 /*42.0000000*/ }, + { .n = 11, .k = 4, .m = 1 /*44.0000000*/ }, + { .n = 15, .k = 3, .m = 1 /*45.0000000*/ }, + { .n = 16, .k = 3, .m = 1 /*48.0000000*/ }, + { .n = 13, .k = 4, .m = 1 /*52.0000000*/ }, + { .n = 14, .k = 4, .m = 1 /*56.0000000*/ }, + { .n = 15, .k = 4, .m = 1 /*60.0000000*/ }, + { .n = 16, .k = 4, .m = 1 /*64.0000000*/ }, +}; static struct ccu_nkm pll_mipi_clk = { /* * The bit 23 and 22 are called "LDO{1,2}_EN" on the SoC's @@ -181,6 +458,10 @@ static struct ccu_nkm pll_mipi_clk = { .hw.init = CLK_HW_INIT("pll-mipi", "pll-video0", &ccu_nkm_ops, CLK_SET_RATE_UNGATE), }, + .table = { + .num = 275, + .combos = pll_mipi_nkm_combos, + }, }; static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_hsic_clk, "pll-hsic", -- 2.40.1