From nobody Thu Feb 12 12:30:26 2026 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 98046C77B71 for ; Tue, 18 Apr 2023 07:40:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230443AbjDRHkx (ORCPT ); Tue, 18 Apr 2023 03:40:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47896 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229681AbjDRHkr (ORCPT ); Tue, 18 Apr 2023 03:40:47 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2E6B40C8 for ; Tue, 18 Apr 2023 00:40:45 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 39B58FF803; Tue, 18 Apr 2023 07:40:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1681803644; 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=QGdxm1MZfKiixTZRAK84Xihyd7IYkMPBrEsYiqEHj7g=; b=cvF9wZRMZo9QffL/EYafEymCRnRmfFhAqANyq0Uga3jWnhxlANUzXIma0oasCVdku8imLG tlyonZJHlrWzJo2n43gqZnR+mdaKosAu2UVqHLAZdWs9RNTWSa59+94amuxOukCxYvc1W9 EfP354qSdQ31lO57wT8kAGb2lrBm59D2X27uBCBCpoBu8UfRAmG75JVCCCx0HT6w4RNRHk W3Q5UR7LocJKDqTqfV+sL8fZDVC9Et2s6jQ1m7zRAR/0qQ7NIZwbRQXo5rDqab+mUn7Ceh iGHnsIhBnVbyUTRLPI6zJTm2wYJkEGBz65ELKm6qNoifQv+D5JmZ/JV+iASlvQ== 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 v2 1/7] clk: sunxi-ng: a64: propagate rate change from pll-mipi Date: Tue, 18 Apr 2023 09:40:02 +0200 Message-Id: <20230418074008.69752-2-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230418074008.69752-1-me@crly.cz> References: <20230418074008.69752-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" Propagating rate change from tcon0 all the way to pll-video0 allows for greater precision in matching requested display timing. 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..dd6212286dcd 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c @@ -179,7 +179,8 @@ static struct ccu_nkm pll_mipi_clk =3D { .common =3D { .reg =3D 0x040, .hw.init =3D CLK_HW_INIT("pll-mipi", "pll-video0", - &ccu_nkm_ops, CLK_SET_RATE_UNGATE), + &ccu_nkm_ops, CLK_SET_RATE_UNGATE + | CLK_SET_RATE_PARENT), }, }; =20 --=20 2.34.1 From nobody Thu Feb 12 12:30:26 2026 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 1FD02C77B76 for ; Tue, 18 Apr 2023 07:40:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230465AbjDRHk4 (ORCPT ); Tue, 18 Apr 2023 03:40:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230434AbjDRHkv (ORCPT ); Tue, 18 Apr 2023 03:40:51 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00AEC4EEE for ; Tue, 18 Apr 2023 00:40:49 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 985E6FF80A; Tue, 18 Apr 2023 07:40:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1681803648; 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=QsJveq3/NDr0qACBLj+eGSq+BTWI/i+XTbyK5fZPgLEp3XHR3wSeaR/ankdP/evHCtBYf6 U+XRSksek4uSDpgUq5R0Qsy8QHBn8x1h52MCMPd2SqN/zypwGALkPV+eNPpONdQhumztb0 eNNhCeUcgSPV5ot2hcCPDkeezyQ11D0F2y4qYjcr9t00Otaz9uUibDfXCw5HtoVg/fUGbe Hf/0dAMN9uvI5uwseTGpCtFjSmQk2aTrgqH+ddBHWOolNd8j+0l1dtTNEbgkatRFxRYvvR Xn2rTWDdEcKaZki4QprBb06k15kHSzZO4hYMU9QLDEgbtPb56+Sz5sHk3C34Lg== 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 v2 2/7] clk: sunxi-ng: a64: export PLL_MIPI Date: Tue, 18 Apr 2023 09:40:03 +0200 Message-Id: <20230418074008.69752-3-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230418074008.69752-1-me@crly.cz> References: <20230418074008.69752-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 Feb 12 12:30:26 2026 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 62287C77B71 for ; Tue, 18 Apr 2023 07:41:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230464AbjDRHlD (ORCPT ); Tue, 18 Apr 2023 03:41:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48174 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230434AbjDRHk5 (ORCPT ); Tue, 18 Apr 2023 03:40:57 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D311761AB for ; Tue, 18 Apr 2023 00:40:54 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 51D49FF814; Tue, 18 Apr 2023 07:40:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1681803653; 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=scpDFCwV6aTtfRwsoCgon3HntVUYCshBYgDIy4kWdfQ=; b=QaLRavhTSSyccEemL1jrJWuohZsPZyAELIB+BA9O47tihXuUeuJEFYnuk8xHbm10ccusKK nXIgHgc4bZVPWF7CsbQdTwXJR54kSxGpVbLKc6Jms7m66ekRRCdCMQb4id2rbBd+uDwr6h FWgJPScBzcLoDjoMrUWsgTCzqldOIYQrJ5pnrM0NhF+wTT4Ru2PCIMdKHNkIEQdIRiJonq exAsnEqiz9i66Z/CunnZ8jHi8nA9hEU2/3ZVi4g8yraIXu1AphNRHi6w8SRwWWGgtyffnn GmyfQevD8kPCpCM8+3SXiW5WXXjUFCRnyzDUUPp0XXz+KXRfNkSqGwDPPw28PQ== 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 v2 3/7] clk: sunxi-ng: a64: prevent CLK_TCON0 being reparented Date: Tue, 18 Apr 2023 09:40:04 +0200 Message-Id: <20230418074008.69752-4-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230418074008.69752-1-me@crly.cz> References: <20230418074008.69752-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 dd6212286dcd..ac9bf4e316bf 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c @@ -533,7 +533,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 Feb 12 12:30:26 2026 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 0EB04C77B75 for ; Tue, 18 Apr 2023 07:41:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231147AbjDRHlG (ORCPT ); Tue, 18 Apr 2023 03:41:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230519AbjDRHlC (ORCPT ); Tue, 18 Apr 2023 03:41:02 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B93159D0 for ; Tue, 18 Apr 2023 00:40:58 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id CE320FF80B; Tue, 18 Apr 2023 07:40:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1681803657; 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=KqlPh3QYAhMULC+tUHT6fKDlldWSan9BP+wzcUnwqTptWA3xHs6WPMAX8ATFDDqGmGKAqG deAgqYnh+zZ6BPJFdCu+Ri+cWVow+Wgk+pi+EjxjqDVWpyZZwC90K+XowyaY7KKosN6z5R pF4GmBeuGH1MJti+gQztzLPvC8+4biLctajpgfmlFSL6P9aeyid8tm5m2p3+JNc3GS/88b GqHb/norXazE7TzuxCmYLxW4kYGCnBGEOQDO/g2a1vNuEeIPi5GvJebNVB8x3+IHQ2DdXs OtR+AXkfY67hQkxcT1yYgcDxW4s0sR53Pxp0F1q00skCWFBhbAVGnn34RaiuTg== 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 v2 4/7] arm64: dts: allwinner: a64: assign PLL_MIPI to CLK_TCON0 Date: Tue, 18 Apr 2023 09:40:05 +0200 Message-Id: <20230418074008.69752-5-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230418074008.69752-1-me@crly.cz> References: <20230418074008.69752-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 Feb 12 12:30:26 2026 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 9A71EC77B71 for ; Tue, 18 Apr 2023 07:41:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231194AbjDRHlX (ORCPT ); Tue, 18 Apr 2023 03:41:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231233AbjDRHlQ (ORCPT ); Tue, 18 Apr 2023 03:41:16 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A77E961B8 for ; Tue, 18 Apr 2023 00:41:03 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 8BE52FF812; Tue, 18 Apr 2023 07:40:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1681803661; 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=vr3oL2Us5H2ZeTG9LhFdTH01zH2nHLpGc1qTlHBKCoI=; b=Ti3Q3vUn/BeVsvNC6Tc1pcQcrV0Ng8sL+L9JmS4oP0sdeOAuQhw03gitnPoA56+b6UeiWY 6r+kzqMTKH+UqykWDG4WZFBjAgiqwU8gb5f4VPTa2VyZ5dHOzT5IGz8yXQRZC1TJ80Kvix OrqtiuHNOqGNJZmpHwdIPiDqRAqlfxlqAh1M4YkP00uPHKejBHyb3Gaorbn7tUxIRBqT9U fuQW38u76vO2jWwwa0BKm5xBSqmdzDJi/sUHggGKuhuRhc8XlZjeScKwIeS/sgkd78dNzB WRqOXY8ka6CyKoGO6G4QlOEsyTitHpK+sR6XpPbfJJ1DgalKGd01k215NsksxQ== 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 v2 5/7] ARM: dts: sunxi: rename tcon's clock output Date: Tue, 18 Apr 2023 09:40:06 +0200 Message-Id: <20230418074008.69752-6-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230418074008.69752-1-me@crly.cz> References: <20230418074008.69752-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 e6a194db420d..caf35d2dd5d0 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 Feb 12 12:30:26 2026 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 93084C77B71 for ; Tue, 18 Apr 2023 07:41:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230168AbjDRHle (ORCPT ); Tue, 18 Apr 2023 03:41:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230340AbjDRHlb (ORCPT ); Tue, 18 Apr 2023 03:41:31 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7593272B9 for ; Tue, 18 Apr 2023 00:41:12 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 4641AFF805; Tue, 18 Apr 2023 07:41:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1681803667; 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=TpUBaBiaC5tf4VO1i95NE7rND+kNTXJT7JJnu66BMubXOENUklh+VOe2pQPtF40+oMiKOn XBtPCgOl/7dN1I685LXwMzgha7yMdtuNzqNbnnvuqOIfDhuZ4gHww5aWRmizElEI8uH8oa fBL8vvtXmtKlkArXzihIcs6nm3jii9RTOOB5e23ak3PblPLGu8oZ3EhX5Yb6KaYowCQhT3 HNmsrw+ro1BZllEogfKm5ynnk8LvlWSRmHCNpvM0Oz/KSeIwT65wxbmQ5jxPOUxAFIlPzS xr6RDbXq4DXYGStSDi++kZFiotyh25qTEaG5Fo6Ouv3A3hlHTU3AIBap/v5chQ== 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 v2 6/7] drm: sun4i: rename sun4i_dotclock to sun4i_tcon_dclk Date: Tue, 18 Apr 2023 09:40:07 +0200 Message-Id: <20230418074008.69752-7-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230418074008.69752-1-me@crly.cz> References: <20230418074008.69752-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 Feb 12 12:30:26 2026 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 0AA26C77B71 for ; Tue, 18 Apr 2023 07:41:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230459AbjDRHls (ORCPT ); Tue, 18 Apr 2023 03:41:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49392 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231241AbjDRHln (ORCPT ); Tue, 18 Apr 2023 03:41:43 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C8256A6D for ; Tue, 18 Apr 2023 00:41:26 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 5CF37FF818; Tue, 18 Apr 2023 07:41:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1681803671; 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=GGo8ZSJuCFf8PhmINCprVl3K0jroP984sMuxT1hhoVj7KXeXwt5lwaC1xXSQSse5e7Z+GX iyk+LFcxnTdfDqW4I8lFY9cKpqr+Rqz7yvhi65RVghDQzTPb2NR9uxc59vLxsbNdWcpcx8 mB4ksq+3XoPnpGctNNIrIiRFjNH3miTpSwFtEzhbOr+pOW1Ny4NuPFXobAPdA4PxpJm88T eTUxZiSsIP5Wd7oeLV5lZ1E/IfYPnaQZcv7Dtfd48/+iaPLhUI8/TDSOW4SiR/r3I+SNxk 4DnOAslp97cT8Df/zkoGbLEGBa/Ghx8YH8/hC7+nO9CRJzBFXhgdGezTL0ajMQ== 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 v2 7/7] drm: sun4i: calculate proper DCLK rate for DSI Date: Tue, 18 Apr 2023 09:40:08 +0200 Message-Id: <20230418074008.69752-8-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) In-Reply-To: <20230418074008.69752-1-me@crly.cz> References: <20230418074008.69752-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