From nobody Tue Feb 10 06:57:41 2026 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010007.outbound.protection.outlook.com [52.101.229.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C288433438F; Fri, 30 Jan 2026 17:27:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769794061; cv=fail; b=OzqagIFhlowQm3o+XFzAMixXoRo1awQ7Tot5NKMB5raSFhEj6omKg2ZTEC0jBCHLDQtbHigRYmQ4WzU6TAr3rRQ12KqYd7hk28d1mPnEqmG3kbb6oaeh+G4T7VhPS0WfdMN5W0qomxC838Xw1YCHT1ZkaqKAc/+U1rC8GTJdJ4o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769794061; c=relaxed/simple; bh=oeSJBKN/hEslhO80rDjkovLYWAbUAEDp+12APwJ5lmc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=k2VeGQYezXq2ifzgQbLhGHTWE7f68yweCisFkcfSmgzBGmX7oUgH+eiqr1mmsZa1lIXa2FjtqAU++r45vnJG0eogQsCsnoZpMY8h2dywXygqFo+LYDV3nG6TJ8b8FuUOI9WK1v/1xd7LY/dd2sOAHfFN9vGkd3qUPqP5W9KSMOk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=lP3/czbr; arc=fail smtp.client-ip=52.101.229.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="lP3/czbr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ksiTX7QkcsY1o82DBT2OHKDH62T832Ed+BMav2cUiTX6ogISYUo9gMFJ8EptMxx6NZrkWx1LS37ebF940fBWI6Dr1WrBkCZFyFHknImyljjezWN4sfSLCVKMKGPp5/gNucArK/Kpv4CF0McGSUe2WgX+kYAtDAjSSDfmgQoVr0quOvUtyVQAiF1HfxTHfZx7a2crv/53uLnF1EpN83lOL8jhueo+QIT5JIcXLZKqEJVp7g9CNvT2YCFpNDRKFFe7KHPDItYtEbmC9d5rmZJu6UQqmhhw/pOa7rtZ3GmZlhYqX9F0p4lA91ay6EQpn27z1VZhVVLLg3kiY6wywnEvug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DyWv+FY7JffJS5+rY4quotqnCEf2viCUKVSS39yw7Vg=; b=ICxErfBNIdtibLIhnMH9XVHMAn9B29DnOmS/L3PCKr+fqb/d0g09yHVVQZWy5JCIiXOo1QcawqkdgDpMiLIA8lyGGlFdVNnKkjzxbXBWyp8gIWIa1cRBiHP/5r5SY6EyZ9xeiGpNmgjT+ZsrT1Fj8oZURtrL72XoyLWyg6Ftzyl+QGXJrRZlsI38hHDaNt7Q1/BhoD9sX5QsANyBf0GRyWtTDjmyJ6O8rCUHkO07kxz1Qw3N8t4eTzmBQGCBobcnXzuPF5UI1J2aJsR6g4gBpRn09Sf4d+/ZOx9TIPFCTh1uKREZDXXDRJICfVpuqId2WM4t7EChpUjvBO/xTmfkrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DyWv+FY7JffJS5+rY4quotqnCEf2viCUKVSS39yw7Vg=; b=lP3/czbr6nDhh57L1BhWuTHUCK0Gag15GQtcq3Pb1l8J7CwuEVIUp6TfK1Nt0JUFFfvU1gmkHOZ7ISLRCcpgV584h0LpNSncADlem423Qhe5jqzvn3pH0sIDpoQHnXQMbb7LpEARSWMSfh+giaPuaIv3jU4RozPTTA0PYSr6hog= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from TYCPR01MB11947.jpnprd01.prod.outlook.com (2603:1096:400:3e1::6) by TYCPR01MB10351.jpnprd01.prod.outlook.com (2603:1096:400:226::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 17:27:37 +0000 Received: from TYCPR01MB11947.jpnprd01.prod.outlook.com ([fe80::33f1:f7cd:46be:e4d8]) by TYCPR01MB11947.jpnprd01.prod.outlook.com ([fe80::33f1:f7cd:46be:e4d8%5]) with mapi id 15.20.9564.010; Fri, 30 Jan 2026 17:27:37 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com, geert@linux-m68k.org, laurent.pinchart@ideasonboard.com Cc: linux-renesas-soc@vger.kernel.org, biju.das.jz@bp.renesas.com, Tommaso Merciai , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Magnus Damm , Laurent Pinchart , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Subject: [PATCH v2 12/20] drm: renesas: rz-du: mipi_dsi: Add RZ_MIPI_DSI_FEATURE_GPO0R feature Date: Fri, 30 Jan 2026 18:25:09 +0100 Message-ID: <5ef20dc0a10ddb8ac91667b62eefda772f7aa204.1769789834.git.tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0155.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b3::18) To TYCPR01MB11947.jpnprd01.prod.outlook.com (2603:1096:400:3e1::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB11947:EE_|TYCPR01MB10351:EE_ X-MS-Office365-Filtering-Correlation-Id: 31b9a1ec-c144-48e8-2380-08de6024dcbf X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?X8xLtXhM4arCPX4Y7oHiSSpw2HE74L7LGTiiFoqyTZ5V3mB0SH6DMOJ8a9Kj?= =?us-ascii?Q?LJp/4VwcXrZBx0Iw2KY18ntZ0m4dN4SCtgZiXSC1p8bbWzuUrLMTCcJDa3cZ?= =?us-ascii?Q?0T+FmWZt/hhqTmE5/OQELzm9F0Oq9p8z0G8OsveS0s2c729JEDjT5xt7ZKcV?= =?us-ascii?Q?iXEorfme4dDzE9AQBsaOUKnb1SORjYEUCo+AQRzTjlxYnlFZWIVfz5BatkZg?= =?us-ascii?Q?d7btr3FdOt3C74dulZYyLbIsE/kSKNrGmyIZlK3gWb1XUM5AC6F0BrkT1To4?= =?us-ascii?Q?qiq5Iu+4+Y4TsPKjr5Gqjssjtyrl++4jHmZ5HaQ9XEPbKoiCfECCBUpksnbH?= =?us-ascii?Q?PqaxMUkTzgraGgU+mmR9fp9VVPgoQrd2amJIxhWuUEH9xeT+1RgZkte2+Nj0?= =?us-ascii?Q?84V5VfYi1EqyRMXvi1s7oBvsvHux35vvdupbG+qP6pywbaaKa+kbYdU+4tJL?= =?us-ascii?Q?iKhFidl3t1l2yaMkR1RdATDewuX8HwVseeofiCQYWD5z9gPzpXXO7Kyqmutc?= =?us-ascii?Q?U9Tm8qSLyjI0JtGgSV3VzV2eYUH6W7ctzdgorP1L79DSv2grBCThLEHlgTQ6?= =?us-ascii?Q?KkFiJxi/pQaoMmd6iQtkzvr2QYK+FhAOfu2pIoY4llNWgFeMF9rU7bSRrOPV?= =?us-ascii?Q?fFPe1w0ERB+pGpfexehGeJofLOCfdKMnnBV3aoFveQSqZvP2g23K6gdqm4Wu?= =?us-ascii?Q?3jPEXNgS6gZjyOsQ5Nr4HN5qohciSXGW5b8gk6VuFQi2J1be4Yb+wzNfpSLN?= =?us-ascii?Q?gsuJs8wLxoMhg5oRGzw3aTfhk8HOMylNvIEMKQu/nugE6IOPllNDhUuR55zT?= =?us-ascii?Q?2+74qk1L8Du9I7A2eyesGMlxJfn0j9vGAthsqOMvItzlEHv42cKPuBCFoB9n?= =?us-ascii?Q?IXW3DrzJZ5CIw9KaU0u4xu45nG/I4tpVOwVm4nh1Ne5GTcao239cIhaWr+mo?= =?us-ascii?Q?gsC2wOxNwz5Oz9wIQZxNvoLyj7FzJbw8RgDJRkbWMltJGY5qzLQrjwaAY/OD?= =?us-ascii?Q?DYjybkC1zv/xlzIO77HgmA3M9xhXd3j2taOMUfAxos50L+8mx+cRpObTYUKn?= =?us-ascii?Q?OBBgiTrqPhePSpBtttJoj9G/ScAi2hXQCbKGjUx0wmtwlZloPpTTJtr0QHkj?= =?us-ascii?Q?ULet45Rs25zPwz4askfre2cefpkYKUONkbpJJrEna8JisBXyvVaPNqQ/hOue?= =?us-ascii?Q?0bDzaDapxCeA0RKe4MbKjbMb6fmlWnL3nR8H4es67CnzPDQ76F46GfBhcU3b?= =?us-ascii?Q?c9b22wl2ddVZR88iCW3AkQez0Bz+l/AYqazyakGpTazp/qzNA6lIyq4IvBqf?= =?us-ascii?Q?o0nUOKMsYg8BCBG1ajOeuUSGOSuGCcPGJTzd9sNAY8631xlL8mc+XGXqiLkp?= =?us-ascii?Q?K2wH98TDNFb7ufuYhA9ndJpQYDk32jP2CefKC0t6/ymgBEB+4muTWqI4KeTo?= =?us-ascii?Q?2hB01bGGPKhfZEfFBcBRRPp8qp0kgb4FzMNcnqyIHnoNxEZgyR1x8zlPgt8g?= =?us-ascii?Q?PBH+gqJgRmMDIrHrZ+bk7DtM7ZQVNrn5vcVIP/vg1E6jcBmlsIbtaf78DfYB?= =?us-ascii?Q?ZrPkEljKk63Hs4QnmOROANo3UpzVhZbZ/JmrrcMh9ES/lI1YgujnkNkIS9Vm?= =?us-ascii?Q?EC8mp6QGvitFN4vHqRXkPs0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB11947.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Am4upnPg950Dk6f0e9qVBvxFU2rob0zvcsBFONBGpI8xodpqTJjJk4KpPKOu?= =?us-ascii?Q?fq+RdY6MR28QN9yMXqOGHgwsiAjWXPPIAYoWzhusk1UnBLIs/whl5q5OlS08?= =?us-ascii?Q?mYMghBFowc0hXdm6MotdDEfddi0wcChEZqRr3lSROtQx8FmwEfGf8TqMO9pP?= =?us-ascii?Q?acgSf9dWDAdGMmOBr9+pKYJ7Q/rcnzvwWIs0maDaU2lyXfwqcgMyluwSUGM9?= =?us-ascii?Q?j9VkxV+Nj7QjggHx1ojRITmtfKfebcB+ph4UpsJVhcaTbrvySi0aDOseh6w/?= =?us-ascii?Q?pKPg5XO4p2QqMxWL8w+yQK7pVJK3M/b7y2/NCVhidYzTdqu7xwEbNleCVpoo?= =?us-ascii?Q?TES2b2txozEyvL4lH605adHGllUt2dClpnfXlyzwj2zzsjRDq+etD2fvHaOH?= =?us-ascii?Q?xt2byWP5nCI70DK+3MS0z/v644cdvjhAwVt3hHVgiVisN2J4E64QytdGb/ct?= =?us-ascii?Q?/4fbo26nfvzgsgL6L6FQt0jVCUuGHkZrtO344klYq7pip1dBCi3Y57/GtNL6?= =?us-ascii?Q?VfeLDtfNonPkA9nobQvbDJrkvHOUGh7S4QJTKuSFYmOpn6/SRy/UR0BrsQUV?= =?us-ascii?Q?gLX45Y+smO5vDygHp1WRcvVnmTsF9OLWIaXq0h4mMniLDF/8dtWCMmCuY7D4?= =?us-ascii?Q?VdaoJnrszOX/vKJcmVO1VQY9WrKiHPQzxcU4emdkRAgo2tlag5R4JrtjTzpN?= =?us-ascii?Q?xUYY7Uc8axrwlufy3tHfYOEVX/sb/Zw7fAleAyRkFNjvilw1Bd2CBhLdwEUc?= =?us-ascii?Q?X2fRQ2LFUjQX+IKr+NTc8DwmlRhaCmJRvvvBYouKFomf0ZrSeWK7B7KXCk6W?= =?us-ascii?Q?Ctr8gn2MMQDS5xgnwulJwNWs/skjGPzGRmgB7Pb508svqcIee7NX+06BQl45?= =?us-ascii?Q?2awnSrox5j8HVA1cpO78bDpDodQPm5gH3j5WcRa5K431Seinal3TxXiff/re?= =?us-ascii?Q?R1G5dfcTKMkuO96y5mDkHhxK30yaTZEepzZJcIqAzSnqctaT3MtXuIMSyE9K?= =?us-ascii?Q?SDmTSVpe2Kl8hm/Hw9bQdvuVglXxvDL+TuyDirRhUTe1nXTf0jNDYmO0uFG5?= =?us-ascii?Q?lqHOLmt704+xbGbKPmd8dkMTsAYlNJoiNZyWEW82DuvtPVUQNtNJMcnnQu7j?= =?us-ascii?Q?rljgRiUiDuKPYPmLdYk/u23SMcpOXFVmqKBpLBIi1/1aeofisz3QiqYNXm5O?= =?us-ascii?Q?dy/g2xhN1GxYv+lJNfJoW7yVPWz0xdn1yCJG3Dm86awwEPy5y8U6Nm/95oiS?= =?us-ascii?Q?ukfqiIMVTq9N/C3KJNx31weB1mOf+woaOYRs5mbroqXklgVURisDXFqxQW/u?= =?us-ascii?Q?lgl7UW3naVXTQOSi9YMCgWCcHB+z7mbYVtPWnUAoB0M3dP5UbovqgUqCTrw7?= =?us-ascii?Q?D+bJd+u0TuqAqWnRVIpImTRyuuwzJAqcmCEvuJX1jxJ520HFyrSOvKh9n9I3?= =?us-ascii?Q?4isP1y+c127Y1BftCvmPROJ2frfWAXaM+hBhgk9jMEp3UpBGqq42D65cmT4/?= =?us-ascii?Q?COyGRiExWRh3d35Cyxbehx3fUS/Z5d4XVBDH3t5zFnNzP/pDZTUBpKoeP8Kx?= =?us-ascii?Q?qToYRmfozq+sOeVWeutcThgku4nqyRv6IO8lcKhAEIzbfHODhgXg7mSY/cnx?= =?us-ascii?Q?Dt8Q/1mIWcmwHc6W6jeElZ5PvQ+Ko4vFDC44gLa3/5e/rD+Nu5nUKwvsA5WX?= =?us-ascii?Q?EQAG8AXnQQzNIx4eo+67FkSYhU7qRburg1tIuz229btsuQRd/EehsZSBEMI5?= =?us-ascii?Q?HUn85mykKDK0RTrWH+NIVkE79nDewqjY8oEBRIAxRRtAksaFLeso?= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31b9a1ec-c144-48e8-2380-08de6024dcbf X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB11947.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 17:27:37.2897 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DEPSCt36spBNkmB2CKCvv0nCIwNaDuMM4/5AkQB4dOZuEw1j6cJrIA+3iAipgSwau3ByYDNZYwcThrjn6rnamlH46IpscQZyVdeMI7pmO3BNRmoSXVmiCLaA6QPJLIGA X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10351 Content-Type: text/plain; charset="utf-8" The MIPI DSI ip found in the RZ/G3E SoC select the video input clock based on the DU instance actually connected using the GPO0R register. Add this feature to the driver using `RZ_MIPI_DSI_FEATURE_GPO0R`, update the code accordingly to manage the vclk selection with the introduction of `rzg2l_mipi_dsi_get_input_port()`. Signed-off-by: Tommaso Merciai --- v1->v2: - No changes. .../gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 63 +++++++++++++++++-- .../drm/renesas/rz-du/rzg2l_mipi_dsi_regs.h | 3 + 2 files changed, 60 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c b/drivers/gpu/d= rm/renesas/rz-du/rzg2l_mipi_dsi.c index 8ea8594afee8..35de1a964dc0 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -37,7 +37,9 @@ MODULE_IMPORT_NS("RZV2H_CPG"); =20 #define RZG2L_DCS_BUF_SIZE 128 /* Maximum DCS buffer size in external memo= ry. */ =20 +#define RZ_MIPI_DSI_MAX_INPUT 2 #define RZ_MIPI_DSI_FEATURE_16BPP BIT(0) +#define RZ_MIPI_DSI_FEATURE_GPO0R BIT(1) =20 struct rzg2l_mipi_dsi; =20 @@ -81,13 +83,14 @@ struct rzg2l_mipi_dsi { struct drm_bridge bridge; struct drm_bridge *next_bridge; =20 - struct clk *vclk; + struct clk *vclk[RZ_MIPI_DSI_MAX_INPUT]; struct clk *lpclk; =20 enum mipi_dsi_pixel_format format; unsigned int num_data_lanes; unsigned int lanes; unsigned long mode_flags; + u8 vclk_idx; =20 struct rzv2h_dsi_mode_calc mode_calc; =20 @@ -552,8 +555,8 @@ static int rzg2l_dphy_conf_clks(struct rzg2l_mipi_dsi *= dsi, unsigned long mode_f unsigned long vclk_rate; unsigned int bpp; =20 - clk_set_rate(dsi->vclk, mode_freq * KILO); - vclk_rate =3D clk_get_rate(dsi->vclk); + clk_set_rate(dsi->vclk[dsi->vclk_idx], mode_freq * KILO); + vclk_rate =3D clk_get_rate(dsi->vclk[dsi->vclk_idx]); if (vclk_rate !=3D mode_freq * KILO) dev_dbg(dsi->dev, "Requested vclk rate %lu, actual %lu mismatch\n", mode_freq * KILO, vclk_rate); @@ -764,6 +767,11 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_ds= i *dsi, if (ret < 0) goto err_phy; =20 + if (dsi->info->features & RZ_MIPI_DSI_FEATURE_GPO0R) + rzg2l_mipi_dsi_link_write(dsi, GPO0R, dsi->vclk_idx); + + dev_dbg(dsi->dev, "selected du%d input channel\n", dsi->vclk_idx); + /* Enable Data lanes and Clock lanes */ txsetr =3D TXSETR_DLEN | TXSETR_NUMLANEUSE(dsi->lanes - 1) | TXSETR_CLEN; rzg2l_mipi_dsi_link_write(dsi, TXSETR, txsetr); @@ -1006,6 +1014,37 @@ static int rzg2l_mipi_dsi_stop_video(struct rzg2l_mi= pi_dsi *dsi) return ret; } =20 +static int rzg2l_mipi_dsi_get_input_port(struct rzg2l_mipi_dsi *dsi) +{ + struct device_node *np =3D dsi->dev->of_node; + struct device_node *remote_ep, *ep_node; + struct of_endpoint ep; + bool ep_enabled; + int in_port; + + /* DSI can have only one port enabled */ + for_each_endpoint_of_node(np, ep_node) { + of_graph_parse_endpoint(ep_node, &ep); + if (ep.port >=3D RZ_MIPI_DSI_MAX_INPUT) + break; + + remote_ep =3D of_graph_get_remote_endpoint(ep_node); + ep_enabled =3D of_device_is_available(remote_ep); + of_node_put(remote_ep); + + if (ep_enabled) { + in_port =3D ep.port; + break; + } + } + + if (!ep_enabled) + return -EINVAL; + + dev_dbg(dsi->dev, "input port@%d\n", in_port); + return in_port; +} + /* -----------------------------------------------------------------------= ------ * Bridge */ @@ -1408,9 +1447,21 @@ static int rzg2l_mipi_dsi_probe(struct platform_devi= ce *pdev) if (IS_ERR(dsi->mmio)) return PTR_ERR(dsi->mmio); =20 - dsi->vclk =3D devm_clk_get(dsi->dev, "vclk"); - if (IS_ERR(dsi->vclk)) - return PTR_ERR(dsi->vclk); + dsi->vclk[0] =3D devm_clk_get(dsi->dev, "vclk"); + if (IS_ERR(dsi->vclk[0])) + return PTR_ERR(dsi->vclk[0]); + + if (dsi->info->features & RZ_MIPI_DSI_FEATURE_GPO0R) { + dsi->vclk[1] =3D devm_clk_get(dsi->dev, "vclk2"); + if (IS_ERR(dsi->vclk[1])) + return PTR_ERR(dsi->vclk[1]); + + ret =3D rzg2l_mipi_dsi_get_input_port(dsi); + if (ret < 0) + return dev_err_probe(dsi->dev, -EINVAL, + "No available input port\n"); + dsi->vclk_idx =3D ret; + } =20 dsi->lpclk =3D devm_clk_get(dsi->dev, "lpclk"); if (IS_ERR(dsi->lpclk)) diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi_regs.h b/drivers/= gpu/drm/renesas/rz-du/rzg2l_mipi_dsi_regs.h index 2bef20566648..cee2e0bc5dc5 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi_regs.h +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi_regs.h @@ -83,6 +83,9 @@ #define LINKSR_SQCHRUN1 BIT(4) #define LINKSR_SQCHRUN0 BIT(0) =20 +/* RZ/G3E General Purpose Output 0 Register */ +#define GPO0R 0xc0 + /* Tx Set Register */ #define TXSETR 0x100 #define TXSETR_NUMLANECAP (0x3 << 16) --=20 2.43.0