From nobody Wed Dec 17 12:17:01 2025 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C969D2E7F0B for ; Thu, 4 Dec 2025 06:06:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764828418; cv=none; b=QBA57ANe4jeDmIGTJje6WoxjaO2sodE31ZK1vIFsrAAN8vBhFKUT0nRgRRUJekZJ5ecLmQvgST06YX7TCPWkTQz70jyYUGGwHjRviJCzYEsLhW4Z/SPdu42I5OZlw/+NUS4XaYymaVePy1ozFAGnZW/4Eyk1by9E0Y4EJDMqW9A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764828418; c=relaxed/simple; bh=/CXzj5jTIsG6xjXWB8a3Ddy3m9DDciOJ66r1kBk8d4s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qDenLrhCy9sekssfNGgPIeOZDbgHcd88VxJXbsQrsDdDZe/PUo+ejanOh3gQ37peXnEfCP9YU8UgmAuE8Zt3ROB49uPoa9cgylp1mex3GtdQcsr20cwaVMflokQt9+svgyv6T7uCSrJTR8Ny+HlHNPsyItq+T5jNXYiYn9T/eO0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WG0NxU7q; arc=none smtp.client-ip=209.85.208.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WG0NxU7q" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-64198771a9bso893995a12.2 for ; Wed, 03 Dec 2025 22:06:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764828414; x=1765433214; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=veHv/uRfxtfoSVQhbpvYC1/mXF+mOr0qW/T/KMequQ0=; b=WG0NxU7qvzM2095auWVA4GlKVyr4S+ttb6vXL0ACsZ8hMLC0p5fFQyrSPZ1Q13gPnX Z6uMZ5rzk8KWJzJ8HMUSB8sJOy8Ompu9Y3KXPYBKMT5ZT0y7Cuhex3mvSePYmmWH/BKO URnQOFqvQmqtsVwZTVAdBVntrjwk/FxJS0J1uIBsnb7MW0XCUfBOhiToi857AHvAz+0o WS7yJ5jfROHS6192N2xt9skfu5mFX9BeAphgdPx6C+Ganlj4jQjc42T6ZATAksw/QvJ+ 4r2c4cFz+5p72Fd1GpKEiHTKwuKt2XeUkAIlrheKCR/b7teS2kpQPFnfx42UoIAY6Qxt kWyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764828414; x=1765433214; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=veHv/uRfxtfoSVQhbpvYC1/mXF+mOr0qW/T/KMequQ0=; b=eYx4aYZ4W9Y8SkjP2nvYztslqoRmO2WKQzYa+eJwLuWR3HiyvlWpFpvttdHe6tRHkf sQ3GT2dvqQRlkFjAr//O/B7bYxTkf76R6pX0tPnIsHXv6lXbiNqDJdBMGY/bwImNCg+s JtAGyKIqU6tLYOGVXM4ZhXEEpQWrcRW1RT0yj69nvCkJ1CiJ1Ql3xmE/C+xkWZ9apHa/ a2A+q3cSoBHXZDIFJo+S0zZR9O+ONZ4YB0hycx+psGJI4KvNFFuO+doO/UTeyx4l6F0t OiqhGkwzN9Er8h0bj7K8WHc1Ij19tAZT2vN/j83zF/vig/9Nd8NXMeq5GnqMHRyl3YdU /Jsw== X-Forwarded-Encrypted: i=1; AJvYcCVDa3LA5awBiDRJzWEjtPQhTNjQzkvuFR9FSN2aYU6UBqZNRa7oWYkKFNbgX+BbiAWtwUnzkCVaOdFgGoQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwaaFjT3Xv0p07rmKM1O8WBAe1pRuMmjzTlUCGDZnt92aqbKU/C 6t8cuQZ3KJS6FNILWTE3gfELYkFk0FLC5CTC6enrL2peIuybF7AFZw3IxqY26Q== X-Gm-Gg: ASbGnctGlSVbtUKWTazu0KyWpKRjtFkaPdMicInJ2oZlOTkpdNBLYQh/sSzLv95lS5l fj2ok5f5/oKp5YZJqeFbP+QlDo/LuWrzuR20Bw0BgBb+iIoq+HuYjEBJLhaw/QfHV5sSE4NfkTP VCJpkrDR92seXMZAoB5CNaaZR+0BiWzIaPiOVx2PHsTV2p0j73JxiG+kaavHqHaH3iqghQNhCeI p5Pn4l0bxvWpqtFHsUgqS8a2mkHWY891uuE31Ztxgl77i9vGtRvlBYJzJMszTU3f2CJEbmR51Oh eDnz9uU7EO9JHNLJmilBMI5fOJpcUFI5NLVDt8YP8CeT8ODq6hmEdp62df4x5orP7o2btMOobhL +JNm+PuRD3IIUrmam4//9C7WFWZVYJfRt91hkvggyqgiUyh2vE5YpSwnZwZEEHebh6CuLpjSmfN M= X-Google-Smtp-Source: AGHT+IGIY456nDKAquJYqhqJz5aNWSg1c8AIQiMpWzN3vSnECpyPWlD0YcfkKel4ArG/Oznrht9jIQ== X-Received: by 2002:a05:6402:42c9:b0:645:dc9d:83bc with SMTP id 4fb4d7f45d1cf-6479c41fc11mr4336412a12.14.1764828413739; Wed, 03 Dec 2025 22:06:53 -0800 (PST) Received: from xeon ([188.163.112.74]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-647b2ef7798sm460296a12.15.2025.12.03.22.06.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Dec 2025 22:06:53 -0800 (PST) From: Svyatoslav Ryhel To: Neil Armstrong , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Thierry Reding , Jonathan Hunter , Douglas Anderson , Svyatoslav Ryhel , Sam Ravnborg Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org Subject: [PATCH v3 2/7 RESEND] gpu/drm: panel: add support for LG LD070WX3-SL01 MIPI DSI panel Date: Thu, 4 Dec 2025 08:06:18 +0200 Message-ID: <20251204060627.4727-3-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251204060627.4727-1-clamor95@gmail.com> References: <20251204060627.4727-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The LD070WX3 is a Color Active Matrix Liquid Crystal Display with an integral Light Emitting Diode (LED) backlight system. The matrix employs a-Si Thin Film Transistor as the active element. It is a transmissive type display operating in the normally Black mode. This TFT-LCD has 7.0 inches diagonally measured active display area with WXGA resolution (800 by 1280 pixel array). LG LD070WX3-SL01 MIPI DSI panel was treated as simple DSI panel when it is actually not and requires proper setup for correct work. Simple panel work relied on preliminary configuration done by bootloader. Signed-off-by: Svyatoslav Ryhel Reviewed-by: Douglas Anderson --- drivers/gpu/drm/panel/Kconfig | 13 ++ drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-lg-ld070wx3.c | 184 ++++++++++++++++++++++ drivers/gpu/drm/panel/panel-simple.c | 31 ---- 4 files changed, 198 insertions(+), 31 deletions(-) create mode 100644 drivers/gpu/drm/panel/panel-lg-ld070wx3.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 045ffb2ccd0f..1f660ba065a1 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -408,6 +408,19 @@ config DRM_PANEL_LG_LB035Q02 (found on the Gumstix Overo Palo35 board). To compile this driver as a module, choose M here. =20 +config DRM_PANEL_LG_LD070WX3 + tristate "LG LD070WX3 MIPI DSI panel" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + select VIDEOMODE_HELPERS + help + Say Y here if you want to enable support for the LD070WX3 MIPI DSI + panel found in the NVIDIA Tegra Note 7 tablet. + + To compile this driver as a module, choose M here: the module will + be called panel-lg-ld070wx3. + config DRM_PANEL_LG_LG4573 tristate "LG4573 RGB/SPI panel" depends on OF && SPI diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 0356775a443a..9281221183ac 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -41,6 +41,7 @@ obj-$(CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W) +=3D panel-l= eadtek-ltk050h3146w.o obj-$(CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829) +=3D panel-leadtek-ltk500hd18= 29.o obj-$(CONFIG_DRM_PANEL_LINCOLNTECH_LCD197) +=3D panel-lincolntech-lcd197.o obj-$(CONFIG_DRM_PANEL_LG_LB035Q02) +=3D panel-lg-lb035q02.o +obj-$(CONFIG_DRM_PANEL_LG_LD070WX3) +=3D panel-lg-ld070wx3.o obj-$(CONFIG_DRM_PANEL_LG_LG4573) +=3D panel-lg-lg4573.o obj-$(CONFIG_DRM_PANEL_LG_SW43408) +=3D panel-lg-sw43408.o obj-$(CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966) +=3D panel-magnachip-d53e6ea= 8966.o diff --git a/drivers/gpu/drm/panel/panel-lg-ld070wx3.c b/drivers/gpu/drm/pa= nel/panel-lg-ld070wx3.c new file mode 100644 index 000000000000..00cbfc5518a5 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-lg-ld070wx3.c @@ -0,0 +1,184 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include +#include +#include +#include +#include +#include +#include +#include + +#include