From nobody Thu Dec 18 08:55:33 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 31366C77B61 for ; Thu, 27 Apr 2023 09:17:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243129AbjD0JRD (ORCPT ); Thu, 27 Apr 2023 05:17:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243186AbjD0JQ4 (ORCPT ); Thu, 27 Apr 2023 05:16:56 -0400 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::228]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98A62E50 for ; Thu, 27 Apr 2023 02:16:54 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 078B01BF20C; Thu, 27 Apr 2023 09:16:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1682587013; 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=X0sviRPbOQNgwuuHmcHgQR68LQiPFHckMJxw1tVvt8g=; b=Pf17FxEEPRebkXUxlzOXxIkaKI7YiBs3V+PgDb/I/c1/M2lwj+SkdFgu8ICG7sOYTQraAX L6eCwbx7ivmTWrBPdSpjvp62+wPJHwRynL05zNPxZ7D8+EaceG6UIzwVRq3zndJjCjjDtQ aV0SfgBLwJRoPoEV7DIh6e4KADCVcfF/9iIJ993Rbx8j9ODzqb2sXJ/1KLZ84ebRv/6dlg T1h0sKHn6Ytsf9NFMx+efjtWJxXla45Q/ukw7QUWDzi6wOGCQujQpp1t3Vbb0RYa6tzUh+ gOcThqrm9HnIskv9YrLk09DKxWdt0hEMg/GKGN5MVl6pI6LDk3mlU3CbEtcPGQ== From: Roman Beranek To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Jernej Skrabec , Samuel Holland Cc: Roman Beranek , Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/7] clk: sunxi-ng: a64: export PLL_MIPI Date: Thu, 27 Apr 2023 11:16:05 +0200 Message-Id: <20230427091611.99044-2-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230427091611.99044-1-me@crly.cz> References: <20230427091611.99044-1-me@crly.cz> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" PLL_MIPI will be referenced as assigned parent to TCON0 Signed-off-by: Roman Beranek --- drivers/clk/sunxi-ng/ccu-sun50i-a64.h | 4 +++- include/dt-bindings/clock/sun50i-a64-ccu.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.h b/drivers/clk/sunxi-ng/c= cu-sun50i-a64.h index a8c11c0b4e06..35ab84e03e77 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.h +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.h @@ -32,7 +32,9 @@ #define CLK_PLL_PERIPH1_2X 14 #define CLK_PLL_VIDEO1 15 #define CLK_PLL_GPU 16 -#define CLK_PLL_MIPI 17 + +/* PLL_MIPI exported for TCON0 */ + #define CLK_PLL_HSIC 18 #define CLK_PLL_DE 19 #define CLK_PLL_DDR1 20 diff --git a/include/dt-bindings/clock/sun50i-a64-ccu.h b/include/dt-bindin= gs/clock/sun50i-a64-ccu.h index 175892189e9d..5ad769a29c4e 100644 --- a/include/dt-bindings/clock/sun50i-a64-ccu.h +++ b/include/dt-bindings/clock/sun50i-a64-ccu.h @@ -45,6 +45,7 @@ =20 #define CLK_PLL_VIDEO0 7 #define CLK_PLL_PERIPH0 11 +#define CLK_PLL_MIPI 17 =20 #define CLK_CPUX 21 #define CLK_BUS_MIPI_DSI 28 --=20 2.34.1 From nobody Thu Dec 18 08:55:33 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2501CC77B61 for ; Thu, 27 Apr 2023 09:17:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242955AbjD0JRH (ORCPT ); Thu, 27 Apr 2023 05:17:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233094AbjD0JQ6 (ORCPT ); Thu, 27 Apr 2023 05:16:58 -0400 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::228]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20AC4E1 for ; Thu, 27 Apr 2023 02:16:56 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 866121BF209; Thu, 27 Apr 2023 09:16:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1682587015; 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=UBZh9CI93O6+fbjia0d6/4ywzhm2KDiLVkNXCWUzpXE=; b=EA7hqnKVxzellkcxsNKV3u/L4x2qcNVjbkn42IpcuWUoVlSSpg8kbYUXwbwti2l/YkCjCb jKmNW+qXgYfdZd4Y0YMVi7V3IxOJu9234sxTAyR+mvW1ToVwbGOUE8WQ4SDi7emQdr10Ki zj+vbWy0ahNpL8K+q9W35c+QUxtNbb/feB6Llh3129YA5CQA6icFAsaeIKLWeVNmDcOFaZ pU6Fbh8MHvf4ZoTI0Y/ygwNDrGCubbQ6hQ473Kps4UFSjhKWyoUPQkNA5Nq3LbqVi6UM7d UzmmOTCRX7ScGrYABS+MXo+qUpTuJ5kvuZMNabsGjswx+MygAyiH5SyCuSFgDw== From: Roman Beranek To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Jernej Skrabec , Samuel Holland Cc: Roman Beranek , Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 2/7] clk: sunxi-ng: a64: prevent CLK_TCON0 being reparented Date: Thu, 27 Apr 2023 11:16:06 +0200 Message-Id: <20230427091611.99044-3-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230427091611.99044-1-me@crly.cz> References: <20230427091611.99044-1-me@crly.cz> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" TCON0's source clock can be fed from either pll-mipi, or pll-video0-2x, however MIPI DSI output only seem to work when pll-mipi is selected and thus some restriction have to be put on reparenting CLK_TCON0. Functionally, there's no harm to other TCON0 users (LVDS, parallel RGB) in also forcing them to settle on pll-mipi. The parent will be assigned during boot based off of tcon0's DT node. Signed-off-by: Roman Beranek --- drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c b/drivers/clk/sunxi-ng/c= cu-sun50i-a64.c index 41519185600a..044f301a8c61 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c @@ -532,7 +532,8 @@ static const char * const tcon0_parents[] =3D { "pll-mi= pi", "pll-video0-2x" }; static const u8 tcon0_table[] =3D { 0, 2, }; static SUNXI_CCU_MUX_TABLE_WITH_GATE(tcon0_clk, "tcon0", tcon0_parents, tcon0_table, 0x118, 24, 3, BIT(31), - CLK_SET_RATE_PARENT); + CLK_SET_RATE_PARENT | + CLK_SET_RATE_NO_REPARENT); =20 static const char * const tcon1_parents[] =3D { "pll-video0", "pll-video1"= }; static const u8 tcon1_table[] =3D { 0, 2, }; --=20 2.34.1 From nobody Thu Dec 18 08:55:33 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6472FC77B61 for ; Thu, 27 Apr 2023 09:17:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243247AbjD0JRM (ORCPT ); Thu, 27 Apr 2023 05:17:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41164 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243022AbjD0JRA (ORCPT ); Thu, 27 Apr 2023 05:17:00 -0400 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B77ED4ED8 for ; Thu, 27 Apr 2023 02:16:59 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id F39831BF20E; Thu, 27 Apr 2023 09:16:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1682587018; 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=S23886ftCV2z3JzYA86agYfVu4I9nMhyGAcsGtlcMm8=; b=SlOp8M679mlprn5QF4T4Z/1qQkN/zzBVlLyWxep4ucMjj9ZC552ld1lfvvIV+hK5ySEI2/ AYCDGHSyvYsgtd3gAXrH802/kInXb+iu2NlWhCPGUpH+eRuxqecYctfBauG9LBCJkd6HCR a7ZPdLtGuzUxbRsBVIfEA2CV63+XFajwOaMjDrm9wbeIh07ABbxyXQ6P128nlcg1ouyJGL rEv1NFtWEnx7sgglpkPriB36UohdHWGK2Ki1gwjfr8xbNhp8E/EPmxt4POEZ5YM/yfRJvp 91U+4P6duge1qherK8l3MAhKaWXPyMDL4vgx/vyxc6/majm44v8URFUmz3VweQ== From: Roman Beranek To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Jernej Skrabec , Samuel Holland Cc: Roman Beranek , Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 3/7] arm64: dts: allwinner: a64: assign PLL_MIPI to CLK_TCON0 Date: Thu, 27 Apr 2023 11:16:07 +0200 Message-Id: <20230427091611.99044-4-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230427091611.99044-1-me@crly.cz> References: <20230427091611.99044-1-me@crly.cz> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Assign pll-mipi parent to tcon0's source clock via 'assigned-clocks'. Signed-off-by: Roman Beranek --- arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boo= t/dts/allwinner/sun50i-a64.dtsi index 62f45f71ec65..e6a194db420d 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -411,6 +411,8 @@ tcon0: lcd-controller@1c0c000 { #clock-cells =3D <0>; resets =3D <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; reset-names =3D "lcd", "lvds"; + assigned-clocks =3D <&ccu CLK_TCON0>; + assigned-clock-parents =3D <&ccu CLK_PLL_MIPI>; =20 ports { #address-cells =3D <1>; --=20 2.34.1 From nobody Thu Dec 18 08:55:33 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CDD19C77B61 for ; Thu, 27 Apr 2023 09:17:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242963AbjD0JRP (ORCPT ); Thu, 27 Apr 2023 05:17:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243117AbjD0JRD (ORCPT ); Thu, 27 Apr 2023 05:17:03 -0400 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B05D4ED0 for ; Thu, 27 Apr 2023 02:17:02 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id A761F1BF20F; Thu, 27 Apr 2023 09:16:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1682587021; 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=5d+itg7Hh9nGexE8xtDQBtvYxB28npggmEJJymVnOx0=; b=GiRAFr/UTTGAFRwKFq02UQ3SwuendpSDUVIwVn5Lk3RL8sQiji6+GNYB+ncXZGgcINis2i +hEu6FMUYS79zqH8yhix+kKfWPGUBo+rpAHBsdYsk57vUkb3k71Y9YsADICRi1UtCcSPFu SPRGwpbzcb+YwciZdpbeMznGr9bq22Rwd6b41s5jf1IaHaaRuDQd5QCwbly74kn8+BpsLU oAMDEFV2mXmo/l4ceJ9uWfxrqvEzrOHjpBaN2fEydUYrKIFJp5dEDtj1BaLXLnHvkAZdcX IP6yphZGlER3ked+FWv/4ND24J7f3rpMmHmKQ0FWg4ZnoZMg388aa3Osbml03A== From: Roman Beranek To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Jernej Skrabec , Samuel Holland Cc: Roman Beranek , Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 4/7] arm64: dts: allwinner: a64: reset pll-video0 rate Date: Thu, 27 Apr 2023 11:16:08 +0200 Message-Id: <20230427091611.99044-5-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230427091611.99044-1-me@crly.cz> References: <20230427091611.99044-1-me@crly.cz> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" With pll-mipi as its source clock, the exact rate to which TCON0's data clock can be set to is constrained by the current rate of pll-video0. Unless changed on a request of another consumer, the rate of pll-video0 is left as inherited from the bootloader. The default rate on reset is 297 MHz, a value preferable to what it is later set to in u-boot (294 MHz). This happens unintentionally though, as u-boot, for the sake of simplicity, rounds the rate requested by DE2 driver (297 MHz) to 6 MHz steps. Reset the PLL to its default rate of 297 MHz. Signed-off-by: Roman Beranek --- arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boo= t/dts/allwinner/sun50i-a64.dtsi index e6a194db420d..cfc60dce80b0 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -667,6 +667,9 @@ ccu: clock@1c20000 { clock-names =3D "hosc", "losc"; #clock-cells =3D <1>; #reset-cells =3D <1>; + + assigned-clocks =3D <&ccu CLK_PLL_VIDEO0>; + assigned-clock-rates =3D <297000000>; }; =20 pio: pinctrl@1c20800 { --=20 2.34.1 From nobody Thu Dec 18 08:55:33 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B52EDC77B73 for ; Thu, 27 Apr 2023 09:17:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242959AbjD0JRS (ORCPT ); Thu, 27 Apr 2023 05:17:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243178AbjD0JRI (ORCPT ); Thu, 27 Apr 2023 05:17:08 -0400 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::228]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2863B2119 for ; Thu, 27 Apr 2023 02:17:05 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 4770E1BF212; Thu, 27 Apr 2023 09:17:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1682587023; 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=I2h5VMqaJesUOuPG8+eybvYx3Ki8p5H+CLiCTNTLovw=; b=GgasaxcNkI+SGUsQZJuzuZwIdPpd1MTVPJ2lq6t3yH7M0xQN3Id6ZveAAR3mguKKSel/Po eAK2Blyiw86ew2FfV25lnNHrAHcYxo7YiU3sT793Ht+rQGsqsWiepQ4ZcmWnIybsx6b1pf 8RrFa+eGGCFWbZKezbuGYYRk6dVonD00gWS0n7SCdRI6aETKIE98/kTbnX+wRlWkv5/erq nTPEqOxFSuONbeq9j5FALmt8xlCEztT9QtfM96/ieMXasE51MhEm1+7BWI9O2/uMFZw+aR jErfU4nyB1730zdc6LHFvRfQX+YDP6CYADP+TIztmjXdSD3xNkZ+wbHzXQHKtQ== From: Roman Beranek To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Jernej Skrabec , Samuel Holland Cc: Roman Beranek , Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 5/7] ARM: dts: sunxi: rename tcon's clock output Date: Thu, 27 Apr 2023 11:16:09 +0200 Message-Id: <20230427091611.99044-6-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230427091611.99044-1-me@crly.cz> References: <20230427091611.99044-1-me@crly.cz> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" While the rate of TCON0's DCLK matches dotclock for parallel and LVDS outputs, this doesn't hold for DSI. According manuals from Allwinner, DCLK is an abbreviation of Data Clock, not dotclock, so go with that instead. Signed-off-by: Roman Beranek --- arch/arm/boot/dts/sun5i.dtsi | 2 +- arch/arm/boot/dts/sun8i-a23-a33.dtsi | 2 +- arch/arm/boot/dts/sun8i-a83t.dtsi | 2 +- arch/arm/boot/dts/sun8i-v3s.dtsi | 2 +- arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi index 250d6b87ab4d..2f901a013676 100644 --- a/arch/arm/boot/dts/sun5i.dtsi +++ b/arch/arm/boot/dts/sun5i.dtsi @@ -286,7 +286,7 @@ tcon0: lcd-controller@1c0c000 { clock-names =3D "ahb", "tcon-ch0", "tcon-ch1"; - clock-output-names =3D "tcon-pixel-clock"; + clock-output-names =3D "tcon-data-clock"; #clock-cells =3D <0>; status =3D "disabled"; =20 diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i= -a23-a33.dtsi index f630ab55bb6a..ddc87cc15e51 100644 --- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi +++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi @@ -190,7 +190,7 @@ tcon0: lcd-controller@1c0c000 { clock-names =3D "ahb", "tcon-ch0", "lvds-alt"; - clock-output-names =3D "tcon-pixel-clock"; + clock-output-names =3D "tcon-data-clock"; #clock-cells =3D <0>; resets =3D <&ccu RST_BUS_LCD>, <&ccu RST_BUS_LVDS>; diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a8= 3t.dtsi index 82fdb04122ca..94eb3bfc989e 100644 --- a/arch/arm/boot/dts/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi @@ -456,7 +456,7 @@ tcon0: lcd-controller@1c0c000 { interrupts =3D ; clocks =3D <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; clock-names =3D "ahb", "tcon-ch0"; - clock-output-names =3D "tcon-pixel-clock"; + clock-output-names =3D "tcon-data-clock"; #clock-cells =3D <0>; resets =3D <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; reset-names =3D "lcd", "lvds"; diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s= .dtsi index db194c606fdc..ab2a0e1235e4 100644 --- a/arch/arm/boot/dts/sun8i-v3s.dtsi +++ b/arch/arm/boot/dts/sun8i-v3s.dtsi @@ -191,7 +191,7 @@ tcon0: lcd-controller@1c0c000 { <&ccu CLK_TCON0>; clock-names =3D "ahb", "tcon-ch0"; - clock-output-names =3D "tcon-pixel-clock"; + clock-output-names =3D "tcon-data-clock"; #clock-cells =3D <0>; resets =3D <&ccu RST_BUS_TCON0>; reset-names =3D "lcd"; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boo= t/dts/allwinner/sun50i-a64.dtsi index cfc60dce80b0..b40474c92d48 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -407,7 +407,7 @@ tcon0: lcd-controller@1c0c000 { interrupts =3D ; clocks =3D <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; clock-names =3D "ahb", "tcon-ch0"; - clock-output-names =3D "tcon-pixel-clock"; + clock-output-names =3D "tcon-data-clock"; #clock-cells =3D <0>; resets =3D <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; reset-names =3D "lcd", "lvds"; --=20 2.34.1 From nobody Thu Dec 18 08:55:33 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16EA1C77B61 for ; Thu, 27 Apr 2023 09:17:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243198AbjD0JRo (ORCPT ); Thu, 27 Apr 2023 05:17:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243288AbjD0JRO (ORCPT ); Thu, 27 Apr 2023 05:17:14 -0400 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05B71525A for ; Thu, 27 Apr 2023 02:17:07 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 09D081BF20D; Thu, 27 Apr 2023 09:17:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1682587026; 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=bD9KwDLg2m8+Br4YPFy4e8CxpYZb1W3wINLNprzhZeA=; b=g5QPMqzzVHXHQ77u1winEQ/3sWz4IR3C0gB6Ooif/lxyOdyKgzhNrQwdRYR8SFnn5+b0Gt BD6iNvKC9prKpfoQuVdDfYzJGN/3DU87cRzejkHvCiQ/pZC5MZOQ5x3KBOJL+kao4MZ9rJ Y3lSeipW8djxW4SDSSM9p+ICxtfB01ea3SLXgNHipeATwJPLvcYaoMv0qs9uiWZB159CQB Qbdn+h0mlSv9HlygKuvPknVKu8qykWnJ06rVZ41h9a2oA+wzQuZfwQgAzY0vyjoj8Iknc+ TJ9BFqdk3X5nPYU1ujsGla0mw6aw4EBbIRFAowAfgtUiaeQIrdDIPR9m/eHJfQ== From: Roman Beranek To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Jernej Skrabec , Samuel Holland Cc: Roman Beranek , Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 6/7] drm: sun4i: rename sun4i_dotclock to sun4i_tcon_dclk Date: Thu, 27 Apr 2023 11:16:10 +0200 Message-Id: <20230427091611.99044-7-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230427091611.99044-1-me@crly.cz> References: <20230427091611.99044-1-me@crly.cz> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" While the rate of TCON0's DCLK matches dotclock for parallel and LVDS outputs, this doesn't hold for DSI. The 'D' in DCLK actually stands for 'Data' according to Allwinner's manuals. The clock is mostly referred to as dclk throughout this driver already anyway, so stick with that. Signed-off-by: Roman Beranek --- drivers/gpu/drm/sun4i/Makefile | 2 +- drivers/gpu/drm/sun4i/sun4i_tcon.c | 10 +++++----- .../drm/sun4i/{sun4i_dotclock.c =3D> sun4i_tcon_dclk.c} | 2 +- .../drm/sun4i/{sun4i_dotclock.h =3D> sun4i_tcon_dclk.h} | 0 4 files changed, 7 insertions(+), 7 deletions(-) rename drivers/gpu/drm/sun4i/{sun4i_dotclock.c =3D> sun4i_tcon_dclk.c} (99= %) rename drivers/gpu/drm/sun4i/{sun4i_dotclock.h =3D> sun4i_tcon_dclk.h} (10= 0%) diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile index 0d04f2447b01..bad7497a0d11 100644 --- a/drivers/gpu/drm/sun4i/Makefile +++ b/drivers/gpu/drm/sun4i/Makefile @@ -19,7 +19,7 @@ sun8i-mixer-y +=3D sun8i_mixer.o sun8i_ui_layer.o \ sun8i_vi_scaler.o sun8i_csc.o =20 sun4i-tcon-y +=3D sun4i_crtc.o -sun4i-tcon-y +=3D sun4i_dotclock.o +sun4i-tcon-y +=3D sun4i_tcon_dclk.o sun4i-tcon-y +=3D sun4i_lvds.o sun4i-tcon-y +=3D sun4i_tcon.o sun4i-tcon-y +=3D sun4i_rgb.o diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun= 4i_tcon.c index 523a6d787921..eec26b1faa4b 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -31,12 +31,12 @@ #include =20 #include "sun4i_crtc.h" -#include "sun4i_dotclock.h" #include "sun4i_drv.h" #include "sun4i_lvds.h" #include "sun4i_rgb.h" #include "sun4i_tcon.h" #include "sun6i_mipi_dsi.h" +#include "sun4i_tcon_dclk.h" #include "sun8i_tcon_top.h" #include "sunxi_engine.h" =20 @@ -1237,14 +1237,14 @@ static int sun4i_tcon_bind(struct device *dev, stru= ct device *master, ret =3D sun4i_tcon_init_irq(dev, tcon); if (ret) { dev_err(dev, "Couldn't init our TCON interrupts\n"); - goto err_free_dotclock; + goto err_free_dclk; } =20 tcon->crtc =3D sun4i_crtc_init(drm, engine, tcon); if (IS_ERR(tcon->crtc)) { dev_err(dev, "Couldn't create our CRTC\n"); ret =3D PTR_ERR(tcon->crtc); - goto err_free_dotclock; + goto err_free_dclk; } =20 if (tcon->quirks->has_channel_0) { @@ -1264,7 +1264,7 @@ static int sun4i_tcon_bind(struct device *dev, struct= device *master, of_node_put(remote); =20 if (ret < 0) - goto err_free_dotclock; + goto err_free_dclk; } =20 if (tcon->quirks->needs_de_be_mux) { @@ -1290,7 +1290,7 @@ static int sun4i_tcon_bind(struct device *dev, struct= device *master, =20 return 0; =20 -err_free_dotclock: +err_free_dclk: if (tcon->quirks->has_channel_0) sun4i_dclk_free(tcon); err_free_clocks: diff --git a/drivers/gpu/drm/sun4i/sun4i_dotclock.c b/drivers/gpu/drm/sun4i= /sun4i_tcon_dclk.c similarity index 99% rename from drivers/gpu/drm/sun4i/sun4i_dotclock.c rename to drivers/gpu/drm/sun4i/sun4i_tcon_dclk.c index 417ade3d2565..03d7de1911cd 100644 --- a/drivers/gpu/drm/sun4i/sun4i_dotclock.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon_dclk.c @@ -10,7 +10,7 @@ #include =20 #include "sun4i_tcon.h" -#include "sun4i_dotclock.h" +#include "sun4i_tcon_dclk.h" =20 struct sun4i_dclk { struct clk_hw hw; diff --git a/drivers/gpu/drm/sun4i/sun4i_dotclock.h b/drivers/gpu/drm/sun4i= /sun4i_tcon_dclk.h similarity index 100% rename from drivers/gpu/drm/sun4i/sun4i_dotclock.h rename to drivers/gpu/drm/sun4i/sun4i_tcon_dclk.h --=20 2.34.1 From nobody Thu Dec 18 08:55:33 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3ED4EC77B61 for ; Thu, 27 Apr 2023 09:17:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243003AbjD0JRs (ORCPT ); Thu, 27 Apr 2023 05:17:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243320AbjD0JRZ (ORCPT ); Thu, 27 Apr 2023 05:17:25 -0400 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::228]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9E334EC1 for ; Thu, 27 Apr 2023 02:17:10 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id CA9521BF20A; Thu, 27 Apr 2023 09:17:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1682587029; 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=RXbaBNxkiTTV4hInjji5NkCrdDSarnLLhwu9cO3OfTc=; b=dQ4NDlSI58cJBb7iv0QJQowSzJODauNypp2m+QipibmpGjXssSEAgumLdAxs/1KE/x+dyW iZQki3PXi9o87QJvuzqpiZr+gCbfZUC7VaVLjLPDf78HsWOwgcIwc3cgr/vBCoyFaYKpC/ a/RxZyyxDw8hNDyTvDrhMbfBWRoPBz4KRklb/EVp7vJBSA/wiyQT9LDhyDctFFLv8Sv4I8 a8xlWsQY8Y691V4qkX9dXYKccZUpOGcdDFM5/DYylarPGuEl/t5Vs4wIM1v8mmXwVrsX1e bAKFe20aDWyhi/eHbtziQRQ1EYAGc/mbPCy6qCEdMD4hBMfM7oK2D77UtOQycw== From: Roman Beranek To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Jernej Skrabec , Samuel Holland Cc: Roman Beranek , Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 7/7] drm: sun4i: calculate proper DCLK rate for DSI Date: Thu, 27 Apr 2023 11:16:11 +0200 Message-Id: <20230427091611.99044-8-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230427091611.99044-1-me@crly.cz> References: <20230427091611.99044-1-me@crly.cz> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" In DSI mode, TCON0's data clock is required to run at 1/4 the per-lane bit rate. Signed-off-by: Roman Beranek --- drivers/gpu/drm/sun4i/sun4i_tcon.c | 36 +++++++++++++++++------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun= 4i_tcon.c index eec26b1faa4b..b263de7a8237 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -291,18 +291,6 @@ static int sun4i_tcon_get_clk_delay(const struct drm_d= isplay_mode *mode, return delay; } =20 -static void sun4i_tcon0_mode_set_common(struct sun4i_tcon *tcon, - const struct drm_display_mode *mode) -{ - /* Configure the dot clock */ - clk_set_rate(tcon->dclk, mode->crtc_clock * 1000); - - /* Set the resolution */ - regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, - SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | - SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); -} - static void sun4i_tcon0_mode_set_dithering(struct sun4i_tcon *tcon, const struct drm_connector *connector) { @@ -367,10 +355,18 @@ static void sun4i_tcon0_mode_set_cpu(struct sun4i_tco= n *tcon, u32 block_space, start_delay; u32 tcon_div; =20 + /* + * dclk is required to run at 1/4 the DSI per-lane bit rate. + */ tcon->dclk_min_div =3D SUN6I_DSI_TCON_DIV; tcon->dclk_max_div =3D SUN6I_DSI_TCON_DIV; + clk_set_rate(tcon->dclk, mode->crtc_clock * 1000 * (bpp / lanes) + / SUN6I_DSI_TCON_DIV); =20 - sun4i_tcon0_mode_set_common(tcon, mode); + /* Set the resolution */ + regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, + SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | + SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); =20 /* Set dithering if needed */ sun4i_tcon0_mode_set_dithering(tcon, sun4i_tcon_get_connector(encoder)); @@ -438,7 +434,12 @@ static void sun4i_tcon0_mode_set_lvds(struct sun4i_tco= n *tcon, =20 tcon->dclk_min_div =3D 7; tcon->dclk_max_div =3D 7; - sun4i_tcon0_mode_set_common(tcon, mode); + clk_set_rate(tcon->dclk, mode->crtc_clock * 1000); + + /* Set the resolution */ + regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, + SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | + SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); =20 /* Set dithering if needed */ sun4i_tcon0_mode_set_dithering(tcon, sun4i_tcon_get_connector(encoder)); @@ -515,7 +516,12 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon= *tcon, =20 tcon->dclk_min_div =3D tcon->quirks->dclk_min_div; tcon->dclk_max_div =3D 127; - sun4i_tcon0_mode_set_common(tcon, mode); + clk_set_rate(tcon->dclk, mode->crtc_clock * 1000); + + /* Set the resolution */ + regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, + SUN4I_TCON0_BASIC0_X(mode->crtc_hdisplay) | + SUN4I_TCON0_BASIC0_Y(mode->crtc_vdisplay)); =20 /* Set dithering if needed */ sun4i_tcon0_mode_set_dithering(tcon, connector); --=20 2.34.1