From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5AF861A2C11; Fri, 30 May 2025 16:59:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624356; cv=none; b=pWZqv69t+Kx6LPDVo40EENC0Wjrp9YZZzlQr1u2vh9pK5OyjJ3Avb+cUBv4iGcuAsHVQM6GzyJfJx5omfAKei9qc0Iz3aK8zh7P9DGqFY+wlEeL5+VtluBgWSV1bQ2A67+YSI2TCWbi0Z2nlt6Z7o65cupyPK8QJvEJ+6oNpVYg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624356; c=relaxed/simple; bh=CnpRuwwswLW4EAcPehBSKv14ET+100EHS4+yiJYXWgw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lM6zvasxLHZAo8VqhQ9OA/eCXMTW/ZqY4b6cG4wqVc6mYaPrypBTRuiSc5IpJlo6IqfFMPxlIdcSUM6tEgjFbg4H6KBNZl5FP68FiGMWtFs8YZYARuRkQTpLsdPys9MmnceseuDvcrvUnWITnDGT7suSvEp2EQbM9N1t3JQgRys= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Rf1kf18q; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Rf1kf18q" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-450cfb6a794so12948725e9.1; Fri, 30 May 2025 09:59:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624352; x=1749229152; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J29EcBVuIttsOHLv7IujYOeDwvkRN/jk5j1fyQfRryc=; b=Rf1kf18qvkS1Fl9LuUKVe4kOd7yybKiqkGUXJf0whQnybfvoxXFeE6F7tGHSnpwO4O 1QeuUyqNpq26KbeyZ9pS/Ix6KzRdId0a7AlOCYwZYn5RLIyARmvjfWZjp699+8I8WCnp QFBg4/3iAq52Pwuqn8FdGPi9PC0NbGsrSbWAlxKAsvsINSZc9ARAPMXDn1Xy29xt1/Y5 1grgBAtEtdKb3heWGPecVCsSZ93jqD3fsbgaWByKI547DSVaZBeYEiPzz+gnQvNO6jN2 FxUx0iK+uD3EDzJqZ6S7RROam4ygQucbAHNfN2fwoJ3AjaLOsd8JT00FgYWrCN8bM/sS c8og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624352; x=1749229152; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J29EcBVuIttsOHLv7IujYOeDwvkRN/jk5j1fyQfRryc=; b=tyZhfHOqIn80zdJohwiG+z1ScMCnECFL325ntUe4yukxt/AzSyNHWFlC+q+IIYvNT1 Tm86Mic/Z9CSYnqzXJ/ZIzdAo4MnI2uKKTsFW4VCk5BstivSrtH/am2O+GZaBhF6nSSm y4OYNWOgEI0xPZQK5yrFV2qLvRXmciIBAQwQe/PTPjshkFVKu4Ea24JRdQNUPkXHo7Ol rZMttOG0dXvQ3KkWqrZBthJeuv6YZy3PMy6N71xGB5VyKsYX4fwets0OB7jei7QvlZ84 lOFFTUzmJi2kk/7RoOVGpQlXJvJR4kT/W2qWjgUvIYJCIedUIM4qUqMk8pEC6zAq2EdH 68gw== X-Forwarded-Encrypted: i=1; AJvYcCUxMnM/4aRJ5JUnHsFbGDljZkiQ0YsbusVaINcMKIQjJBJPF3ONoPQgARgG7qZCHFZdy6QdOZ5FM8Bhu1Rwgg6Ieaw=@vger.kernel.org, AJvYcCV0twGkWF2I2fZ4UEbz/HgRXZHUS+ajwoEdv/gSMJrPL8gIaFGv+KemBrXYVLjYXm0i+g7dagieL51s@vger.kernel.org, AJvYcCX5EXC7KoWFI9FjL3XfizGWNQ2Hg5pC1Lo1CsA7Zxkc+zzD4FfhYZggXZDDZvS2VELzOGc2T0SLHuVIYitg@vger.kernel.org X-Gm-Message-State: AOJu0YwWZ+BAAIbVGM6QIpxxn/OMAlGffYZztKSwoudaxc7ZUZpzYtiN 7Cg6uIooocnhy+0fAiMFjAnzAQ3b+m8iSjuuYGHWTTgamtbOCFRntZ2o X-Gm-Gg: ASbGncvQAJhry9sXbT6cf07kxKDP8Cel69If0uBkKuoSKoAQC8vItS1mTrjqMkJrF6J OT5YUIsMtQ1SjITHvKcnMGrtiM5r+M+QwRpEihMBOic+v+ZpxkeNytwVyhHt2x8De1y/n9G9/AM 2BXfYqmS9hhKYmOnJvbWRicN0PvqfbbFfkjjINLZ8zMWWSvmXjc2B93Lf1cupTsJj2dkrQGGYrP 1Ym7ze56DqSIZtWYfvkApA93DFRcSuliTjdG0KCCGLZYv/XhNKFMXNgmOM7qwUTT8RX1agoLquf WkX0e9gphhCPUlOEDJcfO/gE+nVtnXv9Qv/lINrz7FIRK3WFE50Wl+K3RPaAL3UhaW5dA4A+2wX QDiB1EJwGwtNyR4NWw2G0 X-Google-Smtp-Source: AGHT+IEgb3nbN0iVIeen/LbG4sknJalruo4HyGCevDz1eygcOvfBWGBMSq4X1ts+nPwvfRFkUIK59Q== X-Received: by 2002:a05:600c:3b9c:b0:450:cd25:e69c with SMTP id 5b1f17b1804b1-450d6550c5dmr33841175e9.21.1748624352173; Fri, 30 May 2025 09:59:12 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:11 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar , Krzysztof Kozlowski Subject: [PATCH v6 01/12] dt-bindings: display: renesas,rzg2l-du: Add support for RZ/V2H(P) SoC Date: Fri, 30 May 2025 17:58:55 +0100 Message-ID: <20250530165906.411144-2-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar The DU block on the RZ/V2H(P) SoC is identical to the one found on the RZ/G2L SoC. However, it only supports the DSI interface, whereas the RZ/G2L supports both DSI and DPI interfaces. Due to this difference, a SoC-specific compatible string 'renesas,r9a09g057-du' is added for the RZ/V2H(P) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Krzysztof Kozlowski Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Added reviewed tag from Laurent v4->v5: - Added reviewed tag from Biju v3->v4: - No changes v2->v3: - Collected reviewed tag from Krzysztof v1->v2: - Kept the sort order for schema validation - Added `port@1: false` for RZ/V2H(P) SoC --- .../bindings/display/renesas,rzg2l-du.yaml | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yam= l b/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml index 95e3d5e74b87..1e32d14b6edb 100644 --- a/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml +++ b/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml @@ -20,6 +20,7 @@ properties: - enum: - renesas,r9a07g043u-du # RZ/G2UL - renesas,r9a07g044-du # RZ/G2{L,LC} + - renesas,r9a09g057-du # RZ/V2H(P) - items: - enum: - renesas,r9a07g054-du # RZ/V2L @@ -101,7 +102,12 @@ allOf: =20 required: - port@0 - else: + - if: + properties: + compatible: + contains: + const: renesas,r9a07g044-du + then: properties: ports: properties: @@ -113,6 +119,21 @@ allOf: required: - port@0 - port@1 + - if: + properties: + compatible: + contains: + const: renesas,r9a09g057-du + then: + properties: + ports: + properties: + port@0: + description: DSI + port@1: false + + required: + - port@0 =20 examples: # RZ/G2L DU --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4125A23535F; Fri, 30 May 2025 16:59:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624357; cv=none; b=uU2KRT0cq3k1IrONZRVQrlxY+PKMIW1FKANP5w3i2l5JfTB5L/ohqrK8Vbf7aJZD5DC5zU98vFpLScapuZkd8r3nImquQaOVHp+GSUtnwBVcVu63AfkiBkg+aw5Oz3Ys5GBzgMaZXQQBoezgcbNBmyB6AdbSnJAdAhz5nKvxuI4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624357; c=relaxed/simple; bh=0q0XCyXywJW/BuudmmZKAbEQxMqCT1HCcBS7mwBlZhw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XtbZGWQBrr/6QXKO1hpbfGbBSaU0Q9ka1J5xnDP6JJXywfVEKaUE9ZUirPyiNeadLB2cfjoY1lyqzjetaMssl1+xlyzZqZgNhIOvT61Al5GNDFzyJy7fBEa8LgscoIKoyKsA4wcfeNUx3bXhmY+k7g4Bz5F9UOCW3rIKtcXw7fc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=j83mPTAk; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="j83mPTAk" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-450caff6336so13131945e9.3; Fri, 30 May 2025 09:59:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624353; x=1749229153; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FoEHKnPQTr5zR3ciIiMZWPKrWLoE2LlKJRQLW44Bmv8=; b=j83mPTAkOqi15LMC2qfN37z3g1TPgg6Ox2Nr40pUG75Ki2gluHp6oX8cgRUOWZfdmX PPzQeyd/FIKOYZbjQAwoWtEeVvyTeMG/YRczpb8g+Co33RoEP/p74ZnQh3sbpDrdwQ6/ DUm4sezrQahSbMsSBaEs109exSfc6LijzPbb6Eg6arwSjkK9jelxHfThbTjQHdZSJeLD JC112Gc7RqwBMP0MiuytOsH/UE6oKq5PE8Ulp5YBX//W9j1Sgo3DpaVUbn8S+9pkr9nO /t7ElgzGBWogXQiMKrtLvzQljfV7uHiTqe0PppLD9mDShfyQCa2as40pLdyASQ/0V6GM rNAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624353; x=1749229153; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FoEHKnPQTr5zR3ciIiMZWPKrWLoE2LlKJRQLW44Bmv8=; b=qWfIiBI7ymcY/kZ73Wyhcz/telb0Juv/nYNzNqJcDxcy4FHLC5mzavGM1axXkvH0S4 EQTed7xfb7Q5gVVNXtJIQzo2YfISijD2GUlPSklX6cQ07FvV9DU2ihW1I2ZhwIlGPGl/ 3Ji27Ym+pRHfUOpKtZzBNXKcxeQiQlGfgGmzQOdO9a9NWzKVvm/XwQzlUrL54HVJ+hbt PMDHfb1kW0K9Aaq5RYEgiWLtq/p8npiZ7CfIgHQy5vYlVCkKmvR4lUNnWbevEYuhau+R jjx9T5eklIoo6WTZvn9b2O3Uls3Dj2B6/tm01U68POhEh2lBeYYeYAF2I/BTECjpOTe2 npgA== X-Forwarded-Encrypted: i=1; AJvYcCU9tHWk8mFVskmIckYVM1RXJqFkoFQSPnxZierxRUqs6DuhkSc2SmlrHXBarzdfXrSKmDhhkRPyDhHUAQ1iVG/6TVU=@vger.kernel.org, AJvYcCVB/ZjuCJxvRIHymFLIB+2lKBZ15Ocr6f/IlfuIXAZUXwTKp2z7FQKO4+V4J5arTAaDVEN4yxVlzBSx@vger.kernel.org, AJvYcCW4t35Re2nuoe7pha5vY9L5GOvHsovIR7Snws3C/aCnfvWwHAeTzBzRX13Oh5l1GnIgN+IjDGvufl9K+a3M@vger.kernel.org X-Gm-Message-State: AOJu0Yw0QcmJxPGOs4D6/t+kaHXTYFtQVsK8zO4aJlY0jHjIQvrvScV5 /zRCkzRExBK8n+M1HiXA3LqxqHDZ8DTHVVmqhVfKO4IKp2Vg51CkEp1x X-Gm-Gg: ASbGncuSIlyjn/uLd2UOhUnhiompSCaG6e+IH1FNYYz6YUnckbp5KBv/999EeJ7uT1R 0Z3oAX4xEgN7mC4SQYboba3r/kTmTLQTlrRLjm6bz2yKIlV9jWbbYe7TEnvBLYK0L9d6OOMVkTV L9eUfCVisJkjt3iMj6BduA4+Q4rcFEqaZVIOKDqjWKPoISz4p2kV/BjWunyfS8yV717rRYYQigA R7fJtra68xm1LSDL1rIrDN97R7XY4ksUHFxwatfxCBMGx1UO9pQLxnrvYZnQDnIHXcC5taGXI2o rbvU9nMooilLS4ZjtPrn1BG3iNl4Z9dgbnmyC34rrLoaeDRMVwtQpUw2xpT8kJc7SFXI9IgKFd1 isO3xz6+3pg== X-Google-Smtp-Source: AGHT+IGU2TmBQ9qYoBu+7qGqXAJP1YRkLBoB2GytIxCWe+V6JfpaNbAs9IJwJp2wzD66imLtn9z/sQ== X-Received: by 2002:a05:600c:620a:b0:43c:f513:9591 with SMTP id 5b1f17b1804b1-450d88493a1mr29456355e9.14.1748624353393; Fri, 30 May 2025 09:59:13 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:12 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 02/12] drm: renesas: rz-du: Add support for RZ/V2H(P) SoC Date: Fri, 30 May 2025 17:58:56 +0100 Message-ID: <20250530165906.411144-3-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar The LCD controller (LCDC) on the RZ/V2H(P) SoC is composed of Frame Compression Processor (FCPVD), Video Signal Processor (VSPD), and Display Unit (DU). There is one LCDC unit available on the RZ/V2H(P) SoC which is connected to the DSI. Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Added reviewed tag from Laurent v4->v5: - Added reviewed tag from Biju v3->v4: - No changes v2->v3: - No changes v1->v2: - No changes --- drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c b/drivers/gpu/drm= /renesas/rz-du/rzg2l_du_drv.c index 5e40f0c1e7b0..e1aa6a719529 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c @@ -50,9 +50,20 @@ static const struct rzg2l_du_device_info rzg2l_du_r9a07g= 044_info =3D { } }; =20 +static const struct rzg2l_du_device_info rzg2l_du_r9a09g057_info =3D { + .channels_mask =3D BIT(0), + .routes =3D { + [RZG2L_DU_OUTPUT_DSI0] =3D { + .possible_outputs =3D BIT(0), + .port =3D 0, + }, + }, +}; + static const struct of_device_id rzg2l_du_of_table[] =3D { { .compatible =3D "renesas,r9a07g043u-du", .data =3D &rzg2l_du_r9a07g043u= _info }, { .compatible =3D "renesas,r9a07g044-du", .data =3D &rzg2l_du_r9a07g044_i= nfo }, + { .compatible =3D "renesas,r9a09g057-du", .data =3D &rzg2l_du_r9a09g057_i= nfo }, { /* sentinel */ } }; =20 --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7723723645F; Fri, 30 May 2025 16:59:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624359; cv=none; b=YvzHC3X/d602nYUIFnsWhoecesJTbZBlVsl15A1qcl5OBh7E4+9JudlTBvyHPTbYlRaf8U9KyEm3aeTmEyhokYmWWYGlCwoX67TD7P+16p2QDokMDksXMAH60H4/d4Tu+QYqHsgjqLm/km4bYZjGKbdEysFuhk4w065I3l9SfGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624359; c=relaxed/simple; bh=Krzz3zsdevxix2diODTZqd5SPoP9yFJa4nvP/+4ruHQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LA7uCL1ncx8oCSoDSkOzPc0dPgZLHoUjCUEi0sXktSsgXINvFiAqMFVQT0Ymz2WY9NuU6+5UIfVEYXFFT0tJViMg/HK57fxrKWvJ7EYRcH4H8HS/oojprT1bRnRId/xrrQgmzq5hcnW8UZgZh1byYyeTOe7Z3MBKnoJVQT858HY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UeukLbUu; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UeukLbUu" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-43cf257158fso17047685e9.2; Fri, 30 May 2025 09:59:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624355; x=1749229155; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=v1FsGuKo8A34tONAxrY715sZ5lprEztwlbt/0ZyKX0A=; b=UeukLbUuAV193zz5LNZgvYijcu8w9B9UY26WDbGldP6wEsfkucX0xmn67VKbe3dx1E TbDNokmca9f0u6y1kOradU+93DF+z+ecCfwIDuGjBkTSLNPCuLm1N/E4rEA70nGxlhOS 7PttTQBs4Y+v6CAwjkpx3e0GeF09cdaMZDMNnherFyzVjgVA/6RP0wMNqIynCT2rRYkm rUSlEtjU2soBoiKfNCXrxCaaaGqMJRNJiojAR89zo5dQx6BDZP6SIIdVoTKBIpKTFFIS hIZsC/PHPxRPGoUoHo7uzXKpssePfDmJ2MQ5lnNC5b+BviJGUeQQOuXz/LDh12Yg8Iwy iDdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624355; x=1749229155; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=v1FsGuKo8A34tONAxrY715sZ5lprEztwlbt/0ZyKX0A=; b=Zi7zRAIwPq9r/e/jWGoNuEIjU11Y9YdWlTFX41c4TTTShy4+8sVF0o2QV9lPJvmbOg 9+jGaDF72TakPxqsdzN46SNORUWsQSPBnTxKfwU02DYWvMLeYiRgM/bKqObVqS3zFd2D rWBTeMsrRAgYd9djPHcP75G+bU3N8iOq5guQ7QEVVIcchbvUsdbLCv57Blnl3t63Cig8 9oSLzOcCD21QX2MR+RC+DxmdExM7rBdTbql8CP/f08nuMFrf4qWkOcTXTczwUVBXB7OX /yH2sqzJ53jujWisoaUUGdPFoJZDcfJ7WbqQYj4PY60SvXgT7IxSZHIy/WPLbpJ7U/S6 y4Mg== X-Forwarded-Encrypted: i=1; AJvYcCUIbGOMF9YKIcVxngZnLaeio7jVibIP1foGTSJGEVLdEmB8I6HoSY87h+ZZ4Yp/FflczUUJfEP67FE2@vger.kernel.org, AJvYcCVRktiONmmLlFSbxk4v31Kwg8MC0buVciJjr434L2mq42fmAHV5THFcwwfQ18DPvq+XiumbRaQHZmXZ3BsDHDGb6xE=@vger.kernel.org, AJvYcCX8WuqFyGApik3ye0q+3zsNNeXkZHWYZ1PjXWnpprEnOXRnK2gYREizhYy7HCrSA+aov/eUiOIdinoDaC+3@vger.kernel.org X-Gm-Message-State: AOJu0Yx59qOl4bmB5aqhORHmpQVftTrZ3KT8MtYrhLZst1gDbCJBeVci enz9wo2btu7spyTPOCYBgL5AawR/MOBOlaptoLDCetFyTCcgf/BAv29U X-Gm-Gg: ASbGncvai4+ajcnFIOD2ba9mBBjFbJ2ou8y0V9Jrju3iZ9FbQkimGNt5Ao5rdZuyAxN cZumkZevA+2514A0gGLBkN+/P92uFlcvTNKcvIsmfmcrP7F/NUdrI0rkJDyGv2vxpWQY1PLzKYE 7bk55Br17uJniXI6Hc57GxJQji9kK4DCNX6uSWNdWlEpyvMfL9RelVF7UKvxSWaOS9GJNN0i3i3 w1aHvi0L2OBGvuNYfNqQUQhWzBdSwzZxvOMYPmdD1tfMrpsNwQAu8wfPCRVlWhBzOqSkxbZenah H1w6sBIX38LO53+Et91ZfHzzxdEL6fs5BRDcuK60dtemf/ViO4rFKuJTyqeRtBxSohzF96StOtE NwshOAAJEjg== X-Google-Smtp-Source: AGHT+IEpj0CipGG3bDQgM3jXnJkIIdRrH6Y84XyBvr7Pg8ex1kKxt7Ij8cYeA/TKswgMUHF0SrV5sw== X-Received: by 2002:a05:600c:4fce:b0:450:d4a6:79ad with SMTP id 5b1f17b1804b1-450d887a68bmr27452775e9.23.1748624354623; Fri, 30 May 2025 09:59:14 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:13 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 03/12] drm: renesas: rz-du: mipi_dsi: Add min check for VCLK range Date: Fri, 30 May 2025 17:58:57 +0100 Message-ID: <20250530165906.411144-4-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar The VCLK range for Renesas RZ/G2L SoC is 5.803 MHz to 148.5 MHz. Add a minimum clock check in the mode_valid callback to ensure that the clock value does not fall below the valid range. Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Updated commit message - Added reviewed tag from Laurent v4->v5: - No changes v3->v4: - No changes v2->v3: - No changes v1->v2: - Added reviewed tag from Biju=20 --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 3 +++ 1 file changed, 3 insertions(+) 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 dc6ab012cdb6..6aca10920c8e 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -585,6 +585,9 @@ rzg2l_mipi_dsi_bridge_mode_valid(struct drm_bridge *bri= dge, if (mode->clock > 148500) return MODE_CLOCK_HIGH; =20 + if (mode->clock < 5803) + return MODE_CLOCK_LOW; + return MODE_OK; } =20 --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D33721A2C11; Fri, 30 May 2025 16:59:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624361; cv=none; b=J+8Zt7+ZUXzXr/TpHl3gy10qCF27G23QwUZuJfwUCS0ntcA3vJSk5SCDjK3yo8b7Os4xCHzjlGpzPrQ28JyyV6dbqHi2fhreFLKxN0Jma6NK+PWzfCTjw42XqW7r9dtaeHAYecy460+GzpR4oDq2D+JMXs92Yr+drrvmzjnJb1Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624361; c=relaxed/simple; bh=wuel0XQ0yfdkIvfG5ACFiCAoXe9eIR2eNDN0+edPnAQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uN5g3E3SgTqnTnn5xZnwsBPa2ZfO+vG/Nod3MPZGgY6V/DeBZ2jAn0PexCtRDQsoLK6oUxoBTtn+VJ8LUFrIij1Z4rvnoa6gwjRbvlrqXCxdL1hDPTYKFJdk+arYxUT5i8U5+zNcO7b9S68a9kqkv5+VcdwCk2CrFmozPy9x330= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=AnH+Sfj0; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AnH+Sfj0" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-3a376ba6f08so1365727f8f.1; Fri, 30 May 2025 09:59:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624356; x=1749229156; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ep33XalneBbgJw013YVa3zWaUedAxlfWPYCFu9hRrHA=; b=AnH+Sfj0Uwk60o0J0yltpcRV+CGpCjYNM2kVPMf34wu2opuaxkzo7X1pBUBw97ybmU DqYEnTn/WowpBt1HqrM5cDOsYr1tkvpKRDjfE63RZUdIfCR31/neut9B7RqApPouzK+G fo1CP+QUxD6nePPRdkeLUMk8WjSAISlCOh1zdHf0I3Q+xInkUCQTH31TeKkSY4axRcLg 52j3N6ViD7MpOPpraVyXirtWIZ8kFmTNja3IWuNHWcE77/F5Hg2bsIMsEEJvT+KZjBKl pdpuyPtRNsRKiyn60jCOR5L5d2fgMNzr8SLoDTLCSs4j1IFFKeYKvyCiMfuiit6tQ+UX qoFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624356; x=1749229156; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ep33XalneBbgJw013YVa3zWaUedAxlfWPYCFu9hRrHA=; b=B2hJqp9ciYCT/+BcJ+86SXA33u7xa6pY5W3A3NujLq3D+3OFp9v9FGn/ocmqFdgfiH Vob9Y19RcBF1ThIdXZMmuUk1WvG0tPThitGmQ5kUu197bzr5KCmhlLkAmwZ9s2u9MB3X zipQbdOp0bs4oxhcmH7UeC1o07HCGoLGmegFN1FiYOxI0KrsEuML30wx7u8m8uT7LnTr BUpi6k+OlZvM+7Yq2HPYqsWw7Ye9LR+W3QalJku2xd0Jxc8fXk3tH9TWFKL47k4jb4p4 RUhp1sPAOLKsNbkr7hB8ZSmXUPyx7U08Uza+9a44K1rCWxM65UcLV454IVKj8VyIM7RH cyNQ== X-Forwarded-Encrypted: i=1; AJvYcCUH42i++6KzyXTmeaGjZMxwYfQ5r1lzIQHN1KB1PJRU0KXRW6KgSmXHKd61VK7A47/0FdXUKqvum0W5BBb9@vger.kernel.org, AJvYcCX+8aRaFHn8rS2N09lNYIxms0y5UjlaGGJDvk6euArADpOHfUAOhJyLyVJYI2NHFM/tFO8/w+jd0ojE3keDgtH4d58=@vger.kernel.org, AJvYcCXwaAF9Q2TZQp6rFrbk1KeG9czs301pFkpjpHTCPZDa3SXA0GdbMeVHSucLaP6W3xPbfiB8as+fqDhe@vger.kernel.org X-Gm-Message-State: AOJu0YyGDf7znkk2bdXeDEAbhCnl50QvcE59N3PSbJNXaW1z3Zu71gK4 QtKY4uXJJgY6mEFBJmr3ykJ84VqRXw0t+smkbJMiV71EnXlEegySI/RC X-Gm-Gg: ASbGncsxfPWO+fK1v6V8Kio1U8QB4LtB6s6FXHEx5YLVBMmmNKzVkge4NXMkMKAHYK0 4ZmgF1eSWdxtehZD158DEfeXD3Lo/irGKPcIwwzAQxx+t8iwgGYERD9AUCGsEy+sTsL0+3rzB9q rOvOC8tZVG7Uo1gsSOaV2DHtE34y1TeYZ13X7QVzxid/tiYG15DSm4KO/VMYwlEuVrH9aU5RT+e J7mQ+u5Wr9KTTlaNENrnrngKM1v8pGcxwn2YiS2yt5M9hAXeOk0DLEzLimexMQFEKClcevT4Lj3 OGGvbbCch3irP6BBGaWGv9fIvccOAkbZtBtiwya/9AhY8hKNZsDIFvO5FvutTBAbsuvu+DWO145 YBX18opvRhQ== X-Google-Smtp-Source: AGHT+IHYiH3AqyGyheocdIkswg46QDLFkDwqyzaJhubDoD5U6wTGpioEJ3rCPpOKyjYwDrObzAjy7g== X-Received: by 2002:a05:6000:18aa:b0:3a4:d0ed:257b with SMTP id ffacd0b85a97d-3a4f7a4b434mr3253740f8f.22.1748624355998; Fri, 30 May 2025 09:59:15 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:15 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 04/12] drm: renesas: rz-du: mipi_dsi: Simplify HSFREQ calculation Date: Fri, 30 May 2025 17:58:58 +0100 Message-ID: <20250530165906.411144-5-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Simplify the high-speed clock frequency (HSFREQ) calculation by removing the redundant multiplication and division by 8. The updated equation: hsfreq =3D mode->clock * bpp / dsi->lanes; produces the same result while improving readability and clarity. Additionally, update the comment to clarify the relationship between HS clock bit frequency, HS byte clock frequency, and HSFREQ. Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Updated commit message - Dropped parentheses around the calculation - Added reviewed tag from Laurent v4->v5: - No changes v3->v4: - No changes v2->v3: - No changes v1->v2: - Added Reviewed-by tag from Biju --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 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 6aca10920c8e..e8ca6a521e0f 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -277,10 +277,10 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_d= si *dsi, * hsclk: DSI HS Byte clock frequency (Hz) * lanes: number of data lanes * - * hsclk(bit) =3D hsclk(byte) * 8 + * hsclk(bit) =3D hsclk(byte) * 8 =3D hsfreq */ bpp =3D mipi_dsi_pixel_format_to_bpp(dsi->format); - hsfreq =3D (mode->clock * bpp * 8) / (8 * dsi->lanes); + hsfreq =3D mode->clock * bpp / dsi->lanes; =20 ret =3D pm_runtime_resume_and_get(dsi->dev); if (ret < 0) --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ECD1A2367D8; Fri, 30 May 2025 16:59:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624360; cv=none; b=n/qjFnk1Qh0qtuVSiKLp7Q4c86dcsQiOBpVuHWGZWTmX6B40XWoT9wT4kYRWvGBYhPvSCviDV7zQz9uP/grOCBVCnhOHXmsSh/e6VQSwtLoAK3bSqUUiSC3an7Pf2slNKO6L4cX3h2603bjcH6w/LR1jieIyWpw3fp/s4WRhesc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624360; c=relaxed/simple; bh=1jtjQ7iYiOUOp7LmmA+L3kyMEoRhbDxsdbk1yF5hehE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lkgEkG7Xa1AQO6tjKpRamIHL0gU2TpruTDhDtPFUG4+Ig2R8rkXSfcmf0gp81Vwl1NhHoWLRUJYMkz7j/FVDXLmX/MyMQBCrRut3SGNIIP0BDojsEBRXBwo4YNoXq8j1MmxUaw63c+m/00Hyp+lYpIl57gOD1bEoGKOBe5NG/1Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hSXbmjDG; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hSXbmjDG" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-450cfb790f7so15267635e9.0; Fri, 30 May 2025 09:59:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624357; x=1749229157; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iwm+lfQI7cVDtJ44uJtZS6/fgaIDndlxj8AfL9sEe6A=; b=hSXbmjDG4EGXrZdO5ztzR22cakC7l6EUgg4Q7+iIEBJUHv3041Scy0DfeUfVSNRB6J r7e506/C54elrikOM+0dmVTRqNMolgPWI++UwL3q7PBlhx+Ggw5bxjJ4z+BCTG+O/Wii KB5oS4a40znx4J5y/yiRcdVOiWko4SZwbyErfhhLyUEGkprXZZG2J0/sZYNwfkLS2L4K +LWgHYjEnNJEqX9hKDvnwJBm8sVU0ryAnh5VPuIcGQuiCnvwHdfMtJOjc3hpSi8JShkn ON1W+12aelFQG+e0NHKemCmqW9dt3jgJ9acZuM/xbRUWKATvYhKDYZdmXt0RGUcic76H GPqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624357; x=1749229157; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iwm+lfQI7cVDtJ44uJtZS6/fgaIDndlxj8AfL9sEe6A=; b=Jym0xuosxek2Vhz3gjcogNMbEXtFk6EuAmjg2E5YD5cxsW/SCReNkP52+mAPQn5+g/ SJNl4AxUAxwbkJyWCzv8yzDVu8wTmcLvZ7w2tyf2iFGLKFYiHGH1mO8m2VRPs9H1DS1D 3FtBkAaQJJVx6fIYY03Z6vWJkMV5RczAHi9u4Twd15sy4YpxZGusPC01zKCDqWsyhbCm 7P1op6UsW6i/H+XiJTEWXnfqS0jvhw84CO9EdY/fqyJu7/F5PldymX/FIRxyL3kwHuRm QPZ2HSfFzsGYUFn4+5hJVj49QTfAHGQv976SVTxg1UMfSXx8R19A7soosAQJyfDAsCy5 9l8g== X-Forwarded-Encrypted: i=1; AJvYcCU0QZeYgrfZ5VJz9fwC9eI9kYxLVVILd0IH3ziDTk+TZOpRETYv0aAGSWNWe02IwbKmpOelzzddMfZD/ma4@vger.kernel.org, AJvYcCVw6KyMia6ymKjJbhc59YpG+haPZ1PeWkUjFJ6knMLstTACn7P1E5cqk/iZakzlUpHZ0MqtgJ7tdncV@vger.kernel.org, AJvYcCWPDTo8gDHbN9toyza324H4QCRC2rnpljrolVS4ACTysZumN3rNDJ4N9HamvUcuxRc+vyYd+KKNarbl1sQpwdwjvDY=@vger.kernel.org X-Gm-Message-State: AOJu0YxiOW9n0BskflfUhHBr9Yyh9cEDeaNNRpAiwEPs213IvhvzTgmb RUFq/l9640w9QMNfc0f3LwggxXOlAE+BVquV3YknS0/66r3yuZrL3Urm X-Gm-Gg: ASbGncuFejdi3RN52HqUNLB0kidO7EebaAJYPCOBfsfxrFn/5HYpazhxBU8YZ5S0L0N jVIfPpe/WNrxQevvMWbcX51jX8h8dB93mbtUSSy/aNPaN1yxgW+j9awFQeawqMY119zzf2JPvjZ OSrQqsA481nGeC5TWkOuUjMoc/zqv3svsgGC0D1ZzK5GSGykZ3Iof+vcO4XOmuG0pBCYiJaY0eM WGn7gg8E1S/a2RgaPMS9sxkla+lOu7x4LkK58peJAyGlUUvn9oWeXHzD6nfMD2FurCgCGxO1qnC vlOkFxpqqk9UKWRtOUPTBQZHYET29zxzfizvceiCs7pG+BGybFR3UxDVkLYRbzEt07jlRGk1AQ4 8e1oGFrwNAnhyaMHiB4+G X-Google-Smtp-Source: AGHT+IEdIEgAqrbkIJxQCz2DEM4T3ty1f2mxXU0wWPh+PY2imNXgL8HNz/5QSBYt0mJ9+rfP35fFyw== X-Received: by 2002:a05:600c:871b:b0:43c:efed:733e with SMTP id 5b1f17b1804b1-450d65306dfmr39408715e9.14.1748624357188; Fri, 30 May 2025 09:59:17 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:16 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 05/12] drm: renesas: rz-du: mipi_dsi: Use VCLK for HSFREQ calculation Date: Fri, 30 May 2025 17:58:59 +0100 Message-ID: <20250530165906.411144-6-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Update the RZ/G2L MIPI DSI driver to calculate HSFREQ using the actual VCLK rate instead of the mode clock. The relationship between HSCLK and VCLK is: vclk * bpp <=3D hsclk * 8 * lanes Retrieve the VCLK rate using `clk_get_rate(dsi->vclk)`, ensuring that HSFREQ accurately reflects the clock rate set in hardware, leading to better precision in data transmission. Additionally, use `DIV_ROUND_CLOSEST_ULL` for a more precise division when computing `hsfreq`. Also, update unit conversions to use correct scaling factors for better clarity and correctness. Since `clk_get_rate()` returns the clock rate in Hz, update the HSFREQ threshold comparisons to use Hz instead of kHz to ensure correct behavior. Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Dropped parentheses around the calculation of `hsfreq_max`. - Changed dev_info() to dev_dbg v4->v5: - Added dev_info() to print the VCLK rate if it doesn't match the requested rate. - Added Reviewed-by tag from Biju v3->v4: - Used MILLI instead of KILO v2->v3: - No changes v1->v2: - No changes --- .../gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 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 e8ca6a521e0f..4d4521a231cb 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -15,6 +16,7 @@ #include #include #include +#include =20 #include #include @@ -199,7 +201,7 @@ static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_d= si *dsi, /* All DSI global operation timings are set with recommended setting */ for (i =3D 0; i < ARRAY_SIZE(rzg2l_mipi_dsi_global_timings); ++i) { dphy_timings =3D &rzg2l_mipi_dsi_global_timings[i]; - if (hsfreq <=3D dphy_timings->hsfreq_max) + if (hsfreq <=3D dphy_timings->hsfreq_max * KILO) break; } =20 @@ -258,7 +260,7 @@ static void rzg2l_mipi_dsi_dphy_exit(struct rzg2l_mipi_= dsi *dsi) static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi *dsi, const struct drm_display_mode *mode) { - unsigned long hsfreq; + unsigned long hsfreq, vclk_rate; unsigned int bpp; u32 txsetr; u32 clstptsetr; @@ -269,6 +271,12 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_ds= i *dsi, u32 golpbkt; int ret; =20 + ret =3D pm_runtime_resume_and_get(dsi->dev); + if (ret < 0) + return ret; + + clk_set_rate(dsi->vclk, mode->clock * KILO); + /* * Relationship between hsclk and vclk must follow * vclk * bpp =3D hsclk * 8 * lanes @@ -280,13 +288,11 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_d= si *dsi, * hsclk(bit) =3D hsclk(byte) * 8 =3D hsfreq */ bpp =3D mipi_dsi_pixel_format_to_bpp(dsi->format); - hsfreq =3D mode->clock * bpp / dsi->lanes; - - ret =3D pm_runtime_resume_and_get(dsi->dev); - if (ret < 0) - return ret; - - clk_set_rate(dsi->vclk, mode->clock * 1000); + vclk_rate =3D clk_get_rate(dsi->vclk); + if (vclk_rate !=3D mode->clock * KILO) + dev_dbg(dsi->dev, "Requested vclk rate %lu, actual %lu mismatch\n", + mode->clock * KILO, vclk_rate); + hsfreq =3D DIV_ROUND_CLOSEST_ULL(vclk_rate * bpp, dsi->lanes); =20 ret =3D rzg2l_mipi_dsi_dphy_init(dsi, hsfreq); if (ret < 0) @@ -304,12 +310,12 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_d= si *dsi, * - data lanes: maximum 4 lanes * Therefore maximum hsclk will be 891 Mbps. */ - if (hsfreq > 445500) { + if (hsfreq > 445500000) { clkkpt =3D 12; clkbfht =3D 15; clkstpt =3D 48; golpbkt =3D 75; - } else if (hsfreq > 250000) { + } else if (hsfreq > 250000000) { clkkpt =3D 7; clkbfht =3D 8; clkstpt =3D 27; @@ -754,7 +760,7 @@ static int rzg2l_mipi_dsi_probe(struct platform_device = *pdev) * mode->clock and format are not available. So initialize DPHY with * timing parameters for 80Mbps. */ - ret =3D rzg2l_mipi_dsi_dphy_init(dsi, 80000); + ret =3D rzg2l_mipi_dsi_dphy_init(dsi, 80000000); if (ret < 0) goto err_phy; =20 --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3CDBF238142; Fri, 30 May 2025 16:59:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624363; cv=none; b=l1fuG51aSnzXz6G2PaAlSyiOhmM0iTPSlGP5ysyydwqDVPoqGwbqnirPug2SXSCyU0X9+iHM8o986lLsB0lTXVUTfKdi1ss85h9J1bXPUF4SfcMqv2gZQ/sVlSNua6fxbZIiMsm2y6gbtQSDI75rJukE6+U+ROpXRY7q1NznVBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624363; c=relaxed/simple; bh=Bw8iZTWu8MTaLwyx4ObP0Hf862JZMPN0gK2muh1bNns=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iVQtwEMDN5N3D/dz1WJMwSroWitWRkayQ/o+mHTs9Pqqm16bUJrjlq22GWulhtqTVRsypZfzoxUPrTXsDtlOVXKGfFOR+QAW7mU5dJ3aQfmRI+B+55CN4pUGyco7rl91mz1aTxL2jMOiXN4PLXJgejJn9EzRg5ZhfbSzl0DT4gQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RYMcHvYe; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RYMcHvYe" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-450cfb79177so11050785e9.0; Fri, 30 May 2025 09:59:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624358; x=1749229158; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=I3L+RIQYCMNrklB64jsd6geUHslrVR/KKInWrov1lsI=; b=RYMcHvYe4MGDQy65Y7BEytXRpwYQf7QC//6oahBsMe563nEJz0+WKhCidpH8Mf0nCx 8BZ/DIxPYb6Oa4GOjhalcqj3/Rkl+oe/OsdrIv3q6LcCUNF2WUMkrK4P3djk38TQMlns sU+lIF3aTkGjXAGdHWeDCy5Ub0Jzd3Eu1dTtsKHl+s9CpkkrSp7DzWoFWZVcAPDfK8FE DxtdxYtmFZ0/iVYUYPxMrQGuqVZxcPNdQjXtb3jiN7dJT3fA1l9gNU3uT59QMElcEqJ7 PXxINSIky1uxXEAmR58OQpRwMqOor1STvsKegVzQ03l/+RHhNJn78G4h/UxLTE060Qxe jzRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624358; x=1749229158; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=I3L+RIQYCMNrklB64jsd6geUHslrVR/KKInWrov1lsI=; b=SUSUQS7MfKzEy0WfJxPeOWwI2S/wpIkVs/ucg2TgZFZtIUybXCAG0z5FVKt6qovH2z qzBJ1ZMXevn8KYqwOXyQczgCoNATequ+fkgJ2vYJm4ub4pCT8Ce7Vck1YDHSNW9XIaye M8TIrjjU1gfHHNF3anVoCEHph8/48CGLP/mmzbYqfvf3CAvVCfaqGkCKngEhmHiJikiY iE+kfecWpRDY+slqV7m1AuYn+1f+PfVFvWZAMmLwqW7aNOPdLuDcvyfLeUnk8jfThry/ kw0IxmQ1EtUMTDTFCa6y/EAThha5m46r9cjxy7x3okWBBHcU1eBmJ42HNobSVRt31qzR 5Z5A== X-Forwarded-Encrypted: i=1; AJvYcCUb17VODXU5U09tAtFaKGc9vNDZib0259P5F/vF9lfD3gOmAZZ6nIro8hC9+ylf3idCnKfaLP2BKTI59pc6@vger.kernel.org, AJvYcCXJXLJ5oKBAjRNXuXhNiJJj4ZCcU6upRc2YLQDyiDFKiXGrArDrhs5VEoj209yZSbxlYhYIrSpigfv022brm5/TXIE=@vger.kernel.org, AJvYcCXeLnVsEGcsz4KJCXWz8A24ZlW9Em0Vv3DVBlFy75bR5sli2fQyRyd22KgbGqaTnLkKTK0bI4emp6lD@vger.kernel.org X-Gm-Message-State: AOJu0Yzm4tGYt9/D/A9vDl6XYS5lDdNL9S/GBpC81Po8gKoXoHBSBuXM lU1YjHaI2d5Ocwu8QaH/kQ7fdPaYAWj7XPPyV9C7s2ZoSJUBeAw6IhWx X-Gm-Gg: ASbGncshzAyvyjNM7zK7fK3pOGFSPl2JxXmLZwmsb5GHHyP8marlu2LtbYX4I4ssKk8 Em64Y1G+tvrHzQoIL8/cwbwLU6YLp8/hwd+UcIIaqd+wO8E2XzpbnoaUucw3FTVt75ItBRY3L+S hk84+UQet/XngxD7kH0PH3zRqwB7mXV9keJo6J/QtCZ+N6/CVTlUzQw0e+dCl4BcCB1kfsWV3BA hJhoZJu6sUMNG7oWGqyEzFcZe0E3VX+yrBUXCx4FdZTua/hcG6/MckFX2ESB6WQDtFfAAUiaWZr haBzSpTz9Qyy+MN9vkNek+xRtxe8fFHm7JPB6iLefjF3FBbghfrW9FqlYXvu2GldyB6IISoGLsk ESqupt1aIsB8j3oPQR0Pr X-Google-Smtp-Source: AGHT+IHzh1iAOJwPvcR1JFXJ7Vl6AdbyIp+YhO/RO6sQKIczVAhCjVVCNPw2h/oEmK4cZ16HCgXxiA== X-Received: by 2002:a05:6000:40e0:b0:3a4:f41d:6973 with SMTP id ffacd0b85a97d-3a4f89ad29emr2674715f8f.13.1748624358429; Fri, 30 May 2025 09:59:18 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:17 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 06/12] drm: renesas: rz-du: mipi_dsi: Add OF data support Date: Fri, 30 May 2025 17:59:00 +0100 Message-ID: <20250530165906.411144-7-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar In preparation for adding support for the Renesas RZ/V2H(P) SoC, this patch introduces a mechanism to pass SoC-specific information via OF data in the DSI driver. This enables the driver to adapt dynamically to various SoC-specific requirements without hardcoding configurations. The MIPI DSI interface on the RZ/V2H(P) SoC is nearly identical to the one on the RZ/G2L SoC. While the LINK registers are shared between the two SoCs, the D-PHY registers differ. Also the VCLK range differs on both these SoCs. To accommodate these differences `struct rzg2l_mipi_dsi_hw_info` is introduced and as now passed as OF data. These changes lay the groundwork for the upcoming RZ/V2H(P) SoC support by allowing SoC-specific data to be passed through OF. Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Added min_dclk above max_dclk in rzg2l_mipi_dsi_hw_info - Added Reviewed-by tag from Laurent v4->v5: - Dropped RZ_MIPI_DSI_FEATURE_DPHY_RST feature flag - Added Reviewed tag from Biju v3->v4: - No changes v2->v3: - Dropped !dsi->info check in rzg2l_mipi_dsi_probe() as it is not needed. v1->v2: - Added DPHY_RST as feature flag --- .../gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 51 ++++++++++++++----- .../drm/renesas/rz-du/rzg2l_mipi_dsi_regs.h | 2 - 2 files changed, 38 insertions(+), 15 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 4d4521a231cb..2c03cad66711 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -28,10 +28,23 @@ =20 #include "rzg2l_mipi_dsi_regs.h" =20 +struct rzg2l_mipi_dsi; + +struct rzg2l_mipi_dsi_hw_info { + int (*dphy_init)(struct rzg2l_mipi_dsi *dsi, unsigned long hsfreq); + void (*dphy_exit)(struct rzg2l_mipi_dsi *dsi); + u32 phy_reg_offset; + u32 link_reg_offset; + unsigned long min_dclk; + unsigned long max_dclk; +}; + struct rzg2l_mipi_dsi { struct device *dev; void __iomem *mmio; =20 + const struct rzg2l_mipi_dsi_hw_info *info; + struct reset_control *rstc; struct reset_control *arstc; struct reset_control *prstc; @@ -164,22 +177,22 @@ static const struct rzg2l_mipi_dsi_timings rzg2l_mipi= _dsi_global_timings[] =3D { =20 static void rzg2l_mipi_dsi_phy_write(struct rzg2l_mipi_dsi *dsi, u32 reg, = u32 data) { - iowrite32(data, dsi->mmio + reg); + iowrite32(data, dsi->mmio + dsi->info->phy_reg_offset + reg); } =20 static void rzg2l_mipi_dsi_link_write(struct rzg2l_mipi_dsi *dsi, u32 reg,= u32 data) { - iowrite32(data, dsi->mmio + LINK_REG_OFFSET + reg); + iowrite32(data, dsi->mmio + dsi->info->link_reg_offset + reg); } =20 static u32 rzg2l_mipi_dsi_phy_read(struct rzg2l_mipi_dsi *dsi, u32 reg) { - return ioread32(dsi->mmio + reg); + return ioread32(dsi->mmio + dsi->info->phy_reg_offset + reg); } =20 static u32 rzg2l_mipi_dsi_link_read(struct rzg2l_mipi_dsi *dsi, u32 reg) { - return ioread32(dsi->mmio + LINK_REG_OFFSET + reg); + return ioread32(dsi->mmio + dsi->info->link_reg_offset + reg); } =20 /* -----------------------------------------------------------------------= ------ @@ -294,7 +307,7 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi= *dsi, mode->clock * KILO, vclk_rate); hsfreq =3D DIV_ROUND_CLOSEST_ULL(vclk_rate * bpp, dsi->lanes); =20 - ret =3D rzg2l_mipi_dsi_dphy_init(dsi, hsfreq); + ret =3D dsi->info->dphy_init(dsi, hsfreq); if (ret < 0) goto err_phy; =20 @@ -337,7 +350,7 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi= *dsi, return 0; =20 err_phy: - rzg2l_mipi_dsi_dphy_exit(dsi); + dsi->info->dphy_exit(dsi); pm_runtime_put(dsi->dev); =20 return ret; @@ -345,7 +358,7 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi= *dsi, =20 static void rzg2l_mipi_dsi_stop(struct rzg2l_mipi_dsi *dsi) { - rzg2l_mipi_dsi_dphy_exit(dsi); + dsi->info->dphy_exit(dsi); pm_runtime_put(dsi->dev); } =20 @@ -588,10 +601,12 @@ rzg2l_mipi_dsi_bridge_mode_valid(struct drm_bridge *b= ridge, const struct drm_display_info *info, const struct drm_display_mode *mode) { - if (mode->clock > 148500) + struct rzg2l_mipi_dsi *dsi =3D bridge_to_rzg2l_mipi_dsi(bridge); + + if (mode->clock > dsi->info->max_dclk) return MODE_CLOCK_HIGH; =20 - if (mode->clock < 5803) + if (mode->clock < dsi->info->min_dclk) return MODE_CLOCK_LOW; =20 return MODE_OK; @@ -717,6 +732,8 @@ static int rzg2l_mipi_dsi_probe(struct platform_device = *pdev) platform_set_drvdata(pdev, dsi); dsi->dev =3D &pdev->dev; =20 + dsi->info =3D of_device_get_match_data(&pdev->dev); + ret =3D drm_of_get_data_lanes_count_ep(dsi->dev->of_node, 1, 0, 1, 4); if (ret < 0) return dev_err_probe(dsi->dev, ret, @@ -760,13 +777,13 @@ static int rzg2l_mipi_dsi_probe(struct platform_devic= e *pdev) * mode->clock and format are not available. So initialize DPHY with * timing parameters for 80Mbps. */ - ret =3D rzg2l_mipi_dsi_dphy_init(dsi, 80000000); + ret =3D dsi->info->dphy_init(dsi, 80000000); if (ret < 0) goto err_phy; =20 txsetr =3D rzg2l_mipi_dsi_link_read(dsi, TXSETR); dsi->num_data_lanes =3D min(((txsetr >> 16) & 3) + 1, num_data_lanes); - rzg2l_mipi_dsi_dphy_exit(dsi); + dsi->info->dphy_exit(dsi); pm_runtime_put(dsi->dev); =20 /* Initialize the DRM bridge. */ @@ -783,7 +800,7 @@ static int rzg2l_mipi_dsi_probe(struct platform_device = *pdev) return 0; =20 err_phy: - rzg2l_mipi_dsi_dphy_exit(dsi); + dsi->info->dphy_exit(dsi); pm_runtime_put(dsi->dev); err_pm_disable: pm_runtime_disable(dsi->dev); @@ -798,8 +815,16 @@ static void rzg2l_mipi_dsi_remove(struct platform_devi= ce *pdev) pm_runtime_disable(&pdev->dev); } =20 +static const struct rzg2l_mipi_dsi_hw_info rzg2l_mipi_dsi_info =3D { + .dphy_init =3D rzg2l_mipi_dsi_dphy_init, + .dphy_exit =3D rzg2l_mipi_dsi_dphy_exit, + .link_reg_offset =3D 0x10000, + .min_dclk =3D 5803, + .max_dclk =3D 148500, +}; + static const struct of_device_id rzg2l_mipi_dsi_of_table[] =3D { - { .compatible =3D "renesas,rzg2l-mipi-dsi" }, + { .compatible =3D "renesas,rzg2l-mipi-dsi", .data =3D &rzg2l_mipi_dsi_inf= o, }, { /* sentinel */ } }; =20 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 1dbc16ec64a4..16efe4dc59f4 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 @@ -41,8 +41,6 @@ #define DSIDPHYTIM3_THS_ZERO(x) ((x) << 0) =20 /* --------------------------------------------------------*/ -/* Link Registers */ -#define LINK_REG_OFFSET 0x10000 =20 /* Link Status Register */ #define LINKSR 0x10 --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ABB8D235065; Fri, 30 May 2025 16:59:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624363; cv=none; b=JPja+SpssBDZdZGe6H6mxsYdwT7cwHIClbLRzOpmskCuQAnp1gGg6Irl/XlqTqRxsSFoyUpLbN+jlOlC+7soFeWZcM5U+h/6JMSTA4a65ELrgYjN/IZnAWKUBCMZr0bed2mamo95ocyexHTMgCQSXqk8sZ5ccSxa83qybBp8qzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624363; c=relaxed/simple; bh=jOmlA6rEKUgJLq2imiJhu/5ROzaDjvRVl7WGWDvkaxk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Wx9614rHfkCleCHO5mhBNJojPdU0P/IDXxtd50LjtRm2wkBFC5VmIq3UkkM+KN4sTDMGo1GXTQ47q+A9o24z6EJp+WPLHb/k+TJkT+wwo6qXOCxkt69y5yNx+8pnft7kMUTvivgs02DemF2HoxKrvB2vZTcRV5TJocs/EqIU7Ng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=U5P0Zyfw; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="U5P0Zyfw" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-450dd065828so3298565e9.2; Fri, 30 May 2025 09:59:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624360; x=1749229160; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bVJsgqR8jeq1tLgPX7Ahyib5AR8x8wp1hOOblNNYTTI=; b=U5P0ZyfwzoJpFwmjy0Vl8Ugq4spIgDr+KtD3sb0JdD+zreDW19x8w7SNx6ZOweK2NG xtDK6Rgx9BCGlIysLi2NZUpZvAWsBd69DhBmMismrF8PS/4RdIGCDgU5y2LoS88XWyaF /GiDdeqCYCo7NzwHQLCCF38FOB4eGshZoEydqLkybZxk6qQj8Am1ptTpXe3N1Azy8SFn YTO5vV+liIWVPWg5J0tVPCdz9cDr+RVp/CHIAbrCNb9K54FYWe5ztiAePMn18SLpLYHH mJx8hy0yPE0aRO3jDL4zpdVoIXXy7FS4pPY5FI1cRpPY3x73phUVll+xN5VNLosrR06z ZluA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624360; x=1749229160; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bVJsgqR8jeq1tLgPX7Ahyib5AR8x8wp1hOOblNNYTTI=; b=WIik2CbPCqZbI7e6kggtsYhTCVe254/Ly9LIl8eYXey+wVUbfflPgDj6uIM4UvFQu/ zc3P5d5m8CUTYTjSvCtyMpaBMAQOQx3UUgU+eQQlGpSOml92NjSfnPeZy0salomLswjD FX4XVPIaPq0DXhHHwFMVwK1yyxqj2MhxrKfve76pK7CI5oa6rrZPtpuCN3jhaqWuDuVQ n+B5rNA0Pakgt+xORCaml7bzcBJYvQGIKVwCZx1H154o12SaNuthCOTrcNFVs1KH3DyX 11ob8AoYKIHl+Ft0TuOHoEmLwHnQ5p/8Yj1hrdCftFoAEvUucfPIaTq/I5yBBpDPtslJ mkgw== X-Forwarded-Encrypted: i=1; AJvYcCVn0pFWXSwZAXgO8fyEp43ndk9Uw5p7keBUQ4J+edjESOYjn2Xu1oXAMmw7p6WFn+5RyExnIWoz+8nPJnI5KFqg5J8=@vger.kernel.org, AJvYcCX0WX0hGOFX6YkpFEtdY8jW01uIg+AlZw+DoR1fKf0mXGvDPWQaelPFGtfJPboCVj5By9Euo1WESOKcsWiw@vger.kernel.org, AJvYcCX79WgH/d7+qZoNY/Cu4BaQPou5DxePIk4RZXsSzQtJo7vIsnk3mFCHNRQCggricl3OtUmltu4Srwpi@vger.kernel.org X-Gm-Message-State: AOJu0Ywdlr3BsKwdoi17qAcoLETTlNQ8WbNfkfAWGZa7Ap+6+AsUvoEp HcS9UmmgiHNH7YIkIU2/eFdbIArwbsmuwRs6a1A0nZSePFa9iW/srw5j X-Gm-Gg: ASbGncsPO0JYx+j02/BCNhF7IkCyY8YIry/UsagH7WhO5Xl2Fa5lTBkwW93+/u/IsgW ihlVSHYfkGMV4/0G6ObjjEKUibACAHx7mttZshcJ+XulVet7/bNwl0ANnnce8qOgBcJf+P2JxQC eTBrwZWB5MsxAIxfF6XuTRr33O1iq25Oag0qSRgay/2GZWchZYxKVISqu7opd0KMtCo+4E9iUA+ dnUcHvj6XshNtgvbjlRBGLyI0j2XYaMdhNeJz0Dw3eMvKOgULWbSr2rgu0x3zhBD9BlAZYvb249 usHBrnVbnNEjYXJvZ+U/CHP5SMu525KnipDJzvbZOE0JeE9g0DydvaM9dAKprSZS/uUQPrjNgBO BdmJAxve3JQ== X-Google-Smtp-Source: AGHT+IHUpzj7UNyPaAj/DrVWUSbBAQLC84krhHBGh8wrBgJHz7oS0WJRv5LI2/bixWhWKyONOKHTCw== X-Received: by 2002:a05:600c:3b0f:b0:440:6a37:be0d with SMTP id 5b1f17b1804b1-450d884c411mr30637185e9.15.1748624359595; Fri, 30 May 2025 09:59:19 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:18 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 07/12] drm: renesas: rz-du: mipi_dsi: Make "rst" reset control optional for RZ/V2H(P) Date: Fri, 30 May 2025 17:59:01 +0100 Message-ID: <20250530165906.411144-8-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar In preparation for adding support for the Renesas RZ/V2H(P) SoC, make the "rst" reset control optional in the MIPI DSI driver. The RZ/V2H(P) SoC does not provide this reset line, and attempting to acquire it using the mandatory API causes probe failure. Switching to devm_reset_control_get_optional_exclusive() ensures compatibility with both SoCs that provide this reset line and those that do not, such as RZ/V2H(P). Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Added reviewed tag from Biju and Laurent v4->v5: - New patch --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 2c03cad66711..0e0659dfe5a5 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -749,7 +749,7 @@ static int rzg2l_mipi_dsi_probe(struct platform_device = *pdev) if (IS_ERR(dsi->vclk)) return PTR_ERR(dsi->vclk); =20 - dsi->rstc =3D devm_reset_control_get_exclusive(dsi->dev, "rst"); + dsi->rstc =3D devm_reset_control_get_optional_exclusive(dsi->dev, "rst"); if (IS_ERR(dsi->rstc)) return dev_err_probe(dsi->dev, PTR_ERR(dsi->rstc), "failed to get rst\n"); --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C0C0223645F; Fri, 30 May 2025 16:59:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624364; cv=none; b=FlzNS4AgCm1mBvQcrJXf4mXnDVjyrYstuwNrn0+SvFaI6R0b0aBI0GLw8JMURv5rVl3Q/v7MXelbhiEnGroGOkSriSNEDJ6todRkOvOVPhGqVKtZebYm0c/odHRqYcf3wr3Qx8KmTSWFBWSllvMiZVfmZF5GPuuwF6f7C1bDAfY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624364; c=relaxed/simple; bh=FGuxDfWFnOxoU7A4nX6tM3l+aZHqPOhc3350TQiuBlU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OWNkcEjbnunctXhLvdx6YNQFOYvaJ8WmxvItWorCd0ewRWoEYJTBYDknpla39q1+oRR+zjNMPfOW3+IsYoP952YxpLn2qW4NNesh5rb0fRJxdyGsd/fTXdPTzLH7qIxM3COOY2E55NUWp6NcbEis8k6c/pP7VGSrpPiDB2mvIok= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lXBKuuaW; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lXBKuuaW" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-43cec5cd73bso15409275e9.3; Fri, 30 May 2025 09:59:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624361; x=1749229161; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=53a6EE9nbnZeGvbpsTgBtcSF6DIb/DdGkT1QIK8MVG0=; b=lXBKuuaWSOg3zMpl2C6G4auEs+GphNgthYOwMQeb+g75hea01E8UzFngjkvTmqFbg2 xqT2N5qx1f6tut3LE/rcabMCZLJfVAO70/WE/7tMMzbOo8WL5+0Rme/lDrW10NagClAj T6irOWRrS2v0xUTEnOZGPzfS2oRbOh1Lw9s3OPysAo0IIt96c0ECcz4OUidojuZVBwMg riZxlfvDScJYlGJRmzEdj+IcrTZCAHAqgq/O1dF3i15jqn5rEov9U2gw88QOem1e04j2 ZA1IClXZNK4ekZIhOTnKn51l/p1siOmXXzHOLOQ6uY8plWSx+ZZp4eMIVBUu/vAijCbl 3hvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624361; x=1749229161; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=53a6EE9nbnZeGvbpsTgBtcSF6DIb/DdGkT1QIK8MVG0=; b=JT8lOW/mEsJCLOWPzjXMitOCqHllcLiGqmlf2Xm3B4xSK6KLDDxczcPQ9xVo5Uqqow lyD/9vme40LvuKtBbVL0z/V2KFCTZBbEvlsXh+YaK3TKKkacwmCPSVPngPaYGdK8+NdE nQDpTYmEbOJYrfqGI++JNVL8covL+E9H/5jxi1d50ybEKEbfa9TWXRvd4eiioQ4Neo7r zdXY/5kIC1/rZubdqSe5w8BxG3a1c3UF/QyTmLYWHibgLx5bG8MdJUwibEBWORCgK4am SlAGmplwbZA0UAws/e5iS+dS6EknPcXGysKwLlhbl6BRAfTA6Xrm64CDb3sNcvIZs5Ga /w3g== X-Forwarded-Encrypted: i=1; AJvYcCUHkojswglfH8XLh1I0q2iLgKIDSTFmUNnYs2xG8L+xNgKSviSYkTBnuyU2a11i26V1t7KYWVOK/yfnPH2F3mN9+GA=@vger.kernel.org, AJvYcCVCrw1CamlizF5Z+NWs3UsQGAUxoRltPqCr5QjE/z7rrqWY80sVWTLsDG78p1rX8INufAfmJCSHToMNMEXu@vger.kernel.org, AJvYcCW22fh8VuuPiIRM+QHpxspS/ZZ0kBq3XaagfEZyy9oHyUD4BDpqWXLn6tO6Qq8qECZIlXkPp8i8Ny62@vger.kernel.org X-Gm-Message-State: AOJu0Yw92DghkLgLDwaRYbKy+eNqCyOtgvHi0cZ3z2JX7e5NDeFcyVhK lIpZBclMyN4NJc1qpKeXAAQo1T72FrkT4S++b3UDANWljiGE25KlRDgL X-Gm-Gg: ASbGncs4yMhlUbUAZr51vTq/QldvwD9JlruN/9u0bXLJjXHaQiwKa7UvgHsIHz5lzlS 0+CvW4uBKR0qzuGeRSEz7Yql3n07Zalw5OK2tDkYhg0JlJCWGa9nmQqZ9Fm8BeGk0TMbuAB0L8e d/FSSBIuS4UNFcxOVeyhWjdzh0aud+fSjXcU+LuwtPj6PBujnNiJdbL8fVEcULHYaCcA5msZj0y A02WQrJK0HExs6Epfy+BnwCRAruQxMsJ1Ckp7J/bdYH3GVrqmr4q/lzrXyEluVgUhNMdylQhWdK aR1wSILkMY2WVKa3fYHDEzD9FqQJLKQfx2vFWAoTXfCnr/2PCwBV872QtCEHcWBetduzLeX1eKC RwiAJxfmVxw== X-Google-Smtp-Source: AGHT+IFPRhpgt3qPxqJVPfnpBQeTkaN8+oiBWp/bmUKW1jnbX/PcMfMQy4r2p5CTyqNDjyPLfAnvpw== X-Received: by 2002:a05:600c:8207:b0:43c:f0ae:da7 with SMTP id 5b1f17b1804b1-450d64c31b3mr39434305e9.7.1748624360971; Fri, 30 May 2025 09:59:20 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:19 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 08/12] drm: renesas: rz-du: mipi_dsi: Use mHz for D-PHY frequency calculations Date: Fri, 30 May 2025 17:59:02 +0100 Message-ID: <20250530165906.411144-9-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Pass the HSFREQ in milli-Hz to the `dphy_init()` callback to improve precision, especially for the RZ/V2H(P) SoC, where PLL dividers require high accuracy. These changes prepare the driver for upcoming RZ/V2H(P) SoC support. Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das --- v5->v6: - No changes v4->v5: - Added Reviewed tag from Biju v3->v4: - Used MILLI instead of KILO - Made use of mul_u32_u32() for multiplication v2->v3: - Replaced `unsigned long long` with `u64` - Replaced *_mhz with *_millihz` in functions v1->v2: - No changes --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 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 0e0659dfe5a5..fd5d4551f39d 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -31,7 +31,7 @@ struct rzg2l_mipi_dsi; =20 struct rzg2l_mipi_dsi_hw_info { - int (*dphy_init)(struct rzg2l_mipi_dsi *dsi, unsigned long hsfreq); + int (*dphy_init)(struct rzg2l_mipi_dsi *dsi, u64 hsfreq_millihz); void (*dphy_exit)(struct rzg2l_mipi_dsi *dsi); u32 phy_reg_offset; u32 link_reg_offset; @@ -200,8 +200,9 @@ static u32 rzg2l_mipi_dsi_link_read(struct rzg2l_mipi_d= si *dsi, u32 reg) */ =20 static int rzg2l_mipi_dsi_dphy_init(struct rzg2l_mipi_dsi *dsi, - unsigned long hsfreq) + u64 hsfreq_millihz) { + unsigned long hsfreq =3D DIV_ROUND_CLOSEST_ULL(hsfreq_millihz, MILLI); const struct rzg2l_mipi_dsi_timings *dphy_timings; unsigned int i; u32 dphyctrl0; @@ -274,6 +275,7 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi= *dsi, const struct drm_display_mode *mode) { unsigned long hsfreq, vclk_rate; + u64 hsfreq_millihz; unsigned int bpp; u32 txsetr; u32 clstptsetr; @@ -305,9 +307,9 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi= *dsi, if (vclk_rate !=3D mode->clock * KILO) dev_dbg(dsi->dev, "Requested vclk rate %lu, actual %lu mismatch\n", mode->clock * KILO, vclk_rate); - hsfreq =3D DIV_ROUND_CLOSEST_ULL(vclk_rate * bpp, dsi->lanes); + hsfreq_millihz =3D DIV_ROUND_CLOSEST_ULL(mul_u32_u32(vclk_rate, bpp * MIL= LI), dsi->lanes); =20 - ret =3D dsi->info->dphy_init(dsi, hsfreq); + ret =3D dsi->info->dphy_init(dsi, hsfreq_millihz); if (ret < 0) goto err_phy; =20 @@ -315,6 +317,7 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi= *dsi, txsetr =3D TXSETR_DLEN | TXSETR_NUMLANEUSE(dsi->lanes - 1) | TXSETR_CLEN; rzg2l_mipi_dsi_link_write(dsi, TXSETR, txsetr); =20 + hsfreq =3D DIV_ROUND_CLOSEST_ULL(hsfreq_millihz, MILLI); /* * Global timings characteristic depends on high speed Clock Frequency * Currently MIPI DSI-IF just supports maximum FHD@60 with: @@ -777,7 +780,7 @@ static int rzg2l_mipi_dsi_probe(struct platform_device = *pdev) * mode->clock and format are not available. So initialize DPHY with * timing parameters for 80Mbps. */ - ret =3D dsi->info->dphy_init(dsi, 80000000); + ret =3D dsi->info->dphy_init(dsi, 80000000ULL * MILLI); if (ret < 0) goto err_phy; =20 --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4829B238C36; Fri, 30 May 2025 16:59:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624366; cv=none; b=p6H10qmk09H6Q1HCDCbWoQIS1GjymipygqLPjzQ52p955YJRprNtHB/mtMXnb9vnsEFlvqg9fhKIDsPqg0YS1Rk+MWaFbk8dwnB5tk6fM0m458Xj/CwuUt0qA048BRYH1x3q8fVoxZpdQOkjA9jttxl5vwNBUdMMj+jgh7ux6xQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624366; c=relaxed/simple; bh=mR7jJwCkdaO9tiiFzSZ4K7TE7BfCp4QuufS8QmjGKXI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HA9F+SUR6Ig4XTewf1mAaNwO8nSljrDEqbeJAjFJGeb7XaGsFfCMLCETAjxOMdWyFDXmke4dlvy7l9IxppkCrw3uMWs0CApuU35OwU1Q1gbS6KXSBfhFr2VUJMMAPRme9ARH4ooM9HpdLk1fIDTh4MDWMt5shZSu4J49Ps6rZt8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Hn3AqFCy; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Hn3AqFCy" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-441ab63a415so24348915e9.3; Fri, 30 May 2025 09:59:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624362; x=1749229162; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UOUnDZksgUPq4aY4rBL8aX+sFVS5jcV32pBW6xfenO8=; b=Hn3AqFCyHSSxNGbIlR46chrj52FpV4eKtmJHuoizq3sm4mpDNcuZ4y6+nzmN+CEzgu g0zTMynalNCflb7l0o2Cw5XcLYMSaV12NJ4gg0uDToxbCzV/Ui/M+zQzW/kV0pr0TJOW CiQH1y2H2frVGTHumcQgyPcf1psJUE6r17l2tCd1UwxVU8c3gjc6KiVK9rHHPcLguXUu YdBQTfU2sdV+WdnQE74i04UcGi+xHrHDjYyc9DlZE43JBh2WgTXrsGyEjcMqkYaVeuEv +BxSWO4PdPtTx48VhnigZ4klGw7l7XshG1Opwd2+v3pyod8xXr8nAnBtASxY3giPpiga TMnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624362; x=1749229162; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UOUnDZksgUPq4aY4rBL8aX+sFVS5jcV32pBW6xfenO8=; b=NxWpJtIpanHaNvplNhar9P5JanvfObsseAJctZHq1EQ4L1cxx+aITJaOjsndV0uFys Z3y4067yl3Es80zeMBQRE+4/wZvQK0MF4pSIu6O0G5BYy+nSlqjO8/VWmeOFYsxczDbw jfUhscMzPWuyp40WXwynkSt1KnZbqAmX7oVyIuvoC/OG+r8lpNsHsVq9w3q2tvnT4ydF 1Ni9R4qRo1obhLq0AJaRpW4pO7dmp3FnnMzkAVW3AEAocrk5LJgLwxomF6AU3G8F3Dbq PtRJotjfIwK+CjnWo/FNrtWdMXcdOd/Wz0ZwxsQsEvo5Sc15s6eRJsbTJ2FETnlxEfS4 eOyg== X-Forwarded-Encrypted: i=1; AJvYcCUxhBrz1M2HJXRhK69ccwea1LsyBE118CcxCcCbWHu0PZD002DHtTKV50iActU/1fb6PKIWFy7Fp67Z@vger.kernel.org, AJvYcCX2i+voPKm6KOP4z2yA0+vVi5HyIaAjFyKVgzPQXSXsQyCh5MkF7CWmcsFJXDhW9QVcWznfxjLVT8g0pMP/@vger.kernel.org, AJvYcCXVniMT3Z6IbWzyp5/XnXTOhKCoLOzEq/7v7+pziUxzOcYcQ3q+U7wJXUAE50dZaqXe5S4EYAoL4n8ckoy+PKcbvYw=@vger.kernel.org X-Gm-Message-State: AOJu0YyNIJB1rTaTkY4Q3QVBV3NeoYYGbVYv0+gM9HcxKydNgFVIchcx YsB2WxhzoSVTdaH4rZrq9CHSQFQybHdC13qAyxxKP2w+jzvHowZ0dWdQ X-Gm-Gg: ASbGnctPdIStYqF4fd3Um1+hk4bpxWk56gu4KzqiXdZOtY8ZKgIP44eP5Pz+g3sarSZ egjWYTLSulDTYk6q2LD9wv2QePbNXaS4If5P56WwFIHsfcblxbkaYV+qTTLjXOOkIGjU6BmCQJ1 v41dH2pnbJ/mcMFYJByEsP1c1qbcC9My9qqsrzAIYdcf5xZynUMiqf76SHmXU6YM83qL2n82k/o p2OMxRbgB61IlsqxxJgIiOTFlK62d47/gVlmnUMQkpDEUAQGVTuNWJGQWxTSTG+qEbd/kjWa7ce kTvyRfpOOucqMIAkxwoySwcbw81lvYsMooM7FLRoIcRH0DZxAWl7Fs8ImkZLozXG0HDqCLBLOeq 9JfUxaltlew== X-Google-Smtp-Source: AGHT+IFzgn0QIVlghz5vyCIu/2/JW6FdsqCQ2bsc/449AIyFpCyM0aAnMLMWoMv9bJ4cXTfP+tlr6A== X-Received: by 2002:a05:600c:524a:b0:450:cf01:7310 with SMTP id 5b1f17b1804b1-450d6515d10mr42199455e9.12.1748624362159; Fri, 30 May 2025 09:59:22 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:21 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 09/12] drm: renesas: rz-du: mipi_dsi: Add feature flag for 16BPP support Date: Fri, 30 May 2025 17:59:03 +0100 Message-ID: <20250530165906.411144-10-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Introduce the `RZ_MIPI_DSI_FEATURE_16BPP` flag in `rzg2l_mipi_dsi_hw_info` to indicate support for 16BPP pixel formats. The RZ/V2H(P) SoC supports 16BPP, whereas this feature is missing on the RZ/G2L SoC. Update the `mipi_dsi_host_attach()` function to check this flag before allowing 16BPP formats. If the SoC does not support 16BPP, return an error to prevent incorrect format selection. This change enables finer-grained format support control for different SoC variants. Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Added Reviewed-by tag from Laurent v4->v5: - Updated RZ_MIPI_DSI_FEATURE_16BPP macro to use BIT(0) - Added Reviewed tag from Biju v3->v4: - No changes v2->v3: - No changes v1->v2: - Renamed RZ_MIPI_DSI_FEATURE_16BPP --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 fd5d4551f39d..506b5503a725 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -28,6 +28,8 @@ =20 #include "rzg2l_mipi_dsi_regs.h" =20 +#define RZ_MIPI_DSI_FEATURE_16BPP BIT(0) + struct rzg2l_mipi_dsi; =20 struct rzg2l_mipi_dsi_hw_info { @@ -37,6 +39,7 @@ struct rzg2l_mipi_dsi_hw_info { u32 link_reg_offset; unsigned long min_dclk; unsigned long max_dclk; + u8 features; }; =20 struct rzg2l_mipi_dsi { @@ -644,8 +647,16 @@ static int rzg2l_mipi_dsi_host_attach(struct mipi_dsi_= host *host, =20 switch (mipi_dsi_pixel_format_to_bpp(device->format)) { case 24: + break; case 18: break; + case 16: + if (!(dsi->info->features & RZ_MIPI_DSI_FEATURE_16BPP)) { + dev_err(dsi->dev, "Unsupported format 0x%04x\n", + device->format); + return -EINVAL; + } + break; default: dev_err(dsi->dev, "Unsupported format 0x%04x\n", device->format); return -EINVAL; --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2EB281A2C11; Fri, 30 May 2025 16:59:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624366; cv=none; b=kdw7fPSHbeLIv6vH74+1o82bfkl0ujDpSBKPUMX7eyomtUV5CmAUIUs+IT899zmtUNT3yNaEDZDxPjP+Y5unxoXPSFUCd/e4nTg1qXwMYpHaCxn+Mz5i4/1/zD2+0FS7QuRG4rSZ6Q7dTH4VQxcvfAdaxZrM8TDSK02NxLyTKyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624366; c=relaxed/simple; bh=ZqTY3YA9TdVdGLWBdhnZUntqAWnz5rnlCo/g7iMCw2k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gUl+8APzIDOkhbpvLOc/zuoimqAMdwtM65sYqX0QvotGi58z9x1mMVs9i1qJeMi4lJ8hFIFKq9cFQBFc+yoJT9u6+jHOk/gSUTN0PQ8CgagMfARXgGUerz+sopeBU9iHdiQ6qFBH5fjx99CqCg+piwojUyvR1xDekIWFZ9A9BJQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A0+Hy4As; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A0+Hy4As" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43ea40a6e98so23479905e9.1; Fri, 30 May 2025 09:59:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624363; x=1749229163; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6Bsc1oUMW4VytILKq6eucAsxCxsFRVs9NwyCg9qybzg=; b=A0+Hy4AsJj83/EvCavF5JUryCnEMS5AMBG9lbIHRtlvPPLB5s6ocJ6lGxFl8Kwbxk5 gjDQVMDVjU3ry9ZeQponIMSKcLJzIIxPkXfLsIKbXRCMQKM4DkflnwjXkW+Pdljmr08R rAZtXM20UnIzCqoMVvHaJO3n+VjrVE5mYYBwPzcCOlWcGpYCnfO2yC8L4TDIfP8jr7Qb 91Cm9wBart3BGujpsR26F1Z0oyMnlCBSzyUzTZVAJOmOqeDyzN4DvyzK8aUyDroyTgHC w/ffKkxG0lcdPxF1h99nLsYCOSM0wLgAHgZBKDqJId0c09XPTKgn6H3Ba3UEdtdbcbkS 0EbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624363; x=1749229163; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6Bsc1oUMW4VytILKq6eucAsxCxsFRVs9NwyCg9qybzg=; b=kuFhM3Y9fFrZWsAe+/8vdWDjd1y2rVGrApHSv1jf27MQY2zP9xgz4qGAIYT3eO8FmP NinEKqdZ97fuAh6ISxzVsLV1rxO6/AYz76OSEhc4p5kttOYeO9CqVnJg81/XSVpaKB7O o1UN5gBuNod7In0ee440bAVV1md4GGC2OCV3WOE6o7o9QclUo36Ews58kRd+7zuUj54k h3fJl+yhEABcYQNjfnXH5Gc5Z0FuCsoiXJebFFAl/mxQR/FkYMW9Jsk1uNUe7Lezm2K2 ZE97LiYKquyLczLqMUjtNi8iaebIcJst7cur0Vs6EseJgyKUNBsfSLfvfN3rCFloGRLK e6LQ== X-Forwarded-Encrypted: i=1; AJvYcCU+NasdRlSqb6xMDb0TzDyZnslxVF4LCrtOU07p4RTUvjmUbOyhI58MOK8sQ5Ll7R0DptX4vZLZ6LeuuyWj@vger.kernel.org, AJvYcCXd8X4qZsm5g9lKnQ0xzsFWZqCT8r0tEAJxPohn1hgRmIaoIa0j7b9HluvRAkzJiHYBndVPFaK0dnca@vger.kernel.org, AJvYcCXqc/TaJyuypJKNRJ3JsVhhG4e1yTnxtQrUpDhZfMeSbt3y4psbd/14o2rc+KGYYFFHt+bP7HU0uB5kCJGnG5RISc4=@vger.kernel.org X-Gm-Message-State: AOJu0Yykvmg2VDm9OKvLuhh9hXgdBjgxr+QKjeDt4Z/4sQPpuyseTauv D2Ax/HCE5tMFDyZ/QCXugLDoGV95i0nSUK2i3s6VbZsJ2twuOHIXlNlt X-Gm-Gg: ASbGncugaBYjwmv6OK1gMxCxWcnUl69B1AWQ8NrkBtlugctMmehqF1RmcilrN8EoUrs tcg0K3A2I4ihmdhwuN960jdQRbTrbPXrrYfFpUkYI22MmCOp9XlkYRoeYSX4oKYFD1SE6224qQV O9lYJ3ZKsfWDx/F8BWrAvZ496YETKbxJW+rFJKmCCFLDuyYv+DLBEphrnUmLGgwjirFpNuIAPA/ Xv8ETPWdiyqbK9n0buMoSQJc3wEeZZdrtrsJICtZw9fmd5FQ19MZUoLVBDBPSQAFrbqZvKIJOkQ OOu0K4pX77tAmZ6RIoEbnQWfzl4gc0dKIKN+zQX4Uqk7UfrVUxlCHzWlV4caYMGsjc9WMTDgHTM nddXeXkGesUOYbtozxwwd X-Google-Smtp-Source: AGHT+IHX1pqPaNodbBcNM0xGNtsM6i9wiutFQO6+/zneQQbRJcqE/FktY/zMJOvdCcgJNOK4kMrYDQ== X-Received: by 2002:a05:600c:620f:b0:442:e9eb:cba2 with SMTP id 5b1f17b1804b1-450d6452cadmr53521755e9.0.1748624363359; Fri, 30 May 2025 09:59:23 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:22 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 10/12] drm: renesas: rz-du: mipi_dsi: Add dphy_late_init() callback for RZ/V2H(P) Date: Fri, 30 May 2025 17:59:04 +0100 Message-ID: <20250530165906.411144-11-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Introduce the `dphy_late_init` callback in `rzg2l_mipi_dsi_hw_info` to allow additional D-PHY register configurations after enabling data and clock lanes. This is required for the RZ/V2H(P) SoC but not for the RZ/G2L SoC. Modify `rzg2l_mipi_dsi_startup()` to invoke `dphy_late_init` if defined, ensuring SoC-specific initialization is performed only when necessary. This change prepares for RZ/V2H(P) SoC support while maintaining compatibility with existing platforms. Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart --- v5->v6: - Renamed dphy_late_init to dphy_startup_late_init - Added Reviewed-by tag from Laurent v4->v5: - Added Reviewed tag from Biju v3->v4: - No changes v2->v3: - No changes v1->v2: - No changes --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 4 ++++ 1 file changed, 4 insertions(+) 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 506b5503a725..ebbc6ac45484 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -34,6 +34,7 @@ struct rzg2l_mipi_dsi; =20 struct rzg2l_mipi_dsi_hw_info { int (*dphy_init)(struct rzg2l_mipi_dsi *dsi, u64 hsfreq_millihz); + void (*dphy_startup_late_init)(struct rzg2l_mipi_dsi *dsi); void (*dphy_exit)(struct rzg2l_mipi_dsi *dsi); u32 phy_reg_offset; u32 link_reg_offset; @@ -320,6 +321,9 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi= *dsi, txsetr =3D TXSETR_DLEN | TXSETR_NUMLANEUSE(dsi->lanes - 1) | TXSETR_CLEN; rzg2l_mipi_dsi_link_write(dsi, TXSETR, txsetr); =20 + if (dsi->info->dphy_startup_late_init) + dsi->info->dphy_startup_late_init(dsi); + hsfreq =3D DIV_ROUND_CLOSEST_ULL(hsfreq_millihz, MILLI); /* * Global timings characteristic depends on high speed Clock Frequency --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B3AB4239E89; Fri, 30 May 2025 16:59:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624368; cv=none; b=jnYmC4ajniPojFK7jmdC/Bg0d9HxeJTLNf4Xc3S6YYwHdRU9Lcuz6buI59bzBjPFj8xhZrlNXiUd5AxB6HrtJMIoc7ZmcR+J1kRi3ncwdz9+zZoWbzsZM7cmasbVD0OpyzhcoH7N4nAR9mr8VwiQunPNl37QBo1e+MSpQ+NBC3Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624368; c=relaxed/simple; bh=8gNaJJpQ2r8gCjiBXbqeUaeiSWTTSYE395D2jwiWrMk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qFfxZXWVyizK91HlXiulmwv0LbP95JKwTByjXxvle3cXRItly6XwctB1hUvD/o1CUPNW4AoXE9V1dpb1jxqrMTP/SL3hvzEm8QvY5eHkJ8x7IexTUkRspsn2aZsxxxMUL/MButXc+Pn8htbr/ptRPgMlyd28KI6cxPoBVUcQtp4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=i+PlVCjV; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="i+PlVCjV" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-43cfe63c592so25938725e9.2; Fri, 30 May 2025 09:59:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624365; x=1749229165; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=czB6m6EtLdQlv5DoV5KDu4jRB7A8Vse69Ln6ndrljSE=; b=i+PlVCjV5X+y0zl2TDJs9itGl72mOzdY7VMpgW1XFngK1yCI/IqbaMjA1Gfv1xM+7U Pqzxq7p0J2IEuSpzVcu9zzyxgg8G5s8vIK6uTDcNJNHtuhpbCVUNMgLmQye3u6/HXr8X NmcDpg77mARKQ35BQnc3nWW36cahXWdpBSqAVEktNO0IvLIXBdssT9B+GYGGto0j45QK LA8ljhTU+joB7/LyB/r8kJmyfKTvRRvwXhv3KCVYo7MFQH72gzEKZReqKw6x38BuwsJs Zb/aqkt92YrpvfoDpJAehSwCnmK3zTWZnPzY7616TmQw+umEBViGvpHrLgMVBhEjBklX 0eiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624365; x=1749229165; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=czB6m6EtLdQlv5DoV5KDu4jRB7A8Vse69Ln6ndrljSE=; b=PuDhoh8PR6QGMsFl5k768zUqzqkCtuX+00KsnPn9WYGY/gw0SNLN6C8a94MXZK4Viq MheERRn52tWs1enage8ER0M+tIr3sEOXSgwyb7KGZICxrUvb8sn5JxCH4lFe7Pu09kPy qRTF9dV7S7N7+9JsHav4xbp72/OYDmgej4OTvoE6QhYX7VpXRnluYZ8/IBE2eelSNu0t KOnSh0Ed4WUusfLk1sxeRqvJ7Ln92OSgCWAM9ByH7QfY+7YpvrTIrVEhsrEZxgVpdIKX iZXKjxgGyblE7SCYXFIjzuDoQ/qnH4h9upibm7IVav127abB/mdsXPSdyQwdyoKaqf/C oUSw== X-Forwarded-Encrypted: i=1; AJvYcCUDvuBm+yuyCGNrSZaN5KenRN65/5OAK0o++K0nZPI1teUn/LKFvgoGY0t9WqTTQD/rF0+GQSoXIz5pDwskrIF8Mp0=@vger.kernel.org, AJvYcCWkEuk8/X6FRROfhXmAA8atCFoAHG9SDDDS7fpVuUFeia+Fd+4V3WclpINEkAEskEMJBGv6PzE7W/bc@vger.kernel.org, AJvYcCXTjJL67v2oSLkJ2qP0B0Ch++jGgfplpnys8ghqElOhabHq1UGVsJZkj3TDbA/WBu7dNfH6JvrABA47ZV0s@vger.kernel.org X-Gm-Message-State: AOJu0Yyzq4UIBnPsLR2gy02SvNOWaZ8grc6BMCXXm7GCKnsjWnUPx0jw gMZxZhBnKBXyBvHTnGNqgKPgIm2vlnLpHSllOrgEpcemLIgaZQZOgwzy X-Gm-Gg: ASbGncuobDLEbo0ihf6VI6ZPNoVx/u9xqBAoxFd9REmRLLUnuMSxI4SD5W8AVyIqVuy BbICAXlzaRwRmL3imm1OtiQ/WiwM4hmXQxaXiEemLGiYFb34iwDFQSTKBsLPtQVndZxfE2o1Sze lcyg9itBD3AG0kbDxK+kYrbrt5JI24R9xM4KKw0W0EhnRI4jbW/ZL7LajqZDUqwTJofOQZ0FROK FrDH1zvdpgwHTKwjbgUslUlkamrWgxH7cMXEkoidyYNhSA65C6z/JbMYzpOQnlhwxru0qgUsfHL /tPk7SKDvJTQrcfY0tBIxZnvmBUI4oQozKvnwInrQ+9Y7FiCpOOomiwA3Asmt20nPYOGauo2sGi V7K9fHM3PfA== X-Google-Smtp-Source: AGHT+IGX8mJ3YqSYlctQJJSixabnYIPst1erP0Pr+Omg9jid3KHGvgM0EyAy9NIVnCq21k7743kw/g== X-Received: by 2002:a05:600c:1d98:b0:43c:f44c:72a6 with SMTP id 5b1f17b1804b1-450d651b757mr41521575e9.2.1748624364583; Fri, 30 May 2025 09:59:24 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:23 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 11/12] drm: renesas: rz-du: mipi_dsi: Add function pointers for configuring VCLK and mode validation Date: Fri, 30 May 2025 17:59:05 +0100 Message-ID: <20250530165906.411144-12-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Introduce `dphy_conf_clks` and `dphy_mode_clk_check` callbacks in `rzg2l_mipi_dsi_hw_info` to configure the VCLK and validate supported display modes. On the RZ/V2H(P) SoC, the DSI PLL dividers need to be as accurate as possible. To ensure compatibility with both RZ/G2L and RZ/V2H(P) SoCs, function pointers are introduced. Modify `rzg2l_mipi_dsi_startup()` to use `dphy_conf_clks` for clock configuration and `rzg2l_mipi_dsi_bridge_mode_valid()` to invoke `dphy_mode_clk_check` for mode validation. This change ensures proper operation across different SoC variants by allowing fine-grained control over clock configuration and mode validation. Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das --- v5->v6: - No changes v4->v5: - Added Reviewed tag from Biju v3->v4: - Replaced KILO with MILLI v2->v3: - Replaced unsigned long long with u64 v1->v2: - No changes --- .../gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 65 +++++++++++++------ 1 file changed, 45 insertions(+), 20 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 ebbc6ac45484..f9f2d883c40d 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -36,6 +36,10 @@ struct rzg2l_mipi_dsi_hw_info { int (*dphy_init)(struct rzg2l_mipi_dsi *dsi, u64 hsfreq_millihz); void (*dphy_startup_late_init)(struct rzg2l_mipi_dsi *dsi); void (*dphy_exit)(struct rzg2l_mipi_dsi *dsi); + int (*dphy_conf_clks)(struct rzg2l_mipi_dsi *dsi, unsigned long mode_freq, + u64 *hsfreq_millihz); + unsigned int (*dphy_mode_clk_check)(struct rzg2l_mipi_dsi *dsi, + unsigned long mode_freq); u32 phy_reg_offset; u32 link_reg_offset; unsigned long min_dclk; @@ -275,12 +279,39 @@ static void rzg2l_mipi_dsi_dphy_exit(struct rzg2l_mip= i_dsi *dsi) reset_control_assert(dsi->rstc); } =20 +static int rzg2l_dphy_conf_clks(struct rzg2l_mipi_dsi *dsi, unsigned long = mode_freq, + u64 *hsfreq_millihz) +{ + unsigned long vclk_rate; + unsigned int bpp; + + clk_set_rate(dsi->vclk, mode_freq * KILO); + /* + * Relationship between hsclk and vclk must follow + * vclk * bpp =3D hsclk * 8 * lanes + * where vclk: video clock (Hz) + * bpp: video pixel bit depth + * hsclk: DSI HS Byte clock frequency (Hz) + * lanes: number of data lanes + * + * hsclk(bit) =3D hsclk(byte) * 8 =3D hsfreq + */ + bpp =3D mipi_dsi_pixel_format_to_bpp(dsi->format); + vclk_rate =3D clk_get_rate(dsi->vclk); + if (vclk_rate !=3D mode_freq * KILO) + dev_dbg(dsi->dev, "Requested vclk rate %lu, actual %lu mismatch\n", + mode_freq * KILO, vclk_rate); + *hsfreq_millihz =3D DIV_ROUND_CLOSEST_ULL(mul_u32_u32(vclk_rate, bpp * MI= LLI), + dsi->lanes); + + return 0; +} + static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_dsi *dsi, const struct drm_display_mode *mode) { - unsigned long hsfreq, vclk_rate; + unsigned long hsfreq; u64 hsfreq_millihz; - unsigned int bpp; u32 txsetr; u32 clstptsetr; u32 lptrnstsetr; @@ -294,24 +325,9 @@ static int rzg2l_mipi_dsi_startup(struct rzg2l_mipi_ds= i *dsi, if (ret < 0) return ret; =20 - clk_set_rate(dsi->vclk, mode->clock * KILO); - - /* - * Relationship between hsclk and vclk must follow - * vclk * bpp =3D hsclk * 8 * lanes - * where vclk: video clock (Hz) - * bpp: video pixel bit depth - * hsclk: DSI HS Byte clock frequency (Hz) - * lanes: number of data lanes - * - * hsclk(bit) =3D hsclk(byte) * 8 =3D hsfreq - */ - bpp =3D mipi_dsi_pixel_format_to_bpp(dsi->format); - vclk_rate =3D clk_get_rate(dsi->vclk); - if (vclk_rate !=3D mode->clock * KILO) - dev_dbg(dsi->dev, "Requested vclk rate %lu, actual %lu mismatch\n", - mode->clock * KILO, vclk_rate); - hsfreq_millihz =3D DIV_ROUND_CLOSEST_ULL(mul_u32_u32(vclk_rate, bpp * MIL= LI), dsi->lanes); + ret =3D dsi->info->dphy_conf_clks(dsi, mode->clock, &hsfreq_millihz); + if (ret < 0) + goto err_phy; =20 ret =3D dsi->info->dphy_init(dsi, hsfreq_millihz); if (ret < 0) @@ -619,6 +635,14 @@ rzg2l_mipi_dsi_bridge_mode_valid(struct drm_bridge *br= idge, if (mode->clock < dsi->info->min_dclk) return MODE_CLOCK_LOW; =20 + if (dsi->info->dphy_mode_clk_check) { + enum drm_mode_status status; + + status =3D dsi->info->dphy_mode_clk_check(dsi, mode->clock); + if (status !=3D MODE_OK) + return status; + } + return MODE_OK; } =20 @@ -836,6 +860,7 @@ static void rzg2l_mipi_dsi_remove(struct platform_devic= e *pdev) static const struct rzg2l_mipi_dsi_hw_info rzg2l_mipi_dsi_info =3D { .dphy_init =3D rzg2l_mipi_dsi_dphy_init, .dphy_exit =3D rzg2l_mipi_dsi_dphy_exit, + .dphy_conf_clks =3D rzg2l_dphy_conf_clks, .link_reg_offset =3D 0x10000, .min_dclk =3D 5803, .max_dclk =3D 148500, --=20 2.49.0 From nobody Thu Dec 18 04:32:29 2025 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96F3923A993; Fri, 30 May 2025 16:59:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624369; cv=none; b=ImY1PqvyQ3qLbMJItbFz1BFva/DZhZGNs7DW2WWEPXh/G7RJeF5B1sbsIgyRSdl0VNW/SbL4/vZm0uZOWj/h2HhHBfbwGXPBD2RhMVzSi8sxJkW3TrA6SWYo6VUPvoAIMD0ng/UMC1PTa1mJEenmJxVSYH/NL9UTONywzjv5ZlE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748624369; c=relaxed/simple; bh=FwSwMOjYbghaowUD9yiDgSeBs9yDcQBlGlKq7Dlkguk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DtOi3JEdG2VnhWBDe9CS9ho0YziHvAvjadtOVS/6mUNu0grSCvqugD7DJJcwxU+vMR/p+86v9OP+ETHsc1+jY2ZDvOUCM0YCBtDf7tC7ruWCuudTQP3RATv1D78O4r0z92+jM1ZpiuKApSsbuDZlCFeYMJHMn+RoPf+hFJx2Pyk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WeWanXor; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WeWanXor" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-3a363d15c64so1524918f8f.3; Fri, 30 May 2025 09:59:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748624366; x=1749229166; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2wyTGUJmJGL2WGesM8nfuqYiVpu2gtlcpHv+BHufplk=; b=WeWanXoreL67afh/FKG4MjrIUIL4ZGvU0SfVXeAoCCaocQvmI6gH12rkuSIsuYC1rd RcudOYghT5Eb6A0iVZdFv4FEV++AajQX+tLyOeXa6DGuxkOGqAOvYQtdrz2mTHd4JiXA 34+yct92U66plAQ1px/4IQDCGLHb5IITb/AXWj/aqS9F3W3A2NQ/+FbXkofghsk8e1aj SQkiaQ09FDzvpibhY1JVLy8D6LWlDF8CedNPdpckPhZZKguBa+OvivSC8bn59fgJACbK KwYf9Pd6/Yj3f4iWaH9xtYkwtWruCIm3Dvw1LFE+ebV6gDTqcc9yYmKtE2ydz/I69PAh yHPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748624366; x=1749229166; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2wyTGUJmJGL2WGesM8nfuqYiVpu2gtlcpHv+BHufplk=; b=h+Gk6/8l2rbaAykCWKAT2yF6mNJi2QzWprACvg9NJRWX+yAAxue/1seVejm53jVb5R vaapQF2grKYN6ND4acvlrpAc1tGasmkpxHy9w2b2r0vZmG22/qO/Nht4cZhn0aT84rSa 20/MnKqqGbhO9giT9c+Ll/voVB0BaD68W+WgonKgGZIST/PdCVDpK37kpGgJVGPnU8p+ 162KtnNuf2CffETgzoxrfEeXzFJG8Vzjjq5IxDK16oLli557IDsVlMLdfyT9zN0lDxon nhGQbjDdyxPE4NqLtRdAtaeGyII3MW90e2l611+u3CeHKiLXfn67W1oktNkgzVK1h0Ox zZCw== X-Forwarded-Encrypted: i=1; AJvYcCV9HQ5FW4kBNvsSAJUbQxhO7z2o/J7CtBvPmOsskV7pYEJubVdF4crxwpDqPX6No8aiUIque5McpDgr@vger.kernel.org, AJvYcCVe7fscPbJZAOWYg/PbqMwLSf3IfidOIPrMT3zjbOeFfB5I1zelG5AzV2ORiFTUPrdnw/YH0AYK0zFvJAD3Fgm8OrE=@vger.kernel.org, AJvYcCXFETsmPb92hBriEc+6zOY+nIjSy2oXZ+Zm3NJmRDSDVV0no/kpOwlXWd+zGxkjifR/ACvgrRN/kMR404yA@vger.kernel.org X-Gm-Message-State: AOJu0Yy6Mgj7MmdNE5mWfg7IBbDpUr2LL+vXmmr9G27ng6/ZhMwYAL0V Cc0UjycX9eO8n4gqHzwlFcGzfZ0bnKAZhy/NM6GLmhG2e5r0MkZGc7IY X-Gm-Gg: ASbGncso9eIt3B3zKMlSlpKvDgKV/paJzhiifY4Gxe8ip1VCMFQMc81Yzaa4qVadfcU gjxXyp3bB65sPCCvZM0uBBSA8s1X3lCF1GYySBLvcGWz7lV9n5pNBZA6dUR+CXj4jotQK4Oe05v xk/XpqPDfcS8ci9ymMiameOj8OCACOBATzUDvDisIqt3u+hOgBp3/AaK4Qnxaw29t1oYxsmF879 scbXpTIEVBgQEfJirRgkqxq8ZGr7pLBi+StXUD3ODnsCMcZwrbqfT1I8Z/7pEI9l1h6cIP2kcDk 2TO8STd7yrLIRCVhoYK8m8ybnJGBtpSOZ19VjLZwgGQkVsC+9cYYYlwo2FvXcAFdoGCQTAyttg1 zysiS/g7XpP2QaZRUrk5I X-Google-Smtp-Source: AGHT+IEj2mWFq52WxYW2XdXtwquiylRquF3NdO7m5fCF7V+mYsPLNiAhphxn1nLPPWljA/scPh/SBQ== X-Received: by 2002:a05:6000:220b:b0:3a4:d0c7:312b with SMTP id ffacd0b85a97d-3a4f7a35918mr3340221f8f.26.1748624365743; Fri, 30 May 2025 09:59:25 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:bcab:7ec7:2377:13b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-450d7f9efa3sm22733455e9.9.2025.05.30.09.59.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 09:59:25 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Biju Das , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v6 12/12] drm: renesas: rz-du: mipi_dsi: Add support for LPCLK clock handling Date: Fri, 30 May 2025 17:59:06 +0100 Message-ID: <20250530165906.411144-13-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250530165906.411144-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Add LPCLK clock support in the RZ/G2L MIPI DSI driver via the optional clock API. This clock is required by some SoCs like RZ/V2H(P) for proper DPHY configuration, whereas it is absent on others like RZ/G2L. Introduce a new `lpclk` field in the `rzg2l_mipi_dsi` structure and conditionally acquire the "lpclk" clock using `devm_clk_get_optional()` during probe. This allows LPCLK-aware SoCs to pass the clock via device tree without impacting existing platforms. Co-developed-by: Fabrizio Castro Signed-off-by: Fabrizio Castro Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das --- v5->v6: - No changes v4->v5: - Made use of devm_clk_get_optional() for lpclk - Added Reviewed tag from Biju v3->v4 - No changes v2->v3: - No changes v1->v2: - Added LPCLK as feature flag --- drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 5 +++++ 1 file changed, 5 insertions(+) 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 f9f2d883c40d..a31f9b6aa920 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c @@ -62,6 +62,7 @@ struct rzg2l_mipi_dsi { struct drm_bridge *next_bridge; =20 struct clk *vclk; + struct clk *lpclk; =20 enum mipi_dsi_pixel_format format; unsigned int num_data_lanes; @@ -791,6 +792,10 @@ static int rzg2l_mipi_dsi_probe(struct platform_device= *pdev) if (IS_ERR(dsi->vclk)) return PTR_ERR(dsi->vclk); =20 + dsi->lpclk =3D devm_clk_get_optional(dsi->dev, "lpclk"); + if (IS_ERR(dsi->lpclk)) + return PTR_ERR(dsi->lpclk); + dsi->rstc =3D devm_reset_control_get_optional_exclusive(dsi->dev, "rst"); if (IS_ERR(dsi->rstc)) return dev_err_probe(dsi->dev, PTR_ERR(dsi->rstc), --=20 2.49.0