From patchwork Tue Apr 1 07:00:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 3884 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 8698340D19 for ; Tue, 1 Apr 2025 09:01:33 +0200 (CEST) Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-438e180821asf23377105e9.1 for ; Tue, 01 Apr 2025 00:01:33 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1743490893; cv=pass; d=google.com; s=arc-20240605; b=iJu6BUBQ2DvCXgxHWuhgc4d/tfpszAIFf1i7A9irSzHbQrHAot2lZbLdp/O5WpKQgF yapbFjvluospFBiYRlUirxabsajevrF1E5NSHQrEop72JQ8KT8t9Wob7s3M/SVNSq92j 07m6WEXe1zmB3hfkMZ7hfJ0PJianOyifW0h7bC4sqORbhDFpv5w6n7PQRJ7YxQybm3V4 q0iyzFO9mrhtEwmGS6d+ec3rXWf53N1cFtJBy2kNb/SDD+Oqe4+6vPZYf0e2JNosfKN3 SJG6n7AenzXhu0+v067x4UKdObcTkCxNxuEVcnlsKHt+MNGMnSJD8EYMvPCzK/tI+j9J GSNg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=3B4KHGvIejqWrXVwaIDgbAskhGtqfjmN6hgxF9In9cQ=; fh=VWhw4kAmbXkcGwUqoxamD5LFyfBgSPEVvNwxGoo2AQw=; b=WfbhU2kd9psKeqgAlA8P+tjGXdA0mfbateqQ44APGmUWkYb7MDptBp8oytS1kDt9Jg jfAg9VjJ0YwD2jez70DBUulLXoOza/2rrbFFTynSIbNKu0mUB4PjyWcLuc7T5Gw0ULg3 DVq90W2tX7WBelNWcs+Bfnbxe4w0dO31ZI+IamMS/AAGo9gWppxcB8YeIMzVdvDAYgFj FfV2C2ieDygRzpaqgEyekRWC8MBuEHOwsSNbGteU6IqalWYK+zE40BMd2c40d3ynb0It Yx8cWnNXxsTiBoWOQBwdI2o1R3rxKLm8lJqPFYSVEeiijFCRlWfG/SN0nHqnbs6SfHv8 fSTw==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=HAuyOwHg; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1743490893; x=1744095693; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=3B4KHGvIejqWrXVwaIDgbAskhGtqfjmN6hgxF9In9cQ=; b=G3/HO2hqrjg3seOhXRB4dsQJrrRaV19ochjEW+Cplp+zSDl//qNPoRHM149c8VuJ9c YM7i+b+QovKcWO+idyDhxsnaj0grUkUSRkKZIM+YH84V3Q2Wu64jigDUVrYAUfbF/Msw 83iEB4yQJ+owI3DT4ZgBl9xJ1YkUFfYvgVfNg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743490893; x=1744095693; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=3B4KHGvIejqWrXVwaIDgbAskhGtqfjmN6hgxF9In9cQ=; b=DD0WypFJdh4Z1SKSUn3LnKi98DB+VBAjNOydItEWlcZIjS9FvVIPBjaOgBiGHINjqg CWberOetvtTQ7l175Fa95PlLEIKDvVczBmV9SnFMzslxtCK6VuKIgSsNaLAKifP4F5kN WCiMrnpZ1DHdj2mzch8IjW4Gd97n/oUdejM//i/biOqvzBK4p5nqMddxQzrTgoSs0vje URWr2Zia7HkaPR7s+tg86ClHElGOPdFD8WU4X/wduSiQjfVpjUMO/Gc4wfHaowxp9Xy8 BxEQzBF7lvTkUB80bNbi9Eka1e7EURfWdtNBey4M8/YebG/LtfY65EotxLA+AeK6nC6C BmCQ== X-Forwarded-Encrypted: i=2; AJvYcCVE9iUs0goaZmu1gDr4QHUKDlTs9ayKNuAJio6DZImu/HLtUfJgJOfUltrzG82UmlXvIG4+5g++pWDqqCQP@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YzuryJPDezpO8jsIX/bFOFmGVUnGcy1KgcKBdawKqJUJlMC2KQ+ 9WThOQgRoijptif8O1JVC6O9Uf/HGN4tJAy3a+aq/vvc2oxRCCPKALqzbY0CiVqpTLAcWWxQ+Q= = X-Google-Smtp-Source: AGHT+IHLJpi2gmQbyYyMbBJc23fYKSaTrEvborJm89BkBdoZhUK6+04N4/9tP2TLj+Ed/L6HxHohFw== X-Received: by 2002:a05:600c:22c1:b0:43c:f61e:6ea8 with SMTP id 5b1f17b1804b1-43dd692392cmr82873175e9.2.1743490892899; Tue, 01 Apr 2025 00:01:32 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=ARLLPALoxnIM70kPaQUWYuRfAFsBbD8/Rd8KuG6/8wsw7cto9w== Received: by 2002:a05:600c:1ca9:b0:43c:ec29:489d with SMTP id 5b1f17b1804b1-43d84ee86cdls717705e9.2.-pod-prod-04-eu; Tue, 01 Apr 2025 00:01:31 -0700 (PDT) X-Received: by 2002:a05:600c:cc8:b0:43d:b3:fb1 with SMTP id 5b1f17b1804b1-43ea5f001b7mr25631605e9.27.1743490890849; Tue, 01 Apr 2025 00:01:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1743490890; cv=none; d=google.com; s=arc-20240605; b=KePOMsZYfQFQ9S/ytrePxSmoL+cHjOqYzFnQYwSYsYgRo9z1SpMOKhxUHOi6sUWpbs iY1E4osRkrZKqFU8solpzJM8phPtjMRUUDowIc8+Q5P7Wd0VVQCDs8yg8JBjzVXrE6UF lS+A+3w8bf6wsuQbHf4eibIwXu+7Se7BJ2ic54vZbbjRtRZnoxNsbHHp2eHN2Eab72Qg WevJdVHpNfIss755Pp7aWDslS90MCZeQDX+vtQXxPCLq52j1m7KdK4igQ7q04qdW5BkE +XC/OyysHeRxCdVp/e9KLLiRJZhEfya5uLs9wjHP1+bSoaXY0pw8UZCyXWQ8InNRLQDJ 0pFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=i044n2zFt+fwDjOmTfhSbZNrYh1Q9DyCsR3YROwfPZg=; fh=oIe0PiPZCvrcmt6IQjgU+Fb1OoVcS0Yo3ov7NWbceYk=; b=Z2AXVOx7IgP2AvEnmTK4S36k+x00KxqfvC9wWBdVxe9giKB1OQO7BQfj8c53xEPtxE 7OnHRrcEQxBT9re2xtP1ipOkA4ftqNDtnXR0luZzXVKLE9E9lVK77lyVXa8py4YiXZ4a ZhkgioS5XPRtXoTnrrxjac49tmaMfAHJIrkf/Yl3xpEAx+eydJgsE+nzcElJ7i/X9PMm ZG7NCU+Jvd86WGI+yxmwFdtyIFYHnw5eDjzyArya8lTj1eNJ5Safj7m4CNr2SC9nmIsX MZY7vuZfaf5i+L3iUeNNarHTp6Ef78wLchv5EJ3GVV9+fQJLLQ6D8xMsoIeHNA/4WWwS FPng==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=HAuyOwHg; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-43d8fba29e6sor30121155e9.2.2025.04.01.00.01.30 for (Google Transport Security); Tue, 01 Apr 2025 00:01:30 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: ASbGncsqzYbjJG5RVfN9O9FjL1r+QH8J1YvEjgUx7sEI6sXJS+dhe4t5M2si2X7mHLB rGDQyqyy2OkCavWc6EdgNCrUdCrJ6/A4JD7rGcA6axl84Fx9mTu2Iib3oJzwjkHbcXMuUHslj2J KRolVbRK2P/93oMmwX0vSO8umMNH1nA4Q6dXIs/w/KFlV1MVNmKkS3g/8Vaf0aNoCD0xp9E2nV8 h4+yd4UBSWoXmsK+/UTcleGTD3ShTSWcTxV6ahHTqOujOWilE3cK/u8O5dBWnTuIbge31F5oRRb X13MB9zErccj65bxDKVjNtxZoUgNRVFTHdGwOzWaX/GqrMlnaDms2GKjGop2nBEBbilZAcbyrYc 7rvrr6WO2fQ== X-Received: by 2002:a05:600c:83c4:b0:439:91dd:cf9c with SMTP id 5b1f17b1804b1-43db6223feamr148997085e9.10.1743490890455; Tue, 01 Apr 2025 00:01:30 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.. ([2.196.40.230]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c0b66b015sm13701760f8f.54.2025.04.01.00.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 00:01:30 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Patrice Chotard , Patrick Delaunay , Tom Rini , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v2 1/6] ARM: dts: stm32: add DSI support on stm32f769 Date: Tue, 1 Apr 2025 09:00:52 +0200 Message-ID: <20250401070125.3705126-2-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> References: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=HAuyOwHg; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , [backport from Linux commit a995fd2e8b3c6defd1dcdd3fb350c224e41ea1d0] Add support for MIPI DSI Host controller. Since MIPI DSI is not available on stm32f746, the patch adds the "stm32f769.dtsi" file containing the dsi node inside. Signed-off-by: Dario Binacchi Reviewed-by: Patrice Chotard --- Changes in v2: - Add Reviewed-by tag of Patrice Chotard arch/arm/dts/stm32f769-disco-u-boot.dtsi | 41 +++++++++++------------- arch/arm/dts/stm32f769-disco.dts | 2 +- arch/arm/dts/stm32f769.dtsi | 20 ++++++++++++ 3 files changed, 39 insertions(+), 24 deletions(-) create mode 100644 arch/arm/dts/stm32f769.dtsi diff --git a/arch/arm/dts/stm32f769-disco-u-boot.dtsi b/arch/arm/dts/stm32f769-disco-u-boot.dtsi index add55c96e21f..c5ae753debe6 100644 --- a/arch/arm/dts/stm32f769-disco-u-boot.dtsi +++ b/arch/arm/dts/stm32f769-disco-u-boot.dtsi @@ -44,30 +44,25 @@ }; }; }; +}; - soc { - dsi: dsi@40016c00 { - compatible = "st,stm32-dsi"; - reg = <0x40016c00 0x800>; - resets = <&rcc STM32F7_APB2_RESET(DSI)>; - clocks = <&rcc 0 STM32F7_APB2_CLOCK(DSI)>, - <&rcc 0 STM32F7_APB2_CLOCK(LTDC)>, - <&clk_hse>; - clock-names = "pclk", "px_clk", "ref"; - bootph-all; - status = "okay"; - - ports { - port@0 { - dsi_out: endpoint { - remote-endpoint = <&panel_in>; - }; - }; - port@1 { - dsi_in: endpoint { - remote-endpoint = <&dp_out>; - }; - }; +&dsi { + clocks = <&rcc 0 STM32F7_APB2_CLOCK(DSI)>, + <&rcc 0 STM32F7_APB2_CLOCK(LTDC)>, + <&clk_hse>; + clock-names = "pclk", "px_clk", "ref"; + bootph-all; + status = "okay"; + + ports { + port@0 { + dsi_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + port@1 { + dsi_in: endpoint { + remote-endpoint = <&dp_out>; }; }; }; diff --git a/arch/arm/dts/stm32f769-disco.dts b/arch/arm/dts/stm32f769-disco.dts index d63cd2ba7eb4..ad1b442055e1 100644 --- a/arch/arm/dts/stm32f769-disco.dts +++ b/arch/arm/dts/stm32f769-disco.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include "stm32f746.dtsi" +#include "stm32f769.dtsi" #include "stm32f769-pinctrl.dtsi" #include #include diff --git a/arch/arm/dts/stm32f769.dtsi b/arch/arm/dts/stm32f769.dtsi new file mode 100644 index 000000000000..4e7d9032149c --- /dev/null +++ b/arch/arm/dts/stm32f769.dtsi @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 Dario Binacchi + */ + +#include "stm32f746.dtsi" + +/ { + soc { + dsi: dsi@40016c00 { + compatible = "st,stm32-dsi"; + reg = <0x40016c00 0x800>; + clocks = <&rcc 1 CLK_F769_DSI>, <&clk_hse>; + clock-names = "pclk", "ref"; + resets = <&rcc STM32F7_APB2_RESET(DSI)>; + reset-names = "apb"; + status = "disabled"; + }; + }; +}; From patchwork Tue Apr 1 07:00:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 3885 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id A7DB63F0CD for ; Tue, 1 Apr 2025 09:01:35 +0200 (CEST) Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-43d733063cdsf43467805e9.0 for ; Tue, 01 Apr 2025 00:01:35 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1743490895; cv=pass; d=google.com; s=arc-20240605; b=Acf5vLPNtZbYVwXBhBZwgZX5ALo0PeuDcslUjRhYcwtXrbv5KzEKZ0P4o0d2iBm90r FacayyA7zkPpfyRI3ll6d83fZxagXXim7V3Jyw/Hp+JYyY81mx0HbAzse5EZGUB57+p5 YcG8/w6k0Ikuu6AJraZ9wbs9ouTrp+3nVpyx/VeyICN7aNgSJu0XbBWlpj/e/54a7A7K T0raeb7KuVoNFaEijh/xLc/bm5M9JJwCUvkDbrhREWuGUDC1u0UqgZZq8wGfR5yFsst9 SnVmuFewJNeHTsaMzuadc452dWHIKkA7aIF5cCRYBPiqq+lxzkWzDr5dF8eYaofVTD7y iNXw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=cuBxZqLd+qtkvNNBKZNfTG9K3fcpiDYurC1b/6c3iXk=; fh=qj3vrKqDTXyRv+B2BTWVYVQ3UjX+W8YMbcfqnlUqm3I=; b=KCmlLlpE+nPYRvleGaR/inNSSgqL6JasSHGmyToh/NZbMc0mB4HtpN0tSqRqZCzZrn 3mUw3bJlS6oXJ4uAg0A8TmJcjoM1XmZFmv2iJ8jNGKyvdaN2nosTK5ABDENSvSPga58h jSmiVOspRIgufcb6dKbSPktB2enyz2ab1ONkjnVYPJKZEJY7IE3h2ybMqjnzKwLg2e5Z O4HDSj1DU5nBuUJtnRGcAjJdxfT/hWCvQb49bDRsravbUydoWG2vbcnqswfDqHEyi3Mx CZXIPz9AElGetiSYUzf/noHMTvNbqXXUDnFsC/M9W1BYcOiM150RlMMf9penqCj2v/AQ fJXw==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Rd9Ai1dd; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1743490895; x=1744095695; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=cuBxZqLd+qtkvNNBKZNfTG9K3fcpiDYurC1b/6c3iXk=; b=Bu+5d4yoR+eSSmuaZV1R+1MIycPmc29S/bQc6BTWtuzLyhm6IbUoU1Mb41hCBJtPXl M0s4jN9G7y/6r7YCmz/TcJKmhGCyqhu2dibIiZOM1NSBCnzbUdBZA3du8K9UWvvbQAuv M/Spo9QBKZxVIQKbuA+8xZOSSuE8ER/l1pHfU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743490895; x=1744095695; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cuBxZqLd+qtkvNNBKZNfTG9K3fcpiDYurC1b/6c3iXk=; b=ZPlvL37Z26Ib1VvByMuEsMauCYAFuWfpelT/2uB2E1u8PgMfeQ0ujdzsXdmxfXNIp2 9tIov9PkvS1/xjT8Uu5rEtqLEpG7BT/driQvSECzHw68eTjcPdKl8hfLOa1vZxWuJKPo tfxOZ60sGF9UApyjnsH21aYBxnIDb5zBHZ6osIWFo6zUTPR+crbu8vOWvDpo4YxlgMDw t6FbPQrzVH0PSSAZ9FlX3+RoXBZ4Ete4OAJL2y28RRhTEJHMByS5qWnjK61Qm4JPNKpj SoULiKO4VvFonCmNl9Q1v9gjsiDPP+YxhFl7S6kjtdlraHiW9UOIIb4BzszDM11gcmuX iUMQ== X-Forwarded-Encrypted: i=2; AJvYcCVvYqUVE3UOsLJaYVuqj46NNi4cNAkOqZnK2LOONC90reEW3xKwrRi5zffarASrXBYJ88rGpERpDfl9+Ud+@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YzMigvW86Jpw7xZBXl/Y8pULpIk+m0JuMPVYYqkEsUlaPHYCc3A 5K+HvUgJeIIiSvIaK1+2e8qkbDCuCKgUsRij9jaB6xnbVviJ6ksUEAe8S4thef0SWQ== X-Google-Smtp-Source: AGHT+IFUT+uh5EoeE30ZMhJwFEAqgIHEJWuzUfexMOz2xniQFvNqTf+03pDTQRV9C1ky6sdQgcQ9uA== X-Received: by 2002:a05:6000:1888:b0:38d:eb33:79c2 with SMTP id ffacd0b85a97d-39c120f78ffmr8197724f8f.32.1743490895250; Tue, 01 Apr 2025 00:01:35 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=ARLLPAKij9wtX4n5U6JX8q5/1It0YE6yF5cghBDF/POqa2UjKw== Received: by 2002:a05:600c:2309:b0:43b:c5a5:513c with SMTP id 5b1f17b1804b1-43d969d21b2ls494485e9.1.-pod-prod-02-eu; Tue, 01 Apr 2025 00:01:33 -0700 (PDT) X-Received: by 2002:a05:600c:198f:b0:43c:fb8e:aec0 with SMTP id 5b1f17b1804b1-43db61dffcamr77755535e9.1.1743490892618; Tue, 01 Apr 2025 00:01:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1743490892; cv=none; d=google.com; s=arc-20240605; b=giP/y6YrhqEIQRKQDU9K0knrvF7aFmDIQTE4rcLF0ifLrU5Fzc3bP/ZtlcwkfkfAb6 N6Uzm9ZNPyUqcX8XMG2hK9bTjB1xvG77urrx28fehz6oHIzrg/4eon5WU1397pJWhkY9 T+nUHgfpetwgGeid0/uGMgzkodZNHvwU1pNwmApc59N4/2wmgtXneclh9p2FkcuNlxxQ aI8zKO12Uc+3TyoSJciQ0ZQuz0miKuIGJJhmwps+kVxia/bqCZkNXSwa1WQNz9kIFVRm jz5me0e7Ja8Djm/0M3N0bxslAv6c8sZzB++30Javdfky2pmHIQQVlyCuXRikn8k+cbli KJ5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=aKT0Cu/By76Hhujbb5ado8LtBC72J3w7y5Yed87n07U=; fh=oIe0PiPZCvrcmt6IQjgU+Fb1OoVcS0Yo3ov7NWbceYk=; b=EXfWZWh9xjbm0Rq4ysgqJuvrBG11mrA8AYSOxVPExObJAymnHzDO69NXB5vW4Rn17B t3AIlBEwWvpC/1x+UzK48krv9JoNwgQGqk9MsPjfq2yi56BEQWqiSN8U6pXmCqZxhZ2W gh7zGyr6+R1ftPn1lEGcjGCVIT00yjehny5f/gwVwFEmBQ20buYvdQOgHmVMVgxpSniF 9HmbVZMIHcbUMzR3lhq1EoF7F+ag5YL+l+eHgGk3KVnnpFKrVAuYO+4QhQu4bVjHx1KS YXs7FEHqzifp6m3IAPtxq+Nkkeq7kAVpre3skiYjrJm4nPDioWmyyTO7t7/ALNWAHmFI zhVQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Rd9Ai1dd; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-43ea5731f46sor8583145e9.8.2025.04.01.00.01.32 for (Google Transport Security); Tue, 01 Apr 2025 00:01:32 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: ASbGncuw5lXOeiDpElBsSqIuJ3UlFh0HnojkhS470LhFPj2YFImdPSEe/0Cq+AGOz8K GICQebRsKSfJaK5ZL9B7CvS0LL3kv/WbytDWkQpoAD3Db7us0NoDuq899UaA4t4K1r/zgpXNW9V 9THVCHE+qA21Qxk/YllnyuhB3Qt0f8PiAEqWFYleYzD8gOx8osH3LQ7UXTgU9NNv82vy6F7s3c4 2l4j7LSPk6jLS5+gPZOmvq25bVtkPyynfZce5i8jW6qyjpzxTTpQ8QxvbMHKbKtaK8zBWSo30Ib QiR87dQRwnlTb4geGhLhIsQ/Wdo2cwwDF3LUYMBSmwj7TXcZaM/rW1wWQkD0rPgeJqdmnV01CtM ZWYSrEV/BAA== X-Received: by 2002:a5d:64ee:0:b0:391:2fe4:de0a with SMTP id ffacd0b85a97d-39c120ccabfmr10167645f8f.2.1743490891794; Tue, 01 Apr 2025 00:01:31 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.. ([2.196.40.230]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c0b66b015sm13701760f8f.54.2025.04.01.00.01.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 00:01:31 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Patrice Chotard , Patrick Delaunay , Tom Rini , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v2 2/6] ARM: dts: stm32: rename mmc_vcard to vcc-3v3 on stm32f769-disco Date: Tue, 1 Apr 2025 09:00:53 +0200 Message-ID: <20250401070125.3705126-3-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> References: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Rd9Ai1dd; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , [backport from Linux commit f1317928fa03203929665af61e6d9ac0e29ea84d] In the schematics of document UM2033, the power supply for the micro SD card is the same 3v3 voltage that is used to power other devices on the board. By generalizing the name of the voltage regulator, it can be referenced by other nodes in the device tree without creating misunderstandings. This patch is preparatory for future developments. Signed-off-by: Dario Binacchi Reviewed-by: Patrice Chotard --- Changes in v2: - Add Reviewed-by tag of Patrice Chotard arch/arm/dts/stm32f769-disco.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/dts/stm32f769-disco.dts b/arch/arm/dts/stm32f769-disco.dts index ad1b442055e1..b4e240a8e3eb 100644 --- a/arch/arm/dts/stm32f769-disco.dts +++ b/arch/arm/dts/stm32f769-disco.dts @@ -56,9 +56,9 @@ clock-names = "main_clk"; }; - mmc_vcard: mmc_vcard { + vcc_3v3: vcc-3v3 { compatible = "regulator-fixed"; - regulator-name = "mmc_vcard"; + regulator-name = "vcc_3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; @@ -96,7 +96,7 @@ &sdio2 { status = "okay"; - vmmc-supply = <&mmc_vcard>; + vmmc-supply = <&vcc_3v3>; cd-gpios = <&gpioi 15 GPIO_ACTIVE_LOW>; broken-cd; pinctrl-names = "default", "opendrain"; From patchwork Tue Apr 1 07:00:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 3886 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id E848A40D1A for ; Tue, 1 Apr 2025 09:01:35 +0200 (CEST) Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-43cf3168b87sf28572205e9.2 for ; Tue, 01 Apr 2025 00:01:35 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1743490895; cv=pass; d=google.com; s=arc-20240605; b=TXqm+v315XEQuWLpTJqLw/Trq55XGJj9FrpR0rfMlnn6SjoOqbDJTYfUpdzoOsQTMt c8xOhDPD4pSUS64EaQnnEBOzh7ddZROMgrpcL34RanBjzn47XLLydHFuHFsNUFt1OTns kPN6o5tYkIuqqZKc8PAoFg43Cehtq8DnyDYZ5A0YtUNnVQtq9i8Nkfrc/wSCkTgyRk2g yGKWn4juQvCGX8rQsk3dDunuvA/W3nvNzsUXKZeWwLFkEVMqi1QrdHZyT3NtyCAGzpjQ a2CuuJXKXx1il/cf6edt7qc2toaEbq3O53cFN+eZIpo3VtOYImp/jAaViGZolU0l5Xmi le0A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=Kd5r3e2me9sxrdF5DKFkkVnohF8/6u7MZir7wteg4jk=; fh=qopJ8v952bc/wjzhtQhTLV1CBau31KUfAXxEAUBCvnU=; b=KUnWX1R9FiIPpIt3tnY/mrfPuOdZohE5YoYfUZmuIs6YlwM32G2kw6zQwejChJ6R1m gKqZ1Y5eh+lgsXOQnhjzhy2jSEgXy/nbD+QU+AhgdQDzLVk01xijoTr6BYwcXKnnYlv3 FFWRTPwAlTfquB+tMqbIdaD7UOlCYM4WTS5GViTtKAGatWYyV2uyPW3LfdHVjFX8YYEh KYi7GMdHr1hQJB7v8FLcGDzWjsNOvqcVcwd+e8U0X/IaLXZike3I1Wssles2QAltJBLH xA6yZTtfjke3T5ZJtfktKYGKmtZ7Schbzw4XREVa5ZMM7Ff/0H059rdya1fPGebFxnoU E4ew==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=PP3ITXfQ; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1743490895; x=1744095695; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Kd5r3e2me9sxrdF5DKFkkVnohF8/6u7MZir7wteg4jk=; b=ceUb8CxHcbklsIghN5rTRqCJAodXNdKqGn9GfJG7mmsKGrX6vt0MVKzgkAw6tLa9K3 GGQKbxUB6RF4JYtgPe09nXeqlYVZi/hrinjGQB4ilno71rvnBk+X7riEjgn76Q6BuNVk IO3qsCW45HsF9Dyq4LfCn7+J804CIfpTIipSI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743490895; x=1744095695; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Kd5r3e2me9sxrdF5DKFkkVnohF8/6u7MZir7wteg4jk=; b=TNffPZMf2kZw9kSp2dmMJEi+HSej2Nnp184LTXEq6VXEdZiKZ65yuzbFyK1ETVMwsW Gq7m0JyHsNVQCV0oeoOm7Cy438j9oQ8n5/FfbFW3LvY7MYjaok4qZUKdiHsN4eL0KBlE XMAR4BdasFsTDAc2yk0MBZjNVIqINddqhczahIoZkYPm1TRzC1pmhCyJBrKd1I9KVhH3 49fw9WrBzP9YFwfjK2MnU8Mn+MoCGNydZXP9h9aQejyC2fFSca7kKKM+SxVufPV2VTFl UkwRbfnSgYY4yctELWFyQN4TkVcLF9m2iOyGUBYeu10BBABac5efB5bteFR87QWS22cG FykQ== X-Forwarded-Encrypted: i=2; AJvYcCXBLcjzk9iCQzC5Ks7pIrNBcQWQ++UmBiOz9bjQG+gL5klHypOR6O1Lq+hTlQ13uALo1dKdSbDySyIMcR1t@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YwQx3ehJ8J5/Rl1k5vanHkvgHbkdqHVz8vU74Xsa6J5sTjDKuMO 2MK/Lgrkk4vE51X8v4/JjpAFMIBi2Lq8Fs/u+s6BmD/Lg9maT2Nn7iswVbfr9T7CLA== X-Google-Smtp-Source: AGHT+IF6LcfZPoJ11ytz/bc9Z82kFeEcT/uRA3gjiRqbuWmbeGIrslNQyiz1cTIODXYQyRpjOgGjPQ== X-Received: by 2002:a05:600c:450a:b0:43d:ed:ad07 with SMTP id 5b1f17b1804b1-43ea7cdfdf8mr11851725e9.29.1743490895514; Tue, 01 Apr 2025 00:01:35 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=ARLLPAKVsZo0FTW1qgall1CWjEY9QZCns3kb+C55RpdcWWBlJA== Received: by 2002:a5d:6d8a:0:b0:39a:c467:8d17 with SMTP id ffacd0b85a97d-39ad15d734fls2412237f8f.2.-pod-prod-01-eu; Tue, 01 Apr 2025 00:01:33 -0700 (PDT) X-Received: by 2002:a5d:6d86:0:b0:391:4999:776c with SMTP id ffacd0b85a97d-39c2366a850mr1201814f8f.40.1743490893524; Tue, 01 Apr 2025 00:01:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1743490893; cv=none; d=google.com; s=arc-20240605; b=Lvr+E/V/+pUInkbSPUmpnT0zdrXF8whwCWgcCbnJ44Y424EFMeb+qbaAtAdh5qXiEK YazRIzL1JZUhvMQqzgtBDTGicWFpx/XNemAkdlXuQklo/MDlAhYF4DMGQ7fMPGm4sn5e MslJVtAY4xsLtyCbEq7jGfFV6JLe5bIz7fIvwAQh5H3y0ixMToJw7NYJjJYvxPDJ+EEs tdKSUz4epInaU4aML+2UH6fjk1sjTd1/sHlUe0nXhBEUPp6YUXPKFxs9sqco0kOSyI7+ MKl2iQ1Kq8M8LmKoTEcJWocgfu1QJryrGsT6WG8p5iKjo9TC2u7UfBrNFYC5VwkColH5 9AnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=8gMeInNBRAkCkwoVlTM98xEWy0g3akZgL6kxDi5yA3g=; fh=oIe0PiPZCvrcmt6IQjgU+Fb1OoVcS0Yo3ov7NWbceYk=; b=SLOR9MZTsYSuEVsPJKoet8nqdcafOkdbPTrTNIZco2x31qf7tetsjkPt1hR2Gr7Kv2 311AfL/oCUuAVmDH4NJw4WnRM6pejkFe7uxWb5WIEFHfl5+JaGRrAuhNdTGS6vlY0OBC qFyUwuQqNQaZfj/DFiXO9tnlfK72KjxicZw8LAAlmOHGrtftSJJSghhpnTNlZ0Z+pl6b tUSf49Q7Ilj7CyshpwGuhHjtAMEpg6WVydXBhZjPpm+xk3CoIJBKCrfDV6dziHzj1IR7 JwxTArnOdNKJhquJ7wYs/EJ+OKhiSpqixRD+lOWIKvIlfxq4V95Dskdf3zfRQiqn4kip wHdA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=PP3ITXfQ; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id ffacd0b85a97d-39c265eca2csor132863f8f.6.2025.04.01.00.01.33 for (Google Transport Security); Tue, 01 Apr 2025 00:01:33 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: ASbGncujZcFP5/sJze+pvarrK5WdAUEDDUGMkW+t96562sIDDkQUjjYunQ9Ew+KI3rI bDP7ZU51dykw8yibVgRWfW19TZrRQcG+h2yvqrRZLAIvzIuIXnGKwB5b3F0zrsve9iEgE6w/82k IvIfBJSf2qDQ7L95HtmIxmQQl3if/lqJpHFUTJTHkK8R4PtNd5hMo/vQDFk4s6UL1jt7swvkWG+ DaBVYhwW2rClzY2yNl5GU/oUBmIQdeMSFb3mJM1MZN/QsRBj8XtVjltPG/ZPZ3Xy/pbCf8F8WOE OygECRe27H6hSHtkLBHzSk2JkmzoBCXOInF1P2WQ0MF+wXFCn+WnQZz138gdZNng9Kr4kPOD0SC 94+NprI7Hig== X-Received: by 2002:a5d:59a5:0:b0:390:f9d0:5e3 with SMTP id ffacd0b85a97d-39c23646fe3mr1063138f8f.1.1743490893132; Tue, 01 Apr 2025 00:01:33 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.. ([2.196.40.230]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c0b66b015sm13701760f8f.54.2025.04.01.00.01.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 00:01:32 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Patrice Chotard , Patrick Delaunay , Tom Rini , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v2 3/6] ARM: dts: stm32: add display support on stm32f769-disco Date: Tue, 1 Apr 2025 09:00:54 +0200 Message-ID: <20250401070125.3705126-4-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> References: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=PP3ITXfQ; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , [backport from Linux commit 598e5adfeb6062f5d4d352c0ef888b2b29d7e215] The patch adds display support on the stm32f769-disco board. Signed-off-by: Dario Binacchi Reviewed-by: Patrice Chotard --- Changes in v2: - Add Reviewed-by tag of Patrice Chotard arch/arm/dts/stm32f769-disco-u-boot.dtsi | 34 -------------- arch/arm/dts/stm32f769-disco.dts | 58 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 34 deletions(-) diff --git a/arch/arm/dts/stm32f769-disco-u-boot.dtsi b/arch/arm/dts/stm32f769-disco-u-boot.dtsi index c5ae753debe6..16a9eecd4a99 100644 --- a/arch/arm/dts/stm32f769-disco-u-boot.dtsi +++ b/arch/arm/dts/stm32f769-disco-u-boot.dtsi @@ -32,18 +32,6 @@ compatible = "st,led1"; led-gpio = <&gpioj 5 0>; }; - - panel: panel { - compatible = "orisetech,otm8009a"; - reset-gpios = <&gpioj 15 1>; - status = "okay"; - - port { - panel_in: endpoint { - remote-endpoint = <&dsi_out>; - }; - }; - }; }; &dsi { @@ -52,33 +40,11 @@ <&clk_hse>; clock-names = "pclk", "px_clk", "ref"; bootph-all; - status = "okay"; - - ports { - port@0 { - dsi_out: endpoint { - remote-endpoint = <&panel_in>; - }; - }; - port@1 { - dsi_in: endpoint { - remote-endpoint = <&dp_out>; - }; - }; - }; }; <dc { clocks = <&rcc 0 STM32F7_APB2_CLOCK(LTDC)>; bootph-all; - - ports { - port@0 { - dp_out: endpoint { - remote-endpoint = <&dsi_in>; - }; - }; - }; }; &fmc { diff --git a/arch/arm/dts/stm32f769-disco.dts b/arch/arm/dts/stm32f769-disco.dts index b4e240a8e3eb..3fd5140ec5eb 100644 --- a/arch/arm/dts/stm32f769-disco.dts +++ b/arch/arm/dts/stm32f769-disco.dts @@ -24,6 +24,19 @@ reg = <0xC0000000 0x1000000>; }; + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + linux,dma { + compatible = "shared-dma-pool"; + linux,dma-default; + no-map; + size = <0x100000>; + }; + }; + aliases { serial0 = &usart1; }; @@ -78,6 +91,45 @@ clock-frequency = <25000000>; }; +&dsi { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dsi_in: endpoint { + remote-endpoint = <<dc_out_dsi>; + }; + }; + + port@1 { + reg = <1>; + dsi_out: endpoint { + remote-endpoint = <&dsi_panel_in>; + }; + }; + }; + + panel0: panel@0 { + compatible = "orisetech,otm8009a"; + reg = <0>; /* dsi virtual channel (0..3) */ + reset-gpios = <&gpioj 15 GPIO_ACTIVE_LOW>; + power-supply = <&vcc_3v3>; + status = "okay"; + + port { + dsi_panel_in: endpoint { + remote-endpoint = <&dsi_out>; + }; + }; + }; +}; + &i2c1 { pinctrl-0 = <&i2c1_pins_b>; pinctrl-names = "default"; @@ -88,6 +140,12 @@ <dc { status = "okay"; + + port { + ltdc_out_dsi: endpoint { + remote-endpoint = <&dsi_in>; + }; + }; }; &rtc { From patchwork Tue Apr 1 07:00:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 3887 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id AAF8540D19 for ; Tue, 1 Apr 2025 09:01:37 +0200 (CEST) Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-43d734da1a3sf25594255e9.0 for ; Tue, 01 Apr 2025 00:01:37 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1743490897; cv=pass; d=google.com; s=arc-20240605; b=Q5I3gwQ9IE1GZyLP82e+1fsGkU0ImBU6l9zELm6/Ua7ltb1t9Uz8HfPEp4laMnWphl pxn/lhgntcgiRc6HJWIeEqKTWyTQ3vzg6k++UN1EU1iBHZqBPggJGwC3sL8sijr5vEqN WB3AL3PK2DULiehJ6AOMZFP2tZg0zGVaWl2p+kRLHhdEPKJmk4BzqTlXGl+v5ly6ipbT ZYXPdUMZr/o/jY7gIbKT+E1FcTtriOYrANaqivNe31JK26YSk7zGOOtii+OZhiDnZDML 35QYi6LrQVeZZiYNKsT8WfCNKxb9yp45XzimE+HEaaMmdWNQgkQwnDpVgxyy5VEXvlb2 cAkA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=ZUkM8mnYjQD2pd+aO9UFiszdQOJYY19YqfX3CxtzJv8=; fh=EyH11kp95TK5MTOl8NXyTFuflx0oi5T2hbHF4Ql6qgo=; b=JZFtCbJeumfx/lLbhoNIs0FaMvoP4Uleo+BfcUvPt6Kyx/v3oKeQa8bJGvkDN5jhg3 O/gBYh3zoR2OvlrrYyQCLUJIGEyfDMvAkMBGYurlJfVGL8YIVSMfK2KPjJSZdqDwuF10 ci43iMPzTQZHW2FAm6yzPZg3UDm3tSVP5zHgflAxXk3e1onX/MeilN3x09aYyjhjaCpL n5C6LiJSQoKQoUXiX6nnyqnxDRCmOm28mspBffuVuAzDCS1CSF3apIH6SFOqW5IjRV5c uUt1UDOn2Id7eORZTXSUuooBpWOmhgqZpwHiFMyy1Zv/WySX74u1Rj8qg7k2g7LuYZ/R nONA==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=hu2GgHWJ; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1743490897; x=1744095697; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=ZUkM8mnYjQD2pd+aO9UFiszdQOJYY19YqfX3CxtzJv8=; b=lY5V/B64Vg4Tt9tl/JSOCDaxGDheAULefovRAcl+T0KpUC/T5nc34KEFEDzOk0bFnG Nk06rXD1pMzVNKpmgSvoIvMLrr74SmrCFkhYYeBY85Uie7hD0j32mh2KhxR7Ff6kB/Ez LLCXHOq7RY9vrpgo5luZcswi4EYfoRwVu+ID8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743490897; x=1744095697; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ZUkM8mnYjQD2pd+aO9UFiszdQOJYY19YqfX3CxtzJv8=; b=UvWwtSlo7oclwdcQ8wws2wf9nYKLJpFkxPZNLWZ0xLZrnB74VGcLuZWYZAoB1aEWDE 8bCTnKztMJJri5/Yre12jDHA+murcMbPBZG5zutxGlsijV0POiernfEsvWFD4AiWJWOX JweWOvhUSZh86aEqecnR6x4TRSUkji775lwWBhQJFkt00bOhMqlsDot506qj7H1OqPb5 OUzmftGsFkLqf5H33zCQAc98CG+zIasKFqz6W+Zekld0qrWipCmVkOmihrHawiP7sHj3 7JFi0ZP+QuSBhrxlVLrSN3YeEm3wOf15bv51BQmt99439+k4127prun9Vhn0MH7+vXym HVTQ== X-Forwarded-Encrypted: i=2; AJvYcCWf9y61bUlU43rXip0O422s8oQCUDavflIgCmRLpRrpGWGQhwovwKewzqGsmHWWNXdq1ZCdGtIPiXjVROMl@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YxR3DEwIWue+KeM2R8iuGECUKOrJID/nMrfpru+tIj1v/EdtBcA YBU+tepcQmq0g/mPrTvhx2aFbWnFiy2rckLQdVlJEDhwZm/ualu0vI1LFnJ2nUCJZ6puRRgmMg= = X-Google-Smtp-Source: AGHT+IH5CGeJ/Ig3KCK+9p8fS5cyutPZt/s056ERJ0kPCT+xflGsQKEo6Bj68/IJ+BaHPXFNn4roRw== X-Received: by 2002:a05:600c:444d:b0:43c:f85d:1245 with SMTP id 5b1f17b1804b1-43db6249f80mr93451655e9.17.1743490897277; Tue, 01 Apr 2025 00:01:37 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=ARLLPAL7Zl0sSS6FCJsquiH6oB3cvD8zDCu6Fy93LmpY0oIS8g== Received: by 2002:a05:600c:1d90:b0:43d:41a2:b75b with SMTP id 5b1f17b1804b1-43d90305bfcls24006925e9.1.-pod-prod-06-eu; Tue, 01 Apr 2025 00:01:35 -0700 (PDT) X-Received: by 2002:a5d:59a6:0:b0:390:df75:ddc4 with SMTP id ffacd0b85a97d-39c12118052mr8309776f8f.44.1743490895223; Tue, 01 Apr 2025 00:01:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1743490895; cv=none; d=google.com; s=arc-20240605; b=EfypNJ4YTTAiVW0i70H0TKIY9ElDAQu70SpedmJsxbxWn1BZx4H2BvUzcO9zcYAtrb XL2IzvMaaUS0v5ezihSMEQgQ46Y8G/iHRtCAiY58EtqN8Bws60FSlwZERXgZJpWHWtdM EetO921Uyat05lpx1BGYFLzameM2x1ZCnR4zuHYslxeuD7fo+g2IQ8l+HHDI1a6mI2DS bMxPCbwdwG7psjZlRIbmBgRatloFhQowsHOWUCKrxGNyRyw8Fh/G60XiRqE2DpNMbOBb m0FD3htPODHQIjxUI2HlqtFQ2LeJxvTSkRA7XBGfkjrF9xJfi+dAR8Hr0BqtmsQb77O0 LTgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=MhbjrMtU46LbUzCOqT3OHGhciFay44vkvwWGQgfiFJo=; fh=xkHRt/nh5bxEK49S71/qnA8U6oR1EKWD42o4+k+xKK8=; b=cpdlGjDCWuewYcJWkRMOvtcmKicHf5KN5Aaj8hc/FMX/B+2kIlH0oBWD70uQzCL271 ml7aXUgjRebS1XV0c5EfARywrR40XFGssXUJtkX3TA+WqG0YV9YrS9yo+D8c1y5qG7BN PzTinP4PxogFcQyuhxbYbE3jx+Fq0kNOXyTVAIf0iSs87uKFTK1h5cSXW31XgcuSpey2 bdWh7FD/S7dlXsffhkEog/Fqa4HlU+MyrjyMBo8eP09esxf02afUXhiWupvvtaf9JFVF jMZpbn6CCjTVvI3Z7TUeUlHuzm6+B9Bsv6TgnkeAZs6rvUIPo1oHbdBryYl6zYvFAmrP Ir/g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=hu2GgHWJ; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id ffacd0b85a97d-39c0b79d492sor2386197f8f.7.2025.04.01.00.01.35 for (Google Transport Security); Tue, 01 Apr 2025 00:01:35 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: ASbGnctl+3zmQhGKakEYNxsyap7WJ/YE6JzSBSJSM34Vw/ecU05FAsfjq222w3vFfil mzcQwzuYoKLc/iTEjoy8NNx5ymCDWvEgmQOMuqnqPFhTC9tekKeT3YUWtw4lGxFz5WxekmK619k qC4FqZoZjWwAoFlUuAKdDoZ8/lmNB+ztArRMvD+M6AwdHW8Gh6tQkmQwtwSUZQbphegIwmH14fI G83x5lkch00cbNNDR3AyEaJsKfMBNwePwugeMkDigLU2bmX4x0DFO7ZFkbxMyUwxMoc0uXnQH82 a+EDyeAuMgKMCoKuFFK7RhXDV2F9hNOdxvi01opL4Xk9RIGiEfPPPa3KcZvlJaaryv7otPkze8v bIAA+jxlAaA== X-Received: by 2002:a05:6000:420a:b0:391:3998:2660 with SMTP id ffacd0b85a97d-39c120cb8aemr8465713f8f.7.1743490894837; Tue, 01 Apr 2025 00:01:34 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.. ([2.196.40.230]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c0b66b015sm13701760f8f.54.2025.04.01.00.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 00:01:34 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Patrice Chotard , Adam Ford , Andre Przywara , Jonas Karlman , Kever Yang , Marek Vasut , Neil Armstrong , Oliver Gaskell , Patrick Delaunay , Prasad Kummari , Sumit Garg , Tom Rini , Tony Dinh , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v2 4/6] ARM: dts: add stm32f769-disco-mb1166-reva09 Date: Tue, 1 Apr 2025 09:00:55 +0200 Message-ID: <20250401070125.3705126-5-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> References: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=hu2GgHWJ; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , [backport from Linux commit db4fc2c79c533986795a7750e9a12caf9d620b48] As reported in the section 8.3 (i. e. Board revision history) of document UM2033 (i. e. Discovery kit with STM32F769NI MCU) these are the changes related to the board revision addressed by the patch: - Board MB1166 revision A-09: - LCD FRIDA FRD397B25009-D-CTK replaced by FRIDA FRD400B25025-A-CTK The patch adds the DTS support for the new display which belongs to the the Novatek NT35510-based panel family. Signed-off-by: Dario Binacchi Reviewed-by: Patrice Chotard --- Changes in v2: - Add Reviewed-by tag of Patrice Chotard arch/arm/dts/Makefile | 1 + .../dts/stm32f769-disco-mb1166-reva09-u-boot.dtsi | 6 ++++++ arch/arm/dts/stm32f769-disco-mb1166-reva09.dts | 13 +++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 arch/arm/dts/stm32f769-disco-mb1166-reva09-u-boot.dtsi create mode 100644 arch/arm/dts/stm32f769-disco-mb1166-reva09.dts diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 267b0179a5f2..8719b58152fd 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -523,6 +523,7 @@ dtb-$(CONFIG_STM32F4) += stm32f429-disco.dtb \ dtb-$(CONFIG_STM32F7) += stm32f746-disco.dtb \ stm32f769-disco.dtb \ + stm32f769-disco-mb1166-reva09.dtb \ stm32746g-eval.dtb dtb-$(CONFIG_STM32H7) += stm32h743i-disco.dtb \ stm32h743i-eval.dtb \ diff --git a/arch/arm/dts/stm32f769-disco-mb1166-reva09-u-boot.dtsi b/arch/arm/dts/stm32f769-disco-mb1166-reva09-u-boot.dtsi new file mode 100644 index 000000000000..43dd3b993d5e --- /dev/null +++ b/arch/arm/dts/stm32f769-disco-mb1166-reva09-u-boot.dtsi @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0+ +// +// Copyright (c) 2025 Dario Binacchi +// + +#include diff --git a/arch/arm/dts/stm32f769-disco-mb1166-reva09.dts b/arch/arm/dts/stm32f769-disco-mb1166-reva09.dts new file mode 100644 index 000000000000..ff7ff32371d0 --- /dev/null +++ b/arch/arm/dts/stm32f769-disco-mb1166-reva09.dts @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2023 Dario Binacchi + */ + +#include "stm32f769-disco.dts" + +&panel0 { + compatible = "frida,frd400b25025", "novatek,nt35510"; + vddi-supply = <&vcc_3v3>; + vdd-supply = <&vcc_3v3>; + /delete-property/power-supply; +}; From patchwork Tue Apr 1 07:00:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 3888 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 18DFF3F0CD for ; Tue, 1 Apr 2025 09:01:40 +0200 (CEST) Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-43d5ca7c86asf31559325e9.0 for ; Tue, 01 Apr 2025 00:01:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1743490900; cv=pass; d=google.com; s=arc-20240605; b=NqYL+Uv0INH4vz9CmlKy9KbFZmCS7sN9h1uFwiuqwUQGaJQKCmbwFb8IkJB/Cv0BTl ixWX1iph9F8ekS9A5d/YiKohc9uDnG/V36RBA0MFQEjiOfYJa+nbDScyDdNTHQwj/1On FkO47Hq5vKNIn7KcuHQGlSAzdp/IBHbsNzPiHsgFk1XN1eUkLdHYww7wvGxpTmBCxKmd WfIhVFA8kKjJqbAJAufNSPLtf2OT7mOMgYeE6up+wYG9AkCV4flSNumPva3ISC4qF61h qwFswJed91UHCAZPG1u55u/p7M8vAZET8VH1Yjm7ihbx54gr/0izSKx3kzwsQx8jJgCR 6rXA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=4SWl1/7xzyWDaKUs2skMLkHETyzHhen+y26qSIWRDkA=; fh=ttSdBnpsTymJpYZYnkGT7JzU7DWqfu1jgjegwO+9/Xg=; b=G7OLmr7x0nqyXwvQ60nJhcGe04yPdv6z/BZBUlC6pu/EPBGLlmkymFYXrwt3EhaUes n6vnVAUDoE9YqCUqKaPznLk45G4ugv57j29kagu0afPh5nZuzUMNL1w67I1oDtwDe9RK J6evzDLbTR9kwcSKM9Zxf0u6GEEkqddhHFyw4P5WmAjoy8kGkvbFDn8gRRwOPbb/x/xN yKvwdfo2ybwwq3105GmRN1TCQ8N7x4dDTjNf6fIvZFFF3WItNuRg3znR9VNn5xvtyXUt P391iLgIOeQN/rR42np0bHJvUEe9iwXJV9QYdOAyVw8uM65LQqHLRCzrKJyAM4dLJVDR b3dA==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=VvhQF89F; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1743490900; x=1744095700; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=4SWl1/7xzyWDaKUs2skMLkHETyzHhen+y26qSIWRDkA=; b=F5AnhgEzuwDt1KtwWxeF6X142U6E5a9esR02RWuBJ/R+3AqWXHZRJv3ub/UamAT5/8 tZlH01BD3RYKIB2mVDnqLwigK2HKhBe7xMjzv/wWIRf8wTDWOAlINtdPwWCI1ojsNoUI 3IlIVzJ71G9Og/EbsuNzGOxbVusp7kQCP/ZJo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743490900; x=1744095700; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4SWl1/7xzyWDaKUs2skMLkHETyzHhen+y26qSIWRDkA=; b=anfjBnlTnyGcCxzJiMNrh8FVCJTEDstaEdEakVxKGgj4RVMLUekMCsL2V0z/YXfPja bUzn/xWbUu0NgV31j5Wf9/ae2aYOEYezOji5fWLwolkpYwkoLZYI1JG6Yy7T0xErXOWG J0YHayMWfEpiJvW1doV1EUrlSFuxGlOZFajbKRBOOYlLYMmum6w+EgM7LQvzxuNu5idy HL8zS55rgX1jVUapuynDAxYeHh6cbLajEpLpqRXyqnDL9cV8kfrCySzbsw7iHb8WxE4K H3I8jxRYLuwb0fBvbMa7cGk/OLEO0GwKupDRqf4SZ6NWRmPlh4nykByazPHGFcRZ0wIS sVHg== X-Forwarded-Encrypted: i=2; AJvYcCUD6MCyAXl/llwSbcjLPnpilyzjG5DyVNscKmUDTDWdDb9XJ89PTjk/u/D4eGW/oqY83ArEQRFkHB76YgXF@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YzzAnVy7JrY2/PACzusurTJrsf2a8b8V+3vIXi/FSScC2KuF6TB ZqRvYMhE0V2Io51LnKG1cYLsqqLGKf6VgXffFKF8E8bQagyWuvkOeWym0t4jt02b2Q== X-Google-Smtp-Source: AGHT+IFqzN18E7R3bkg/wDmut4dJXW0My2VqkuIzGVEZy6FqCJWL2g2oK2fEgqo+nCstcyk58O0VxA== X-Received: by 2002:a05:6000:2d88:b0:39c:1257:feb9 with SMTP id ffacd0b85a97d-39c23674b07mr656251f8f.57.1743490899664; Tue, 01 Apr 2025 00:01:39 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=ARLLPAIugUel4z2u5n/PzD7QFlBM/0m3ep6lZObTjuV1Kfq8wA== Received: by 2002:a05:600c:3b14:b0:43c:ec16:c43b with SMTP id 5b1f17b1804b1-43d84ed937dls20837735e9.1.-pod-prod-01-eu; Tue, 01 Apr 2025 00:01:38 -0700 (PDT) X-Received: by 2002:a05:6000:40cb:b0:391:4873:7940 with SMTP id ffacd0b85a97d-39c23674895mr1191339f8f.54.1743490897575; Tue, 01 Apr 2025 00:01:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1743490897; cv=none; d=google.com; s=arc-20240605; b=b5K7GilamCEJKp0QMk8/pL16WSOYGNYztK7rSb2QGTwbePg9vSnottnvwvz2LJPNF0 SkMhv+Lp/ipeyQjIw+SUac9ZtABg1gXRl9uvStptcll6BQ0RxSXiByQZ5/RJAsfEukF+ u2qopJt7ewTiolPmsWDGsUEUD5KI3pk3ofcTpgI5YBvk/EdgGSeRoCPLWCxjsy/TZc8x FPqNvdy8n3afWyKDxZGYYfw1c53DFD80MHCJ0xQE4hICvwCV7B1cBRXkh+sQXhqvT1nj Y7AEexOy5aML5f4je4avamKuUbfGGP3ivKfR6ukAQSUqBZ4eU65v8uxcnqdWfuV16/0I FeLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=fc7IGr3zEyh5V8Z0aOGW8M/PqJyBXEtBtHwIQI/gQLo=; fh=K11565CxLaRBs0yTzie3PZIJSh6AtXjqtEbwMUlBPU0=; b=YBS4HdanOuxTii8P8cUK0nsBTcY8sSFob70e0rmsc8/NBqCXEFBHtTEeCXUDlp7X9I GMNIua4njQ7TGn3TKBx/3nxFTbw1uLI6BZsrDq+YN2tomO5eH+C8khKwrve/X3sFzxhH xhvOkWzeM78hZ9rQi86vWwrdRpD6PmtdNgMPTMJjhAemf2pRPDn8ofsApgg7waSu1Veq FkZjbH47Ve86ALKEwpvri08PK/W+uKBUE4JowfRtTX4ZSbPaUMulA5ZboKMgMcc1XoL2 1m2ieTBlgIooNQ5Mk7FWDxf6sgwEJgIypODL8FjyDQ3M0xPzs6g6vWVIqYP6OTVdG1hl pQcw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=VvhQF89F; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id ffacd0b85a97d-39c1119c990sor2132360f8f.4.2025.04.01.00.01.37 for (Google Transport Security); Tue, 01 Apr 2025 00:01:37 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: ASbGnctmlFhyNY4nVklIKjVGJ8jjOFR/4RI5yzR/Op3TvcxC+bU3YDabl9z/3L24Gz0 dooYdUbhkrZpgHo5eTPXhCS5bPW4qymOSQdtoMDta9m9HsTcm9i7Zfgm13nbRGGt/34E/YiKLJf bylZPsCXFqoUaEd9hGjCwF5X3u10sccOjRWqWkYibMM8WEPmK/JgJEQQ3p+QRgZurh5FEXMePgR BO13dewOou1E/9OEODY//n1EmI62/97mPKnMzElMtaQs6nw7e5Ft0jP+pcO7tLokRGVX3y2rY+F slu39NQwEtTPMaR+pD4wJh1RhM4k6QHStD3Cw9HjYpJo0cEtm0qCLFYNaS8Y27WIFgwavSaaK9v OKw6QLXSBWg== X-Received: by 2002:a05:6000:2481:b0:391:4743:6db1 with SMTP id ffacd0b85a97d-39c2364b4b7mr1441144f8f.20.1743490896775; Tue, 01 Apr 2025 00:01:36 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.. ([2.196.40.230]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c0b66b015sm13701760f8f.54.2025.04.01.00.01.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 00:01:36 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Anatolij Gustschin , Anton Bambura , =?utf-8?q?Jonas_Schw=C3=B6bel?= , Simon Glass , Svyatoslav Ryhel , Tom Rini Subject: [PATCH v2 5/6] video: support FRIDA FRD400B25025-A-CTK Date: Tue, 1 Apr 2025 09:00:56 +0200 Message-ID: <20250401070125.3705126-6-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> References: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=VvhQF89F; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , [backport from Linux commits 9b26d5c044d6a29ebfb1845408e0f2a7c5f89818 and 219a1f49094f50bf9c382830d06149e677f76bed] The patch adds the FRIDA FRD400B25025-A-CTK panel, which belongs to the Novatek NT35510-based panel family. Signed-off-by: Dario Binacchi --- (no changes since v1) drivers/video/Kconfig | 7 + drivers/video/Makefile | 1 + drivers/video/novatek-nt35510.c | 1253 +++++++++++++++++++++++++++++++ 3 files changed, 1261 insertions(+) create mode 100644 drivers/video/novatek-nt35510.c diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 3c3cebaacd02..76dc2d65a6d3 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -550,6 +550,13 @@ config VIDEO_LCD_HIMAX_HX8394 Say Y here if you want to enable support for Himax HX8394 dsi 4dl panel. +config VIDEO_LCD_NOVATEK_NT35510 + bool "Novatek NT35510 DSI LCD panel support" + select VIDEO_MIPI_DSI + help + Say Y here if you want to enable support for Novatek nt35510 + dsi panel. + config VIDEO_LCD_ORISETECH_OTM8009A bool "OTM8009A DSI LCD panel support" select VIDEO_MIPI_DSI diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 5a00438ce064..ff9c9e1c2512 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -59,6 +59,7 @@ obj-$(CONFIG_VIDEO_LCD_ENDEAVORU) += endeavoru-panel.o obj-$(CONFIG_VIDEO_LCD_HIMAX_HX8394) += himax-hx8394.o obj-$(CONFIG_VIDEO_LCD_HITACHI_TX18D42VM) += hitachi_tx18d42vm_lcd.o obj-$(CONFIG_VIDEO_LCD_LG_LD070WX3) += lg-ld070wx3.o +obj-$(CONFIG_VIDEO_LCD_NOVATEK_NT35510) += novatek-nt35510.o obj-$(CONFIG_VIDEO_LCD_ORISETECH_OTM8009A) += orisetech_otm8009a.o obj-$(CONFIG_VIDEO_LCD_RAYDIUM_RM68200) += raydium-rm68200.o obj-$(CONFIG_VIDEO_LCD_RENESAS_R61307) += renesas-r61307.o diff --git a/drivers/video/novatek-nt35510.c b/drivers/video/novatek-nt35510.c new file mode 100644 index 000000000000..f3432939c0cb --- /dev/null +++ b/drivers/video/novatek-nt35510.c @@ -0,0 +1,1253 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2025 Amarula Solutions, Dario Binacchi + * + * Inspired from the Linux kernel driver panel-novatek-nt35510.c + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define NT35510_CMD_CORRECT_GAMMA BIT(0) +#define NT35510_CMD_CONTROL_DISPLAY BIT(1) +#define NT35510_CMD_SETVCMOFF BIT(2) + +#define MCS_CMD_MAUCCTR 0xF0 /* Manufacturer command enable */ +#define MCS_CMD_READ_ID1 0xDA +#define MCS_CMD_READ_ID2 0xDB +#define MCS_CMD_READ_ID3 0xDC +#define MCS_CMD_MTP_READ_SETTING 0xF8 /* Uncertain about name */ +#define MCS_CMD_MTP_READ_PARAM 0xFF /* Uncertain about name */ + +/* + * These manufacturer commands are available after we enable manufacturer + * command set (MCS) for page 0. + */ +#define NT35510_P0_DOPCTR 0xB1 +#define NT35510_P0_SDHDTCTR 0xB6 +#define NT35510_P0_GSEQCTR 0xB7 +#define NT35510_P0_SDEQCTR 0xB8 +#define NT35510_P0_SDVPCTR 0xBA +#define NT35510_P0_DPFRCTR1 0xBD +#define NT35510_P0_DPFRCTR2 0xBE +#define NT35510_P0_DPFRCTR3 0xBF +#define NT35510_P0_DPMCTR12 0xCC + +#define NT35510_P0_DOPCTR_LEN 2 +#define NT35510_P0_GSEQCTR_LEN 2 +#define NT35510_P0_SDEQCTR_LEN 4 +#define NT35510_P0_SDVPCTR_LEN 1 +#define NT35510_P0_DPFRCTR1_LEN 5 +#define NT35510_P0_DPFRCTR2_LEN 5 +#define NT35510_P0_DPFRCTR3_LEN 5 +#define NT35510_P0_DPMCTR12_LEN 3 + +#define NT35510_DOPCTR_0_RAMKP BIT(7) /* Contents kept in sleep */ +#define NT35510_DOPCTR_0_DSITE BIT(6) /* Enable TE signal */ +#define NT35510_DOPCTR_0_DSIG BIT(5) /* Enable generic read/write */ +#define NT35510_DOPCTR_0_DSIM BIT(4) /* Enable video mode on DSI */ +#define NT35510_DOPCTR_0_EOTP BIT(3) /* Support EoTP */ +#define NT35510_DOPCTR_0_N565 BIT(2) /* RGB or BGR pixel format */ +#define NT35510_DOPCTR_1_TW_PWR_SEL BIT(4) /* TE power selector */ +#define NT35510_DOPCTR_1_CRGB BIT(3) /* RGB or BGR byte order */ +#define NT35510_DOPCTR_1_CTB BIT(2) /* Vertical scanning direction */ +#define NT35510_DOPCTR_1_CRL BIT(1) /* Source driver data shift */ +#define NT35510_P0_SDVPCTR_PRG BIT(2) /* 0 = normal operation, 1 = VGLO */ +#define NT35510_P0_SDVPCTR_AVDD 0 /* source driver output = AVDD */ +#define NT35510_P0_SDVPCTR_OFFCOL 1 /* source driver output = off color */ +#define NT35510_P0_SDVPCTR_AVSS 2 /* source driver output = AVSS */ +#define NT35510_P0_SDVPCTR_HI_Z 3 /* source driver output = High impedance */ + +/* + * These manufacturer commands are available after we enable manufacturer + * command set (MCS) for page 1. + */ +#define NT35510_P1_SETAVDD 0xB0 +#define NT35510_P1_SETAVEE 0xB1 +#define NT35510_P1_SETVCL 0xB2 +#define NT35510_P1_SETVGH 0xB3 +#define NT35510_P1_SETVRGH 0xB4 +#define NT35510_P1_SETVGL 0xB5 +#define NT35510_P1_BT1CTR 0xB6 +#define NT35510_P1_BT2CTR 0xB7 +#define NT35510_P1_BT3CTR 0xB8 +#define NT35510_P1_BT4CTR 0xB9 /* VGH boosting times/freq */ +#define NT35510_P1_BT5CTR 0xBA +#define NT35510_P1_PFMCTR 0xBB +#define NT35510_P1_SETVGP 0xBC +#define NT35510_P1_SETVGN 0xBD +#define NT35510_P1_SETVCMOFF 0xBE +#define NT35510_P1_VGHCTR 0xBF /* VGH output ctrl */ +#define NT35510_P1_SET_GAMMA_RED_POS 0xD1 +#define NT35510_P1_SET_GAMMA_GREEN_POS 0xD2 +#define NT35510_P1_SET_GAMMA_BLUE_POS 0xD3 +#define NT35510_P1_SET_GAMMA_RED_NEG 0xD4 +#define NT35510_P1_SET_GAMMA_GREEN_NEG 0xD5 +#define NT35510_P1_SET_GAMMA_BLUE_NEG 0xD6 + +/* AVDD and AVEE setting 3 bytes */ +#define NT35510_P1_AVDD_LEN 3 +#define NT35510_P1_AVEE_LEN 3 +#define NT35510_P1_VCL_LEN 3 +#define NT35510_P1_VGH_LEN 3 +#define NT35510_P1_VGL_LEN 3 +#define NT35510_P1_VGP_LEN 3 +#define NT35510_P1_VGN_LEN 3 +#define NT35510_P1_VCMOFF_LEN 2 +/* BT1CTR thru BT5CTR setting 3 bytes */ +#define NT35510_P1_BT1CTR_LEN 3 +#define NT35510_P1_BT2CTR_LEN 3 +#define NT35510_P1_BT3CTR_LEN 3 +#define NT35510_P1_BT4CTR_LEN 3 +#define NT35510_P1_BT5CTR_LEN 3 +/* 52 gamma parameters times two per color: positive and negative */ +#define NT35510_P1_GAMMA_LEN 52 + +#define NT35510_WRCTRLD_BCTRL BIT(5) +#define NT35510_WRCTRLD_A BIT(4) +#define NT35510_WRCTRLD_DD BIT(3) +#define NT35510_WRCTRLD_BL BIT(2) +#define NT35510_WRCTRLD_DB BIT(1) +#define NT35510_WRCTRLD_G BIT(0) + +#define NT35510_WRCABC_OFF 0 +#define NT35510_WRCABC_UI_MODE 1 +#define NT35510_WRCABC_STILL_MODE 2 +#define NT35510_WRCABC_MOVING_MODE 3 + +/** + * struct nt35510_config - the display-specific NT35510 configuration + * + * Some of the settings provide an array of bytes, A, B C which mean: + * A = normal / idle off mode + * B = idle on mode + * C = partial / idle off mode + * + * Gamma correction arrays are 10bit numbers, two consecutive bytes + * makes out one point on the gamma correction curve. The points are + * not linearly placed along the X axis, we get points 0, 1, 3, 5 + * 7, 11, 15, 23, 31, 47, 63, 95, 127, 128, 160, 192, 208, 224, 232, + * 240, 244, 248, 250, 252, 254, 255. The voltages tuples form + * V0, V1, V3 ... V255, with 0x0000 being the lowest voltage and + * 0x03FF being the highest voltage. + * + * Each value must be strictly higher than the previous value forming + * a rising curve like this: + * + * ^ + * | V255 + * | V254 + * | .... + * | V5 + * | V3 + * | V1 + * | V0 + * +-------------------------------------------> + * + * The details about all settings can be found in the NT35510 Application + * Note. + */ +struct nt35510_config { + /** + * @width_mm: physical panel width [mm] + */ + u32 width_mm; + /** + * @height_mm: physical panel height [mm] + */ + u32 height_mm; + /** + * @timings: display timings + */ + struct display_timing timings; + /** + * @mode_flags: DSI operation mode related flags + */ + unsigned long mode_flags; + /** + * @cmds: enable DSI commands + */ + u32 cmds; + /** + * @avdd: setting for AVDD ranging from 0x00 = 6.5V to 0x14 = 4.5V + * in 0.1V steps the default is 0x05 which means 6.0V + */ + u8 avdd[NT35510_P1_AVDD_LEN]; + /** + * @bt1ctr: setting for boost power control for the AVDD step-up + * circuit (1) + * bits 0..2 in the lower nibble controls PCK, the booster clock + * frequency for the step-up circuit: + * 0 = Hsync/32 + * 1 = Hsync/16 + * 2 = Hsync/8 + * 3 = Hsync/4 + * 4 = Hsync/2 + * 5 = Hsync + * 6 = Hsync x 2 + * 7 = Hsync x 4 + * bits 4..6 in the upper nibble controls BTP, the boosting + * amplification for the step-up circuit: + * 0 = Disable + * 1 = 1.5 x VDDB + * 2 = 1.66 x VDDB + * 3 = 2 x VDDB + * 4 = 2.5 x VDDB + * 5 = 3 x VDDB + * The defaults are 4 and 4 yielding 0x44 + */ + u8 bt1ctr[NT35510_P1_BT1CTR_LEN]; + /** + * @avee: setting for AVEE ranging from 0x00 = -6.5V to 0x14 = -4.5V + * in 0.1V steps the default is 0x05 which means -6.0V + */ + u8 avee[NT35510_P1_AVEE_LEN]; + /** + * @bt2ctr: setting for boost power control for the AVEE step-up + * circuit (2) + * bits 0..2 in the lower nibble controls NCK, the booster clock + * frequency, the values are the same as for PCK in @bt1ctr. + * bits 4..5 in the upper nibble controls BTN, the boosting + * amplification for the step-up circuit. + * 0 = Disable + * 1 = -1.5 x VDDB + * 2 = -2 x VDDB + * 3 = -2.5 x VDDB + * 4 = -3 x VDDB + * The defaults are 4 and 3 yielding 0x34 + */ + u8 bt2ctr[NT35510_P1_BT2CTR_LEN]; + /** + * @vcl: setting for VCL ranging from 0x00 = -2.5V to 0x11 = -4.0V + * in 1V steps, the default is 0x00 which means -2.5V + */ + u8 vcl[NT35510_P1_VCL_LEN]; + /** + * @bt3ctr: setting for boost power control for the VCL step-up + * circuit (3) + * bits 0..2 in the lower nibble controls CLCK, the booster clock + * frequency, the values are the same as for PCK in @bt1ctr. + * bits 4..5 in the upper nibble controls BTCL, the boosting + * amplification for the step-up circuit. + * 0 = Disable + * 1 = -0.5 x VDDB + * 2 = -1 x VDDB + * 3 = -2 x VDDB + * The defaults are 4 and 2 yielding 0x24 + */ + u8 bt3ctr[NT35510_P1_BT3CTR_LEN]; + /** + * @vgh: setting for VGH ranging from 0x00 = 7.0V to 0x0B = 18.0V + * in 1V steps, the default is 0x08 which means 15V + */ + u8 vgh[NT35510_P1_VGH_LEN]; + /** + * @bt4ctr: setting for boost power control for the VGH step-up + * circuit (4) + * bits 0..2 in the lower nibble controls HCK, the booster clock + * frequency, the values are the same as for PCK in @bt1ctr. + * bits 4..5 in the upper nibble controls BTH, the boosting + * amplification for the step-up circuit. + * 0 = AVDD + VDDB + * 1 = AVDD - AVEE + * 2 = AVDD - AVEE + VDDB + * 3 = AVDD x 2 - AVEE + * The defaults are 4 and 3 yielding 0x34 + */ + u8 bt4ctr[NT35510_P1_BT4CTR_LEN]; + /** + * @vgl: setting for VGL ranging from 0x00 = -2V to 0x0f = -15V in + * 1V steps, the default is 0x08 which means -10V + */ + u8 vgl[NT35510_P1_VGL_LEN]; + /** + * @bt5ctr: setting for boost power control for the VGL step-up + * circuit (5) + * bits 0..2 in the lower nibble controls LCK, the booster clock + * frequency, the values are the same as for PCK in @bt1ctr. + * bits 4..5 in the upper nibble controls BTL, the boosting + * amplification for the step-up circuit. + * 0 = AVEE + VCL + * 1 = AVEE - AVDD + * 2 = AVEE + VCL - AVDD + * 3 = AVEE x 2 - AVDD + * The defaults are 3 and 2 yielding 0x32 + */ + u8 bt5ctr[NT35510_P1_BT5CTR_LEN]; + /** + * @vgp: setting for VGP, the positive gamma divider voltages + * VGMP the high voltage and VGSP the low voltage. + * The first byte contains bit 8 of VGMP and VGSP in bits 4 and 0 + * The second byte contains bit 0..7 of VGMP + * The third byte contains bit 0..7 of VGSP + * VGMP 0x00 = 3.0V .. 0x108 = 6.3V in steps of 12.5mV + * VGSP 0x00 = 0V .. 0x111 = 3.7V in steps of 12.5mV + */ + u8 vgp[NT35510_P1_VGP_LEN]; + /** + * @vgn: setting for VGN, the negative gamma divider voltages, + * same layout of bytes as @vgp. + */ + u8 vgn[NT35510_P1_VGN_LEN]; + /** + * @vcmoff: setting the DC VCOM offset voltage + * The first byte contains bit 8 of VCM in bit 0 and VCMOFFSEL in bit 4. + * The second byte contains bits 0..7 of VCM. + * VCMOFFSEL the common voltage offset mode. + * VCMOFFSEL 0x00 = VCOM .. 0x01 Gamma. + * The default is 0x00. + * VCM the VCOM output voltage (VCMOFFSEL = 0) or the internal register + * offset for gamma voltage (VCMOFFSEL = 1). + * VCM 0x00 = 0V/0 .. 0x118 = 3.5V/280 in steps of 12.5mV/1step + * The default is 0x00 = 0V/0. + */ + u8 vcmoff[NT35510_P1_VCMOFF_LEN]; + /** + * @dopctr: setting optional control for display + * ERR bits 0..1 in the first byte is the ERR pin output signal setting. + * 0 = Disable, ERR pin output low + * 1 = ERR pin output CRC error only + * 2 = ERR pin output ECC error only + * 3 = ERR pin output CRC and ECC error + * The default is 0. + * N565 bit 2 in the first byte is the 16-bit/pixel format selection. + * 0 = R[4:0] + G[5:3] & G[2:0] + B[4:0] + * 1 = G[2:0] + R[4:0] & B[4:0] + G[5:3] + * The default is 0. + * DIS_EoTP_HS bit 3 in the first byte is "DSI protocol violation" error + * reporting. + * 0 = reporting when error + * 1 = not reporting when error + * DSIM bit 4 in the first byte is the video mode data type enable + * 0 = Video mode data type disable + * 1 = Video mode data type enable + * The default is 0. + * DSIG bit 5 int the first byte is the generic r/w data type enable + * 0 = Generic r/w disable + * 1 = Generic r/w enable + * The default is 0. + * DSITE bit 6 in the first byte is TE line enable + * 0 = TE line is disabled + * 1 = TE line is enabled + * The default is 0. + * RAMKP bit 7 in the first byte is the frame memory keep/loss in + * sleep-in mode + * 0 = contents loss in sleep-in + * 1 = contents keep in sleep-in + * The default is 0. + * CRL bit 1 in the second byte is the source driver data shift + * direction selection. This bit is XOR operation with bit RSMX + * of 3600h command. + * 0 (RMSX = 0) = S1 -> S1440 + * 0 (RMSX = 1) = S1440 -> S1 + * 1 (RMSX = 0) = S1440 -> S1 + * 1 (RMSX = 1) = S1 -> S1440 + * The default is 0. + * CTB bit 2 in the second byte is the vertical scanning direction + * selection for gate control signals. This bit is XOR operation + * with bit ML of 3600h command. + * 0 (ML = 0) = Forward (top -> bottom) + * 0 (ML = 1) = Reverse (bottom -> top) + * 1 (ML = 0) = Reverse (bottom -> top) + * 1 (ML = 1) = Forward (top -> bottom) + * The default is 0. + * CRGB bit 3 in the second byte is RGB-BGR order selection. This + * bit is XOR operation with bit RGB of 3600h command. + * 0 (RGB = 0) = RGB/Normal + * 0 (RGB = 1) = BGR/RB swap + * 1 (RGB = 0) = BGR/RB swap + * 1 (RGB = 1) = RGB/Normal + * The default is 0. + * TE_PWR_SEL bit 4 in the second byte is the TE output voltage + * level selection (only valid when DSTB_SEL = 0 or DSTB_SEL = 1, + * VSEL = High and VDDI = 1.665~3.3V). + * 0 = TE output voltage level is VDDI + * 1 = TE output voltage level is VDDA + * The default is 0. + */ + u8 dopctr[NT35510_P0_DOPCTR_LEN]; + /** + * @madctl: Memory data access control + * RSMY bit 0 is flip vertical. Flips the display image top to down. + * RSMX bit 1 is flip horizontal. Flips the display image left to right. + * MH bit 2 is the horizontal refresh order. + * RGB bit 3 is the RGB-BGR order. + * 0 = RGB color sequence + * 1 = BGR color sequence + * ML bit 4 is the vertical refresh order. + * MV bit 5 is the row/column exchange. + * MX bit 6 is the column address order. + * MY bit 7 is the row address order. + */ + u8 madctl; + /** + * @sdhdtctr: source output data hold time + * 0x00..0x3F = 0..31.5us in steps of 0.5us + * The default is 0x05 = 2.5us. + */ + u8 sdhdtctr; + /** + * @gseqctr: EQ control for gate signals + * GFEQ_XX[3:0]: time setting of EQ step for falling edge in steps + * of 0.5us. + * The default is 0x07 = 3.5us + * GREQ_XX[7:4]: time setting of EQ step for rising edge in steps + * of 0.5us. + * The default is 0x07 = 3.5us + */ + u8 gseqctr[NT35510_P0_GSEQCTR_LEN]; + /** + * @sdeqctr: Source driver control settings, first byte is + * 0 for mode 1 and 1 for mode 2. Mode 1 uses two steps and + * mode 2 uses three steps meaning EQS3 is not used in mode + * 1. Mode 2 is default. The last three parameters are EQS1, EQS2 + * and EQS3, setting the rise time for each equalizer step: + * 0x00 = 0.0 us to 0x0f = 7.5 us in steps of 0.5us. The default + * is 0x07 = 3.5 us. + */ + u8 sdeqctr[NT35510_P0_SDEQCTR_LEN]; + /** + * @sdvpctr: power/voltage behaviour during vertical porch time + */ + u8 sdvpctr; + /** + * @t1: the number of pixel clocks on one scanline, range + * 0x100 (258 ticks) .. 0x3FF (1024 ticks) so the value + 1 + * clock ticks. + */ + u16 t1; + /** + * @vbp: vertical back porch toward the PANEL note: not toward + * the DSI host; these are separate interfaces, in from DSI host + * and out to the panel. + */ + u8 vbp; + /** + * @vfp: vertical front porch toward the PANEL. + */ + u8 vfp; + /** + * @psel: pixel clock divisor: 0 = 1, 1 = 2, 2 = 4, 3 = 8. + */ + u8 psel; + /** + * @dpmctr12: Display timing control 12 + * Byte 1 bit 4 selects LVGL voltage level: 0 = VGLX, 1 = VGL_REG + * Byte 1 bit 1 selects gate signal mode: 0 = non-overlap, 1 = overlap + * Byte 1 bit 0 selects output signal control R/L swap, 0 = normal + * 1 = swap all O->E, L->R + * Byte 2 is CLW delay clock for CK O/E and CKB O/E signals: + * 0x00 = 0us .. 0xFF = 12.75us in 0.05us steps + * Byte 3 is FTI_H0 delay time for STP O/E signals: + * 0x00 = 0us .. 0xFF = 12.75us in 0.05us steps + */ + u8 dpmctr12[NT35510_P0_DPMCTR12_LEN]; + /** + * @gamma_corr_pos_r: Red gamma correction parameters, positive + */ + u8 gamma_corr_pos_r[NT35510_P1_GAMMA_LEN]; + /** + * @gamma_corr_pos_g: Green gamma correction parameters, positive + */ + u8 gamma_corr_pos_g[NT35510_P1_GAMMA_LEN]; + /** + * @gamma_corr_pos_b: Blue gamma correction parameters, positive + */ + u8 gamma_corr_pos_b[NT35510_P1_GAMMA_LEN]; + /** + * @gamma_corr_neg_r: Red gamma correction parameters, negative + */ + u8 gamma_corr_neg_r[NT35510_P1_GAMMA_LEN]; + /** + * @gamma_corr_neg_g: Green gamma correction parameters, negative + */ + u8 gamma_corr_neg_g[NT35510_P1_GAMMA_LEN]; + /** + * @gamma_corr_neg_b: Blue gamma correction parameters, negative + */ + u8 gamma_corr_neg_b[NT35510_P1_GAMMA_LEN]; + /** + * @wrdisbv: write display brightness + * 0x00 value means the lowest brightness and 0xff value means + * the highest brightness. + * The default is 0x00. + */ + u8 wrdisbv; + /** + * @wrctrld: write control display + * G bit 0 selects gamma curve: 0 = Manual, 1 = Automatic + * DB bit 1 selects display brightness: 0 = Manual, 1 = Automatic + * BL bit 2 controls backlight control: 0 = Off, 1 = On + * DD bit 3 controls display dimming: 0 = Off, 1 = On + * A bit 4 controls LABC block: 0 = Off, 1 = On + * BCTRL bit 5 controls brightness block: 0 = Off, 1 = On + */ + u8 wrctrld; + /** + * @wrcabc: write content adaptive brightness control + * There is possible to use 4 different modes for content adaptive + * image functionality: + * 0: Off + * 1: User Interface Image (UI-Mode) + * 2: Still Picture Image (Still-Mode) + * 3: Moving Picture Image (Moving-Mode) + * The default is 0 + */ + u8 wrcabc; + /** + * @wrcabcmb: write CABC minimum brightness + * Set the minimum brightness value of the display for CABC + * function. + * 0x00 value means the lowest brightness for CABC and 0xff + * value means the highest brightness for CABC. + * The default is 0x00. + */ + u8 wrcabcmb; +}; + +/** + * struct nt35510 - state container for the NT35510 panel + */ +struct nt35510_panel_priv { + const struct nt35510_config *conf; + struct udevice *vdd_reg; + struct udevice *vddi_reg; + struct gpio_desc *reset; +}; + +/* Manufacturer command has strictly this byte sequence */ +static const u8 nt35510_mauc_mtp_read_param[] = { 0xAA, 0x55, 0x25, 0x01 }; +static const u8 nt35510_mauc_mtp_read_setting[] = { 0x01, 0x02, 0x00, 0x20, + 0x33, 0x13, 0x00, 0x40, + 0x00, 0x00, 0x23, 0x02 }; +static const u8 nt35510_mauc_select_page_0[] = { 0x55, 0xAA, 0x52, 0x08, 0x00 }; +static const u8 nt35510_mauc_select_page_1[] = { 0x55, 0xAA, 0x52, 0x08, 0x01 }; +static const u8 nt35510_vgh_on[] = { 0x01 }; + +#define NT35510_ROTATE_0_SETTING 0x02 +#define NT35510_ROTATE_180_SETTING 0x00 + +static inline struct mipi_dsi_device *to_mipi_dsi_device(struct udevice *dev) +{ + struct mipi_dsi_panel_plat *plat = dev_get_plat(dev); + + return plat->device; +} + +static inline const struct nt35510_config *to_panel_config(struct udevice *dev) +{ + struct nt35510_panel_priv *priv = dev_get_priv(dev); + + return priv->conf; +} + +static int nt35510_send_long(struct udevice *dev, u8 cmd, u8 cmdlen, + const u8 *seq) +{ + struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev); + const u8 *seqp = seq; + int cmdwritten = 0; + int chunk = cmdlen; + int ret; + + if (chunk > 15) + chunk = 15; + ret = mipi_dsi_dcs_write(dsi, cmd, seqp, chunk); + if (ret < 0) { + dev_err(dev, "error sending DCS command seq cmd %02x\n", cmd); + return ret; + } + cmdwritten += chunk; + seqp += chunk; + + while (cmdwritten < cmdlen) { + chunk = cmdlen - cmdwritten; + if (chunk > 15) + chunk = 15; + ret = mipi_dsi_generic_write(dsi, seqp, chunk); + if (ret < 0) { + dev_err(dev, "error sending generic write seq %02x\n", cmd); + return ret; + } + cmdwritten += chunk; + seqp += chunk; + } + dev_dbg(dev, "sent command %02x %02x bytes\n", cmd, cmdlen); + return 0; +} + +static int nt35510_setup_power(struct udevice *dev) +{ + const struct nt35510_config *conf = to_panel_config(dev); + int ret; + + ret = nt35510_send_long(dev, NT35510_P1_SETAVDD, + NT35510_P1_AVDD_LEN, + conf->avdd); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_BT1CTR, + NT35510_P1_BT1CTR_LEN, + conf->bt1ctr); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SETAVEE, + NT35510_P1_AVEE_LEN, + conf->avee); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_BT2CTR, + NT35510_P1_BT2CTR_LEN, + conf->bt2ctr); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SETVCL, + NT35510_P1_VCL_LEN, + conf->vcl); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_BT3CTR, + NT35510_P1_BT3CTR_LEN, + conf->bt3ctr); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SETVGH, + NT35510_P1_VGH_LEN, + conf->vgh); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_BT4CTR, + NT35510_P1_BT4CTR_LEN, + conf->bt4ctr); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_VGHCTR, + ARRAY_SIZE(nt35510_vgh_on), + nt35510_vgh_on); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SETVGL, + NT35510_P1_VGL_LEN, + conf->vgl); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_BT5CTR, + NT35510_P1_BT5CTR_LEN, + conf->bt5ctr); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SETVGP, + NT35510_P1_VGP_LEN, + conf->vgp); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SETVGN, + NT35510_P1_VGN_LEN, + conf->vgn); + if (ret) + return ret; + + if (conf->cmds & NT35510_CMD_SETVCMOFF) { + ret = nt35510_send_long(dev, NT35510_P1_SETVCMOFF, + NT35510_P1_VCMOFF_LEN, + conf->vcmoff); + if (ret) + return ret; + } + + /* Typically 10 ms */ + mdelay(10); + + return 0; +} + +static int nt35510_setup_display(struct udevice *dev) +{ + struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev); + const struct nt35510_config *conf = to_panel_config(dev); + u8 dpfrctr[NT35510_P0_DPFRCTR1_LEN]; + int ret; + + ret = nt35510_send_long(dev, NT35510_P0_DOPCTR, + NT35510_P0_DOPCTR_LEN, + conf->dopctr); + if (ret) + return ret; + + ret = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_ADDRESS_MODE, &conf->madctl, + sizeof(conf->madctl)); + if (ret < 0) + return ret; + + ret = mipi_dsi_dcs_write(dsi, NT35510_P0_SDHDTCTR, &conf->sdhdtctr, + sizeof(conf->sdhdtctr)); + if (ret < 0) + return ret; + + ret = nt35510_send_long(dev, NT35510_P0_GSEQCTR, + NT35510_P0_GSEQCTR_LEN, + conf->gseqctr); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P0_SDEQCTR, + NT35510_P0_SDEQCTR_LEN, + conf->sdeqctr); + if (ret) + return ret; + + ret = mipi_dsi_dcs_write(dsi, NT35510_P0_SDVPCTR, + &conf->sdvpctr, 1); + if (ret < 0) + return ret; + + /* + * Display timing control for active and idle off mode: + * the first byte contains + * the two high bits of T1A and second byte the low 8 bits, and + * the valid range is 0x100 (257) to 0x3ff (1023) representing + * 258..1024 (+1) pixel clock ticks for one scanline. At 20MHz pixel + * clock this covers the range of 12.90us .. 51.20us in steps of + * 0.05us, the default is 0x184 (388) representing 389 ticks. + * The third byte is VBPDA, vertical back porch display active + * and the fourth VFPDA, vertical front porch display active, + * both given in number of scanlines in the range 0x02..0xff + * for 2..255 scanlines. The fifth byte is 2 bits selecting + * PSEL for active and idle off mode, how much the 20MHz clock + * is divided by 0..3. This needs to be adjusted to get the right + * frame rate. + */ + dpfrctr[0] = (conf->t1 >> 8) & 0xFF; + dpfrctr[1] = conf->t1 & 0xFF; + /* Vertical back porch */ + dpfrctr[2] = conf->vbp; + /* Vertical front porch */ + dpfrctr[3] = conf->vfp; + dpfrctr[4] = conf->psel; + ret = nt35510_send_long(dev, NT35510_P0_DPFRCTR1, + NT35510_P0_DPFRCTR1_LEN, + dpfrctr); + if (ret) + return ret; + /* For idle and partial idle off mode we decrease front porch by one */ + dpfrctr[3]--; + ret = nt35510_send_long(dev, NT35510_P0_DPFRCTR2, + NT35510_P0_DPFRCTR2_LEN, + dpfrctr); + if (ret) + return ret; + ret = nt35510_send_long(dev, NT35510_P0_DPFRCTR3, + NT35510_P0_DPFRCTR3_LEN, + dpfrctr); + if (ret) + return ret; + + /* Enable TE on vblank */ + ret = mipi_dsi_dcs_set_tear_on(dsi, MIPI_DSI_DCS_TEAR_MODE_VBLANK); + if (ret) + return ret; + + /* Turn on the pads? */ + ret = nt35510_send_long(dev, NT35510_P0_DPMCTR12, + NT35510_P0_DPMCTR12_LEN, + conf->dpmctr12); + if (ret) + return ret; + + return 0; +} + +static int nt35510_read_id(struct udevice *dev) +{ + struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev); + u8 id1, id2, id3; + int ret; + + ret = mipi_dsi_dcs_read(dsi, MCS_CMD_READ_ID1, &id1, 1); + if (ret < 0) { + dev_err(dev, "could not read MTP ID1\n"); + return ret; + } + + ret = mipi_dsi_dcs_read(dsi, MCS_CMD_READ_ID2, &id2, 1); + if (ret < 0) { + dev_err(dev, "could not read MTP ID2\n"); + return ret; + } + + ret = mipi_dsi_dcs_read(dsi, MCS_CMD_READ_ID3, &id3, 1); + if (ret < 0) { + dev_err(dev, "could not read MTP ID3\n"); + return ret; + } + + /* + * Multi-Time Programmable (?) memory contains manufacturer + * ID (e.g. Hydis 0x55), driver ID (e.g. NT35510 0xc0) and + * version. + */ + dev_info(dev, "MTP ID manufacturer: %02x version: %02x driver: %02x\n", + id1, id2, id3); + + return 0; +} + +static int nt35510_init_sequence(struct udevice *dev) +{ + const struct nt35510_config *conf = to_panel_config(dev); + int ret; + + ret = nt35510_send_long(dev, MCS_CMD_MTP_READ_PARAM, + ARRAY_SIZE(nt35510_mauc_mtp_read_param), + nt35510_mauc_mtp_read_param); + if (ret) + return ret; + + ret = nt35510_send_long(dev, MCS_CMD_MTP_READ_SETTING, + ARRAY_SIZE(nt35510_mauc_mtp_read_setting), + nt35510_mauc_mtp_read_setting); + if (ret) + return ret; + + nt35510_read_id(dev); + + /* Set up stuff in manufacturer control, page 1 */ + ret = nt35510_send_long(dev, MCS_CMD_MAUCCTR, + ARRAY_SIZE(nt35510_mauc_select_page_1), + nt35510_mauc_select_page_1); + if (ret) + return ret; + + ret = nt35510_setup_power(dev); + if (ret) + return ret; + + if (conf->cmds & NT35510_CMD_CORRECT_GAMMA) { + ret = nt35510_send_long(dev, NT35510_P1_SET_GAMMA_RED_POS, + NT35510_P1_GAMMA_LEN, + conf->gamma_corr_pos_r); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SET_GAMMA_GREEN_POS, + NT35510_P1_GAMMA_LEN, + conf->gamma_corr_pos_g); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SET_GAMMA_BLUE_POS, + NT35510_P1_GAMMA_LEN, + conf->gamma_corr_pos_b); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SET_GAMMA_RED_NEG, + NT35510_P1_GAMMA_LEN, + conf->gamma_corr_neg_r); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SET_GAMMA_GREEN_NEG, + NT35510_P1_GAMMA_LEN, + conf->gamma_corr_neg_g); + if (ret) + return ret; + + ret = nt35510_send_long(dev, NT35510_P1_SET_GAMMA_BLUE_NEG, + NT35510_P1_GAMMA_LEN, + conf->gamma_corr_neg_b); + if (ret) + return ret; + } + + /* Set up stuff in manufacturer control, page 0 */ + ret = nt35510_send_long(dev, MCS_CMD_MAUCCTR, + ARRAY_SIZE(nt35510_mauc_select_page_0), + nt35510_mauc_select_page_0); + if (ret) + return ret; + + ret = nt35510_setup_display(dev); + if (ret) + return ret; + + return 0; +} + +static int nt35510_panel_enable_backlight(struct udevice *dev) +{ + struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev); + const struct nt35510_config *conf = to_panel_config(dev); + int ret; + + ret = mipi_dsi_attach(dsi); + if (ret < 0) + return ret; + + ret = nt35510_init_sequence(dev); + if (ret) + return ret; + + /* Exit sleep mode */ + ret = mipi_dsi_dcs_exit_sleep_mode(dsi); + if (ret) { + dev_err(dev, "failed to exit sleep mode (%d)\n", ret); + return ret; + } + + /* Up to 120 ms */ + mdelay(120); + + if (conf->cmds & NT35510_CMD_CONTROL_DISPLAY) { + ret = mipi_dsi_dcs_write(dsi, MIPI_DCS_WRITE_CONTROL_DISPLAY, + &conf->wrctrld, + sizeof(conf->wrctrld)); + if (ret < 0) + return ret; + + ret = mipi_dsi_dcs_write(dsi, MIPI_DCS_WRITE_POWER_SAVE, + &conf->wrcabc, + sizeof(conf->wrcabc)); + if (ret < 0) + return ret; + + ret = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_CABC_MIN_BRIGHTNESS, + &conf->wrcabcmb, + sizeof(conf->wrcabcmb)); + if (ret < 0) + return ret; + } + + ret = mipi_dsi_dcs_set_display_on(dsi); + if (ret) { + dev_err(dev, "failed to turn display on (%d)\n", ret); + return ret; + } + + /* Some 10 ms */ + mdelay(10); + + ret = mipi_dsi_dcs_set_display_brightness(dsi, 0x7f); + if (ret < 0) + return ret; + + /* Need to wait a few time before sending the first image */ + mdelay(10); + + return 0; +} + +static int nt35510_panel_get_display_timing(struct udevice *dev, + struct display_timing *timings) +{ + struct nt35510_panel_priv *priv = dev_get_priv(dev); + + memcpy(timings, &priv->conf->timings, sizeof(*timings)); + return 0; +} + +static int nt35510_panel_of_to_plat(struct udevice *dev) +{ + struct nt35510_panel_priv *priv = dev_get_priv(dev); + int ret; + + if (CONFIG_IS_ENABLED(DM_REGULATOR)) { + ret = device_get_supply_regulator(dev, "vdd-supply", + &priv->vdd_reg); + if (ret) { + dev_err(dev, "Warning: cannot get vdd supply\n"); + return ret; + } + + ret = device_get_supply_regulator(dev, "vddi-supply", + &priv->vddi_reg); + if (ret) { + dev_err(dev, "Warning: cannot get vddi supply\n"); + return ret; + } + } + + priv->reset = + devm_gpiod_get_optional(dev, "reset", + GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); + if (IS_ERR(priv->reset)) { + dev_err(dev, "error getting RESET GPIO\n"); + return PTR_ERR(priv->reset); + } + + return 0; +} + +static int nt35510_panel_probe(struct udevice *dev) +{ + struct nt35510_panel_priv *priv = dev_get_priv(dev); + struct mipi_dsi_panel_plat *plat = dev_get_plat(dev); + int ret; + + priv->conf = (struct nt35510_config *)dev_get_driver_data(dev); + if (!priv->conf) { + dev_err(dev, "missing device configuration\n"); + return -ENODEV; + } + + if (CONFIG_IS_ENABLED(DM_REGULATOR)) { + dev_dbg(dev, "enable regulator '%s'\n", priv->vdd_reg->name); + ret = regulator_set_enable(priv->vdd_reg, true); + if (ret) + return ret; + + dev_dbg(dev, "enable regulator '%s'\n", priv->vddi_reg->name); + ret = regulator_set_enable(priv->vddi_reg, true); + if (ret) + return ret; + } + + /* Toggle RESET in accordance with datasheet page 370 */ + if (priv->reset) { + dm_gpio_set_value(priv->reset, 1); + /* Active min 10 us according to datasheet, let's say 20 */ + mdelay(1); + dm_gpio_set_value(priv->reset, 0); + /* + * 5 ms during sleep mode, 120 ms during sleep out mode + * according to datasheet, let's use 15 ms. + */ + mdelay(150); + } + + plat->lanes = 2; + plat->format = MIPI_DSI_FMT_RGB888; + plat->mode_flags = priv->conf->mode_flags; + + return 0; +} + +static const struct panel_ops nt35510_panel_ops = { + .enable_backlight = nt35510_panel_enable_backlight, + .get_display_timing = nt35510_panel_get_display_timing, +}; + +/* + * These gamma correction values are 10bit tuples, so only bits 0 and 1 is + * ever used in the first byte. They form a positive and negative gamma + * correction curve for each color, values must be strictly higher for each + * step on the curve. As can be seen these default curves goes from 0x0001 + * to 0x03FE. + */ +#define NT35510_GAMMA_POS_DEFAULT 0x00, 0x01, 0x00, 0x43, 0x00, \ + 0x6B, 0x00, 0x87, 0x00, 0xA3, 0x00, 0xCE, 0x00, 0xF1, 0x01, \ + 0x27, 0x01, 0x53, 0x01, 0x98, 0x01, 0xCE, 0x02, 0x22, 0x02, \ + 0x83, 0x02, 0x78, 0x02, 0x9E, 0x02, 0xDD, 0x03, 0x00, 0x03, \ + 0x2E, 0x03, 0x54, 0x03, 0x7F, 0x03, 0x95, 0x03, 0xB3, 0x03, \ + 0xC2, 0x03, 0xE1, 0x03, 0xF1, 0x03, 0xFE + +#define NT35510_GAMMA_NEG_DEFAULT 0x00, 0x01, 0x00, 0x43, 0x00, \ + 0x6B, 0x00, 0x87, 0x00, 0xA3, 0x00, 0xCE, 0x00, 0xF1, 0x01, \ + 0x27, 0x01, 0x53, 0x01, 0x98, 0x01, 0xCE, 0x02, 0x22, 0x02, \ + 0x43, 0x02, 0x50, 0x02, 0x9E, 0x02, 0xDD, 0x03, 0x00, 0x03, \ + 0x2E, 0x03, 0x54, 0x03, 0x7F, 0x03, 0x95, 0x03, 0xB3, 0x03, \ + 0xC2, 0x03, 0xE1, 0x03, 0xF1, 0x03, 0xFE + +/* + * The Hydis HVA40WV1 panel + */ +static const struct nt35510_config nt35510_hydis_hva40wv1 = { + .width_mm = 52, + .height_mm = 86, + /** + * As the Hydis panel is used in command mode, the porches etc + * are settings programmed internally into the NT35510 controller + * and generated toward the physical display. As the panel is not + * used in video mode, these are not really exposed to the DSI + * host. + * + * Display frame rate control: + * Frame rate = (20 MHz / 1) / (389 * (7 + 50 + 800)) ~= 60 Hz + */ + .timings = { + /* The internal pixel clock of the NT35510 is 20 MHz */ + .pixelclock.typ = 20000, + .hactive.typ = 480, + .hfront_porch.typ = 2, + .hsync_len.typ = 0, + .hback_porch.typ = 5, + .vactive.typ = 800, + .vfront_porch.typ = 2, + .vsync_len.typ = 0, + .vback_porch.typ = 5, + }, + .mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS, + .cmds = NT35510_CMD_CORRECT_GAMMA, + /* 0x09: AVDD = 5.6V */ + .avdd = { 0x09, 0x09, 0x09 }, + /* 0x34: PCK = Hsync/2, BTP = 2 x VDDB */ + .bt1ctr = { 0x34, 0x34, 0x34 }, + /* 0x09: AVEE = -5.6V */ + .avee = { 0x09, 0x09, 0x09 }, + /* 0x24: NCK = Hsync/2, BTN = -2 x VDDB */ + .bt2ctr = { 0x24, 0x24, 0x24 }, + /* VBCLA: -2.5V, VBCLB: -2.5V, VBCLC: -2.5V */ + .vcl = { 0x00, 0x00, 0x00 }, + /* 0x24: CLCK = Hsync/2, BTN = -1 x VDDB */ + .bt3ctr = { 0x24, 0x24, 0x24 }, + /* 0x05 = 12V */ + .vgh = { 0x05, 0x05, 0x05 }, + /* 0x24: NCKA = Hsync/2, VGH = 2 x AVDD - AVEE */ + .bt4ctr = { 0x24, 0x24, 0x24 }, + /* 0x0B = -13V */ + .vgl = { 0x0B, 0x0B, 0x0B }, + /* 0x24: LCKA = Hsync, VGL = AVDD + VCL - AVDD */ + .bt5ctr = { 0x24, 0x24, 0x24 }, + /* VGMP: 0x0A3 = 5.0375V, VGSP = 0V */ + .vgp = { 0x00, 0xA3, 0x00 }, + /* VGMP: 0x0A3 = 5.0375V, VGSP = 0V */ + .vgn = { 0x00, 0xA3, 0x00 }, + /* VCMOFFSEL = VCOM voltage offset mode, VCM = 0V */ + .vcmoff = { 0x00, 0x00 }, + /* Enable TE, EoTP and RGB pixel format */ + .dopctr = { NT35510_DOPCTR_0_DSITE | NT35510_DOPCTR_0_EOTP | + NT35510_DOPCTR_0_N565, NT35510_DOPCTR_1_CTB }, + .madctl = NT35510_ROTATE_0_SETTING, + /* 0x0A: SDT = 5 us */ + .sdhdtctr = 0x0A, + /* EQ control for gate signals, 0x00 = 0 us */ + .gseqctr = { 0x00, 0x00 }, + /* SDEQCTR: source driver EQ mode 2, 2.5 us rise time on each step */ + .sdeqctr = { 0x01, 0x05, 0x05, 0x05 }, + /* SDVPCTR: Normal operation off color during v porch */ + .sdvpctr = 0x01, + /* T1: number of pixel clocks on one scanline: 0x184 = 389 clocks */ + .t1 = 0x0184, + /* VBP: vertical back porch toward the panel */ + .vbp = 7, + /* VFP: vertical front porch toward the panel */ + .vfp = 50, + /* PSEL: divide pixel clock 20MHz with 1 (no clock downscaling) */ + .psel = 0, + /* DPTMCTR12: 0x03: LVGL = VGLX, overlap mode, swap R->L O->E */ + .dpmctr12 = { 0x03, 0x00, 0x00, }, + /* Default gamma correction values */ + .gamma_corr_pos_r = { NT35510_GAMMA_POS_DEFAULT }, + .gamma_corr_pos_g = { NT35510_GAMMA_POS_DEFAULT }, + .gamma_corr_pos_b = { NT35510_GAMMA_POS_DEFAULT }, + .gamma_corr_neg_r = { NT35510_GAMMA_NEG_DEFAULT }, + .gamma_corr_neg_g = { NT35510_GAMMA_NEG_DEFAULT }, + .gamma_corr_neg_b = { NT35510_GAMMA_NEG_DEFAULT }, +}; + +static const struct nt35510_config nt35510_frida_frd400b25025 = { + .width_mm = 52, + .height_mm = 86, + .timings = { + .pixelclock.typ = 23000000, + .hactive.typ = 480, + .hfront_porch.typ = 34, + .hback_porch.typ = 34, + .hsync_len.typ = 2, + .vactive.typ = 800, + .vfront_porch.typ = 15, + .vback_porch.typ = 15, + .vsync_len.typ = 12, + }, + .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | + MIPI_DSI_MODE_LPM, + .cmds = NT35510_CMD_CONTROL_DISPLAY | NT35510_CMD_SETVCMOFF, + /* 0x03: AVDD = 6.2V */ + .avdd = { 0x03, 0x03, 0x03 }, + /* 0x46: PCK = 2 x Hsync, BTP = 2.5 x VDDB */ + .bt1ctr = { 0x46, 0x46, 0x46 }, + /* 0x03: AVEE = -6.2V */ + .avee = { 0x03, 0x03, 0x03 }, + /* 0x36: PCK = 2 x Hsync, BTP = 2 x VDDB */ + .bt2ctr = { 0x36, 0x36, 0x36 }, + /* VBCLA: -2.5V, VBCLB: -2.5V, VBCLC: -3.5V */ + .vcl = { 0x00, 0x00, 0x02 }, + /* 0x26: CLCK = 2 x Hsync, BTN = -1 x VDDB */ + .bt3ctr = { 0x26, 0x26, 0x26 }, + /* 0x09 = 16V */ + .vgh = { 0x09, 0x09, 0x09 }, + /* 0x36: HCK = 2 x Hsync, VGH = 2 x AVDD - AVEE */ + .bt4ctr = { 0x36, 0x36, 0x36 }, + /* 0x08 = -10V */ + .vgl = { 0x08, 0x08, 0x08 }, + /* 0x26: LCK = 2 x Hsync, VGL = AVDD + VCL - AVDD */ + .bt5ctr = { 0x26, 0x26, 0x26 }, + /* VGMP: 0x080 = 4.6V, VGSP = 0V */ + .vgp = { 0x00, 0x80, 0x00 }, + /* VGMP: 0x080 = 4.6V, VGSP = 0V */ + .vgn = { 0x00, 0x80, 0x00 }, + /* VCMOFFSEL = VCOM voltage offset mode, VCM = -1V */ + .vcmoff = { 0x00, 0x50 }, + .dopctr = { NT35510_DOPCTR_0_RAMKP | NT35510_DOPCTR_0_DSITE | + NT35510_DOPCTR_0_DSIG | NT35510_DOPCTR_0_DSIM | + NT35510_DOPCTR_0_EOTP | NT35510_DOPCTR_0_N565, 0 }, + .madctl = NT35510_ROTATE_180_SETTING, + /* 0x03: SDT = 1.5 us */ + .sdhdtctr = 0x03, + /* EQ control for gate signals, 0x00 = 0 us */ + .gseqctr = { 0x00, 0x00 }, + /* SDEQCTR: source driver EQ mode 2, 1 us rise time on each step */ + .sdeqctr = { 0x01, 0x02, 0x02, 0x02 }, + /* SDVPCTR: Normal operation off color during v porch */ + .sdvpctr = 0x01, + /* T1: number of pixel clocks on one scanline: 0x184 = 389 clocks */ + .t1 = 0x0184, + /* VBP: vertical back porch toward the panel */ + .vbp = 0x1C, + /* VFP: vertical front porch toward the panel */ + .vfp = 0x1C, + /* PSEL: divide pixel clock 23MHz with 1 (no clock downscaling) */ + .psel = 0, + /* DPTMCTR12: 0x03: LVGL = VGLX, overlap mode, swap R->L O->E */ + .dpmctr12 = { 0x03, 0x00, 0x00, }, + /* write display brightness */ + .wrdisbv = 0x7f, + /* write control display */ + .wrctrld = NT35510_WRCTRLD_BCTRL | NT35510_WRCTRLD_DD | + NT35510_WRCTRLD_BL, + /* write content adaptive brightness control */ + .wrcabc = NT35510_WRCABC_STILL_MODE, + /* write CABC minimum brightness */ + .wrcabcmb = 0xff, +}; + +static const struct udevice_id nt35510_panel_ids[] = { + { + .compatible = "frida,frd400b25025", + .data = (ulong)&nt35510_frida_frd400b25025, + }, + { + .compatible = "hydis,hva40wv1", + .data = (ulong)&nt35510_hydis_hva40wv1, + }, + { } +}; + +U_BOOT_DRIVER(nt35510_panel) = { + .name = "nt35510_panel", + .id = UCLASS_PANEL, + .of_match = nt35510_panel_ids, + .ops = &nt35510_panel_ops, + .of_to_plat = nt35510_panel_of_to_plat, + .probe = nt35510_panel_probe, + .plat_auto = sizeof(struct mipi_dsi_panel_plat), + .priv_auto = sizeof(struct nt35510_panel_priv), +}; From patchwork Tue Apr 1 07:00:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 3889 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id D997240D19 for ; Tue, 1 Apr 2025 09:01:40 +0200 (CEST) Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-391425471ddsf3779019f8f.0 for ; Tue, 01 Apr 2025 00:01:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1743490900; cv=pass; d=google.com; s=arc-20240605; b=DXRdr+aCobB00UD5RjRiAOvYxSXKXfN21h41yG/+lM7oGZy7loYjw9hygX9J5xtMMH tOd1VjYZxSz+I+vdY+NPZF990WYQKao353Tuho4yt5quEl9ADTKvRAcG0edUi12Pd28X 8XKQ1xrTRE1qHqW6uNMLgnHKc5HQYrY4BsHScvWkHf+5JfTiGtLV7yEV/At9up0fEbk2 +Hm9+rTniQxwByIwFrheSsN80uMsxbUiRGxQQ36JcQALZRZIgVFU8i8H25smZRP0aCec ML2oz3sYequIVB/Y8aKjLs62OrADn+sa2w9j7n2+Y42XqB/0asSOaRT7Sxazr6cdiuq/ vtGg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=bjC6fWUDQ47IWOZGfBVg8CPfJhhYIo1HD5cvEgtrF7I=; fh=SDL5jDcVMwykIh9ybRzKhSsncwDKclUF0dbJV+3GtMw=; b=g2yySbp0198xa+7IqXQ17LX4RXgg397N9XRU47z1HQtIeZgyfXDX5ZHXfnnNnD6JNQ 5Nbq2E09Pvz1mLGKBGKbbmyi0XzYjW9k8YOz5bzPMGjruc4quLZaRkCYgKXnedezPVJE 0aFqPovi0MT5GoI3Z96edWygNVRPkpFx2Y/qekAG6XAhs7zgnPdHWSpiXB6uiBSrcprH 8Bk8u+1aH2EzQRY1HfvGSEeeSVcLPPB2nOY6AIGZ3KDzlOgQ6/MHpxc/ooyxZg/qEdXp kbu1AjEm1hQE2OiF+GLoutODgfVw3K5obpNgsSgEFNXR3y9jMcgPPGmJ12Ulsl3e6lx5 JKuw==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=MNeS66jG; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1743490900; x=1744095700; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=bjC6fWUDQ47IWOZGfBVg8CPfJhhYIo1HD5cvEgtrF7I=; b=FcLl7ew9aHXvqBuhMSodE6t+5pSJqBufrgAfRbsI1WW/iaWL5bAhUQ3TAlcTekP83d YuKGQ9FSxyPX7mD7eOeNN5hPrUdmvyYV5IdZLwk/JUeJezaypfRL6dC1X2Vdhf7IWnoP JDMP9Kz+uDEHRGvLoTLj0T05a5DD9Xo12e71w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743490900; x=1744095700; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bjC6fWUDQ47IWOZGfBVg8CPfJhhYIo1HD5cvEgtrF7I=; b=Ui0aZ36tf0s4YHWQzwz6eTsoIesmFjpbqiuCvd8x4HRQnWlfN7pCxcnbTRfxpLUMXX Q39gFWwr1XMpc0313hZPcP2rSN9cBrNFJ2a0d/8tRvIyDv+xw1oDLKTT4gHSabgmw/ZO s4qk5n34bnmKTEuNKh6cMQDBmchVxdYXDmmwee6ZizbXy9nBNiTy2gSpnWL4smXbH+J9 zhyG98nRvVXephz2g1a/IpjCnShlqgJJpB07LiJG4wzzRttwgYjpjKz5U7Do6j1xYnz0 VXi+lBNPT5wqP349iD89B+2KdDP7tK9zhoJBOMdnUPP5lsMHzEwh9AoKhL6xC5WLVI2g GRhQ== X-Forwarded-Encrypted: i=2; AJvYcCV3FFe6xNNIt1tPg+n0TZ9UuoOaHC0VigkNgK+7PqBHPrJd/QcSSy732Jz/4ie4uKYhhyxwsrlpbzrib7Mm@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YxGP10sUDQlUhq1OUMHpXTno37bRXPOxkEJA3xO4GfOBj8Q6BH5 j+iMd+7iKvthUaSqqpEfmscNYZn6VfW98c8pcFd8ZZNmkKQQ9SOnZVR8j/EGn8nNLKWNMdmI6w= = X-Google-Smtp-Source: AGHT+IGxmTo6k8pnCAqVJw6u9lor4c+og7aQ4CSuG4LgD0ZP4fLUEqnjzm1Y9Yy9EiYfTGWmtrRojw== X-Received: by 2002:a5d:47ca:0:b0:391:158f:3d59 with SMTP id ffacd0b85a97d-39c120de81dmr7289051f8f.15.1743490900467; Tue, 01 Apr 2025 00:01:40 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=ARLLPAL8TM8F9uzk3LyrCi+e7Z1EE/CneSrTQn9EnAUL3yWCcA== Received: by 2002:a5d:5f87:0:b0:390:dfa1:344b with SMTP id ffacd0b85a97d-39ad15d359els2453119f8f.1.-pod-prod-05-eu; Tue, 01 Apr 2025 00:01:38 -0700 (PDT) X-Received: by 2002:a05:6000:22c7:b0:390:fc5a:91c8 with SMTP id ffacd0b85a97d-39c1211df1bmr7919210f8f.53.1743490898552; Tue, 01 Apr 2025 00:01:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1743490898; cv=none; d=google.com; s=arc-20240605; b=fq8BIVjD8sxbmJRiQcb3qk+Nr2Vp189m1jzemaNLMYVyCexsvnKbtaM6JnSXwBy3Ec SOXv2K2pqPpI9kvarD1wFzl6qqjJqSPn4YAk68V3OTqh15fxcEEfNx34Dri4ao2KkK6X aY25TKUt+hDlVZsOdI0+ZEtR/vMLomij15nykOC7AeBlfsMAJJ6sKhcK9XUeiaZxfwH9 KmVyVxO/Z8/qTzS1CiZP1Xdy7JvqtA0yoLeRvD9TSLE8NmuJqbVXJo+UXgmWyZyb/RnO sEMKbYpdsgd2KZznQEnvjM9rlvKC9fx3oBsaen8mKr6sRRo0sql6l6q09qc7oKqlY87k 16Gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=kTQ+TNjN0ZkbXi6gStEVEIBZZSMT6jM2ofTUWWx3Nss=; fh=rY4murdn1MflvViWavG112HFLe3qvjXwNeUKdz+GYpc=; b=A7u8ecpD5VmIkfa3YDsN0Q8a/g3J9dY7sN8eO0iSFu0Xx7iI7EpNKI0pa5QmuuVDD9 9ZCI64S0XEbSyN/03pdPUWr9r9eL0F74OpXsdtJybM0NEIAD53R9EK1sIPB2psJPpAZF cZXsmwXEh2S8XoQZkAMBz5VMcOnUIklsbHQdrdByN3C5QO7cwfkezDAiVRk3T4AU+0cs pOrKeV2eFTEJ86FBOYCnYPzfI6sVLM7hDmheo4mMWHATn69bXR/mnKsnE8QSZ4LZoPRi 2hjHfkPa8LdVRgA5Cv8cYTs+u5hvatEes+58bpxRKj3lG6Upi4TYePbevRP/2s0gkej+ SuGw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=MNeS66jG; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-43d8fffd388sor34679005e9.9.2025.04.01.00.01.38 for (Google Transport Security); Tue, 01 Apr 2025 00:01:38 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: ASbGncvBWfEl1yL1NLvp7LDFZueHOaYPA1e+T6VsZiFHg9FhHsKIiNFpHdZ0CsLQHxA o7My5Su9AGb4d/WnCLP6aIOGFJNJIsAcI+KkmBM6+lR5XND4ZtaBh6KcFzdqnvVPv9U9TlZzNOu ktS+PpTY1No1jnCDRu9JC8WMCkcI7bewIXdCcaZBOUXCMK/j6XHyxX3UataD93FctCehdaY+Uus j7Wf1YRHkty6UQDlljJ7WfU/SB7uRZsrLXZyxVZuQ936Q6d06NeEINWeFYjK6IJr3O/QeGfae78 2f5+y9Sf4RwLTSouzFIiBTly4H6Ek9JB6zKubna1pCOCGWN3Qb6BYuZ97sNlpnLAm9Lq009cipN cdB+vF9UBVA== X-Received: by 2002:a5d:5982:0:b0:390:e9b5:d69c with SMTP id ffacd0b85a97d-39c120e3873mr9871980f8f.25.1743490898168; Tue, 01 Apr 2025 00:01:38 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.. ([2.196.40.230]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c0b66b015sm13701760f8f.54.2025.04.01.00.01.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 00:01:37 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Patrice Chotard , Patrick Delaunay , Tom Rini , Vikas Manocha , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v2 6/6] configs: stm32f769-disco: support FRD400B25025-A-CTK display Date: Tue, 1 Apr 2025 09:00:57 +0200 Message-ID: <20250401070125.3705126-7-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> References: <20250401070125.3705126-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=MNeS66jG; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Support FRIDA FRD400B25025-A-CTK display on stm32f769-disco board. As reported in the section 8.3 (i. e. Board revision history) of document UM2033 (i. e. Discovery kit with STM32F769NI MCU) these are the changes related to the board revision addressed by the patch: - Board MB1166 revision A-09: - LCD FRIDA FRD397B25009-D-CTK replaced by FRIDA FRD400B25025-A-CTK This means that the MB1166-A09 is using an NT35510 panel controller, unlike the previous versions which use an OTM8009A controller. Therefore, let's add support for NT35510 panel handling to the stm32f769-disco board configurations. Signed-off-by: Dario Binacchi Reviewed-by: Patrice Chotard --- Changes in v2: - Replace board with configs in the commit title - Add Reviewed-by tag of Patrice Chotard configs/stm32f769-disco_defconfig | 2 ++ configs/stm32f769-disco_spl_defconfig | 2 ++ 2 files changed, 4 insertions(+) diff --git a/configs/stm32f769-disco_defconfig b/configs/stm32f769-disco_defconfig index 5be221afd2fa..e50d62e93bd6 100644 --- a/configs/stm32f769-disco_defconfig +++ b/configs/stm32f769-disco_defconfig @@ -52,12 +52,14 @@ CONFIG_DW_ALTDESCRIPTOR=y CONFIG_MII=y # CONFIG_PINCTRL_FULL is not set CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_STM32_QSPI=y CONFIG_VIDEO=y CONFIG_VIDEO_LOGO=y CONFIG_BACKLIGHT_GPIO=y +CONFIG_VIDEO_LCD_NOVATEK_NT35510=y CONFIG_VIDEO_LCD_ORISETECH_OTM8009A=y CONFIG_VIDEO_STM32=y CONFIG_VIDEO_STM32_DSI=y diff --git a/configs/stm32f769-disco_spl_defconfig b/configs/stm32f769-disco_spl_defconfig index 7d4bda440685..6229ee5089f5 100644 --- a/configs/stm32f769-disco_spl_defconfig +++ b/configs/stm32f769-disco_spl_defconfig @@ -75,6 +75,7 @@ CONFIG_MII=y # CONFIG_PINCTRL_FULL is not set CONFIG_SPL_PINCTRL=y CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y CONFIG_SPL_RAM=y CONFIG_SPECIFY_CONSOLE_INDEX=y CONFIG_SPI=y @@ -84,6 +85,7 @@ CONFIG_SPL_TIMER=y CONFIG_VIDEO=y CONFIG_VIDEO_LOGO=y CONFIG_BACKLIGHT_GPIO=y +CONFIG_VIDEO_LCD_NOVATEK_NT35510=y CONFIG_VIDEO_LCD_ORISETECH_OTM8009A=y CONFIG_VIDEO_STM32=y CONFIG_VIDEO_STM32_DSI=y