From nobody Thu Apr 2 06:15:26 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 45D0A3D3D1B for ; Mon, 30 Mar 2026 13:26:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774877169; cv=none; b=ZUgVlN4aPPgw4JnworbIwvI2CchBOp/LfrPo4QASR1piDFFlAPAmHhZRF/D/ZQQMUnhyBPR4plaGWawqARsAKX+5go21ktfwqk25XbXfCa+eqOb+m6KIYKZP8PkWqHaZP1yUuBg6+k3S4qWVUBdDj6e5xq+VPI3iJNJeypfIfxE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774877169; c=relaxed/simple; bh=cARUtvGtD11vBtFkeSEutnYfrhEMM/CC1CsBezboId4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NcLl7/YPaHTDU+ROkhZhI1Ti9w8zvoXddhUDO83qti+1PqczpNdzxoWDBAWR+i/xBx3Um3v9tx7c0n2C20EY42Bu0S04JA8sNHmBcAQLzd6aL1BEMOFDWyhbpCsir2lzBXdVhTUCZrtxk1Nzk0Uybzp596HXlWrKC91rNSNRG6c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=i2YqA8ZH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=D0opuWEy; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="i2YqA8ZH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="D0opuWEy" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62UAGupO3176220 for ; Mon, 30 Mar 2026 13:26:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= S/+lpfhPJyGKPek8uoVu5/C6sdT3Q8uum2gyN2ApDYY=; b=i2YqA8ZHTTDkzyZy 9eSkbv+aR3j93V0mJ3PpjXqi12E87DnLacfuS1fk3z+UdLhDywPCHjBEpazZiAKy PnJMoV6y9w4P/oSskGqmUxgZ7HG3GXMkqeSjfWHewxhuxLb2PjiMJb+CyWO9c5xh eHZ7Fv08Y3XjR3JzvOcshApcNQbuf+hxhy/JQc1C6ciUNL9HEEGt+4hTBkSoI7ET 5dVOelTftSvfWgdSCJR/e24dJlfKxr6moT4m3To0erfXpdDmiBULOaZTpuDzgNNY r2yn43jjICw07qHiH04Daa51Yif2YWr39zmS6ecSFgotytsEVO7ONDNZocw77BFu ALE7tw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d7q9h0pkj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 13:26:04 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b4987c698so79284051cf.0 for ; Mon, 30 Mar 2026 06:26:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774877164; x=1775481964; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=S/+lpfhPJyGKPek8uoVu5/C6sdT3Q8uum2gyN2ApDYY=; b=D0opuWEy3R/mqUT7spvpUAOLgKrkabBoyg7PuLj5iIAnU5BZG121CHXrQgYviS5Ieu b/0Oseo7IaBUIg94B5/qtZ0ayNsgOyBuH9n5JeLZp4ECNfdTtIEvobtbLIA0DDeTHvIQ ulxFsqxwA2WCzkyAvM7bFWH3odSHlKWbgF2Abeg1477imAeKmRUJ5m8gZ7zOnyw9XpX3 ZJcn3w0kPXVzmVwMfz09dRXThAR36/UscPF3fIxomhbjMd4n0X7jJZX+jJ5Odw/7P/Iu UDlCRAAgXfg0V7AmFtihvZR/TGSb7JgREYMFR+sguJqFsWeEAvfuoSmN7a13r/jGF8lD VsZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774877164; x=1775481964; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=S/+lpfhPJyGKPek8uoVu5/C6sdT3Q8uum2gyN2ApDYY=; b=Q9Rn4a8c4DB1uXYdZpCXesT1cc01851it1morT9k/xl+OppxOufLOmt/V+AXdI6eTV HssNUVTIZgyX7gkmQE0jQguHAUEs8hsmAe+emi/YwleIVtzfNQxxzS8ww5hCrs90iBdI ldGiW3f2eIKln/J6zwJfmi2O4cVCckr3OiVSAQ++6bdjSLAgPrB0HR6UaI0XIO5z8LHI jAwn401jvEQpPFsIOv/Ob9rMaK37Kb01fF/wxMCUEUo65jV9ZzQur3BCi2GvOnJk2hjH s2BzXGyt5w5XhBKwPhf0Vi0m4jwiyI6a54r1Jo05IijBa76NymDQzE52NO7gensinlnz nEgQ== X-Forwarded-Encrypted: i=1; AJvYcCUyHDwwmoe8UgNzXygd+ZFzPelPGbIsVwtwOKL0diJQ63VfU3fGbOA2NHCW4l7Vq7B2COax61dXoNLco3k=@vger.kernel.org X-Gm-Message-State: AOJu0YyQP0BP1d5CdYhvrPb5WDl874S8NVD33Heseq/gQoC+1csrExTZ g3gwvIcXn2KIJ5/tmOo/WFko+FMykZ2d2dylnVOXbBTTWWhQGFAJA1z80MLN2BKdB0K/p+hQIrM WPyl/c2nYJR7oiVv4WTTtPtDbsNk4/2cmtjSjV+VbKj8S/LPveRqQtPNNIpRYZT+2uSQ= X-Gm-Gg: ATEYQzxPUr5JTXn78mAlkHksHQlxjIV4VVL7mnTC0Ti2vo7kanJqUrjflcH+higW3yX Tcrf2glEnb+fz6CkkPyNCQgqdof5NZ9jWxS3Kjv5PlYthT2L4/gjwo4l+ywdPH0EQULJPeweB+R AgiNbxPxyq2BALBWJRa43t8jaedxmgVjywGttBCw52EXONRgqKdStJf+NnZ+/4Bib2I07DDi1jt Hw5JrbB1bh9aJuMgJk+lppXBuiNkcJr/U9woCS6gBko17S85yVaxV1ck4L5BIng+7dzQHa3aHba YiYZfWHPSkVDDFqNsmsk2Q9Tz2J/28baZBaXsTyJVDAkchLod+eebwaDabRAbcScjuwWyXnF4lF trpU2OUKf6eO+sD/0hTuxXTvO8h8APbGcXttDzQbuGZGL9MpAoBMftqdfBynzj9xJwyf+iO7Hxd oGazYtebKcnm76xW/wJ/kOCMYFuIkdfStk9HM= X-Received: by 2002:a05:622a:8f0e:b0:50b:3128:9916 with SMTP id d75a77b69052e-50b99410cdcmr160273141cf.18.1774877163842; Mon, 30 Mar 2026 06:26:03 -0700 (PDT) X-Received: by 2002:a05:622a:8f0e:b0:50b:3128:9916 with SMTP id d75a77b69052e-50b99410cdcmr160272611cf.18.1774877163313; Mon, 30 Mar 2026 06:26:03 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a2b13fd035sm1698928e87.18.2026.03.30.06.26.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 06:26:01 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 30 Mar 2026 16:25:53 +0300 Subject: [PATCH 4/4] drm/panel: simple: add Waveshare LCD panels Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260330-ws-lcd-v1-4-309834a435c0@oss.qualcomm.com> References: <20260330-ws-lcd-v1-0-309834a435c0@oss.qualcomm.com> In-Reply-To: <20260330-ws-lcd-v1-0-309834a435c0@oss.qualcomm.com> To: Neil Armstrong , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , Sam Ravnborg , Joseph Guo , Marek Vasut , Andrzej Hajda , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=11552; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=cARUtvGtD11vBtFkeSEutnYfrhEMM/CC1CsBezboId4=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpynnhWod1RdnnttekYSduhR+Z6oqpcUEYr96bT jZmyYmNxJiJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCacp54QAKCRCLPIo+Aiko 1R3qCACZHd/RjPnEL9lUqmzeFXKWGoEGCFPOplBIdJakm449kLeif4nP/G/8N9rrHsjUJD0rjzG RymObvtZW/Ir7Kx0kHarj2Gq3B0ZPHaqja0M/w/QgdJ5b9f3Uj/4GLPyuyUbEE9DagEcTCIBtEp tHGsrhtHA+50Ims2/ulFTfP7NHM7kSaliaTA3L58oDubpL2oKOEfQ4p55V2u8zV0FMUmoge34NQ ZSZ4DLmzqVWn+v1uZEpZ6E/wT443ji1aA9uieqshLlxG6bW08Hk+eMtSAin4E7/Zgax7uK/OGn5 LqJRhHliBTHTZo5xeU6jmFRDkCOzJOlCL5e87zp8neZsjkED X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDEwNSBTYWx0ZWRfX8tyOOCzbp2pt sw8/ecz+nhZBBEww4FZPBOxlN5PH5t/5ZjO4mqKLk6Q9cQ02saY817AiD6wloPxg3uh1O5XhQsS un9bZrwGIp40dh2JO1cApBu1Edx7Mq6+v9Roj7JT6zz6DJfS0BNjg2f1+AunI7gFEapZaT2VoQS vE8kk8JRGsAKRVLwXvZfoyeki79kXmDkikLXwh27GBQt4uwhZzI92ud/Wc1Lnu9d8U0EgBVOb0t VkuvvdlEnFrvmiIyURe3Vam7YbPbmJup4UImkk/3n78rAQiivmvhWzTcDOATGmyCGKPTVXj3LFL ChZhi9LwOw6A2uOGAuPD8/wv5toZB/KM2qvcub3m2a0P9tOVzxJszJ7dtMLOQG6x0dOmoIRI2Qs kHuE5dz6ig5h2G+30Lwp3q6Cc5yZU50r982phZC86s544t94Mo5wk4rLo7X4IkydHY7Ar6tEg7O /XQZIXrukRiuXGCrz7A== X-Authority-Analysis: v=2.4 cv=AZS83nXG c=1 sm=1 tr=0 ts=69ca79ec cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=cPmbVODp-joscUQKHs4A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: 5ah9i62rSHiFTuhEnhETPB1LoXxVkBua X-Proofpoint-ORIG-GUID: 5ah9i62rSHiFTuhEnhETPB1LoXxVkBua X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 suspectscore=0 bulkscore=0 adultscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300105 Waveshare have a serie of DSI panel kits with the DPI or LVDS panel being attached to the DSI2DPI or DSI2LVDS bridge. The commit 46be11b678e0 ("drm/panel: simple: Add Waveshare 13.3" panel support") added definitions for one of those panels, describe the rest of them. Note, since the panels are hidden behind the bridges which are not being programmed by the kernel, I could not confirm the pixel format for the panels. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/panel/panel-simple.c | 381 +++++++++++++++++++++++++++++++= ++++ 1 file changed, 381 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/p= anel-simple.c index 236bd56208cc..b2708a1fe464 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -5061,6 +5061,342 @@ static const struct panel_desc vl050_8048nt_c01 =3D= { .bus_flags =3D DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE, }; =20 +static const struct drm_display_mode waveshare_28_lcd_mode =3D { + .clock =3D 50000, + .hdisplay =3D 480, + .hsync_start =3D 480 + 150, + .hsync_end =3D 480 + 150 + 50, + .htotal =3D 480 + 150 + 50 + 150, + .vdisplay =3D 640, + .vsync_start =3D 640 + 150, + .vsync_end =3D 640 + 150 + 50, + .vtotal =3D 640 + 150 + 50 + 150, + .flags =3D DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_PHSYNC, +}; + +static const struct panel_desc waveshare_28_lcd_panel =3D { + .modes =3D &waveshare_28_lcd_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 44, + .height =3D 58, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X24, + .connector_type =3D DRM_MODE_CONNECTOR_DPI, + .bus_flags =3D DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE | + DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE, +}; + +static const struct drm_display_mode waveshare_34_lcd_c_mode =3D { + .clock =3D 50000, + .hdisplay =3D 800, + .hsync_start =3D 800 + 32, + .hsync_end =3D 800 + 32 + 6, + .htotal =3D 800 + 32 + 6 + 120, + .vdisplay =3D 800, + .vsync_start =3D 800 + 8, + .vsync_end =3D 800 + 8 + 4, + .vtotal =3D 800 + 8 + 4 + 16, +}; + +static const struct panel_desc waveshare_34_lcd_c_panel =3D { + .modes =3D &waveshare_34_lcd_c_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 88, + .height =3D 88, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct drm_display_mode waveshare_40_lcd_mode =3D { + .clock =3D 50000, + .hdisplay =3D 480, + .hsync_start =3D 480 + 150, + .hsync_end =3D 480 + 150 + 100, + .htotal =3D 480 + 150 + 100 + 150, + .vdisplay =3D 800, + .vsync_start =3D 800 + 20, + .vsync_end =3D 800 + 20 + 100, + .vtotal =3D 800 + 20 + 100 + 20, + .flags =3D DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_PHSYNC, +}; + +static const struct panel_desc waveshare_40_lcd_panel =3D { + .modes =3D &waveshare_40_lcd_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 52, + .height =3D 87, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X24, + .connector_type =3D DRM_MODE_CONNECTOR_DPI, + .bus_flags =3D DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE | + DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE, +}; + +static const struct drm_display_mode waveshare_40_lcd_c_mode =3D { + .clock =3D 50000, + .hdisplay =3D 720, + .hsync_start =3D 720 + 32, + .hsync_end =3D 720 + 32 + 200, + .htotal =3D 720 + 32 + 200 + 120, + .vdisplay =3D 720, + .vsync_start =3D 720 + 8, + .vsync_end =3D 720 + 8 + 4, + .vtotal =3D 720 + 8 + 4 + 16, +}; + +static const struct panel_desc waveshare_40_lcd_c_panel =3D { + .modes =3D &waveshare_40_lcd_c_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 102, + .height =3D 102, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct drm_display_mode waveshare_50_lcd_c_mode =3D { + .clock =3D 50000, + .hdisplay =3D 1024, + .hsync_start =3D 1024 + 100, + .hsync_end =3D 1024 + 100 + 100, + .htotal =3D 1024 + 100 + 100 + 100, + .vdisplay =3D 600, + .vsync_start =3D 600 + 10, + .vsync_end =3D 600 + 10 + 10, + .vtotal =3D 600 + 10 + 10 + 10, + .flags =3D DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_PHSYNC, +}; + +static const struct panel_desc waveshare_50_lcd_c_panel =3D { + .modes =3D &waveshare_50_lcd_c_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 109, + .height =3D 66, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X24, + .connector_type =3D DRM_MODE_CONNECTOR_DPI, + .bus_flags =3D DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE | + DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE, +}; + +static const struct drm_display_mode waveshare_50_lcd_d_mode =3D { + .clock =3D 83333, + .hdisplay =3D 720, + .hsync_start =3D 720 + 100, + .hsync_end =3D 720 + 100 + 80, + .htotal =3D 720 + 100 + 80 + 100, + .vdisplay =3D 1280, + .vsync_start =3D 1280 + 20, + .vsync_end =3D 1280 + 20 + 20, + .vtotal =3D 1280 + 20 + 20 + 20, +}; + +static const struct panel_desc waveshare_50_lcd_d_panel =3D { + .modes =3D &waveshare_50_lcd_d_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 62, + .height =3D 110, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct drm_display_mode waveshare_625_lcd_mode =3D { + .clock =3D 83333, + .hdisplay =3D 720, + .hsync_start =3D 720 + 50, + .hsync_end =3D 720 + 50 + 50, + .htotal =3D 720 + 50 + 50 + 50, + .vdisplay =3D 1560, + .vsync_start =3D 1560 + 20, + .vsync_end =3D 1560 + 20 + 20, + .vtotal =3D 1560 + 20 + 20 + 20, +}; + +static const struct panel_desc waveshare_625_lcd_panel =3D { + .modes =3D &waveshare_625_lcd_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 66, + .height =3D 144, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct panel_desc waveshare_70_lcd_c_panel =3D { + .modes =3D &waveshare_50_lcd_c_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 155, + .height =3D 87, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X24, + .connector_type =3D DRM_MODE_CONNECTOR_DPI, + .bus_flags =3D DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE | + DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE, +}; + +static const struct drm_display_mode waveshare_80_lcd_c_mode; +static const struct panel_desc waveshare_70_lcd_e_panel =3D { + .modes =3D &waveshare_80_lcd_c_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 152, + .height =3D 95, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct drm_display_mode waveshare_70_lcd_h_mode =3D { + .clock =3D 83333, + .hdisplay =3D 1280, + .hsync_start =3D 1280 + 64, + .hsync_end =3D 1280 + 64 + 64, + .htotal =3D 1280 + 64 + 64 + 64, + .vdisplay =3D 720, + .vsync_start =3D 720 + 64, + .vsync_end =3D 720 + 64 + 64, + .vtotal =3D 720 + 64 + 64 + 64, +}; + +static const struct panel_desc waveshare_70_lcd_h_panel =3D { + .modes =3D &waveshare_70_lcd_h_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 155, + .height =3D 88, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct drm_display_mode waveshare_79_lcd_mode =3D { + .clock =3D 50000, + .hdisplay =3D 400, + .hsync_start =3D 400 + 40, + .hsync_end =3D 400 + 40 + 30, + .htotal =3D 400 + 40 + 30 + 40, + .vdisplay =3D 1280, + .vsync_start =3D 1280 + 20, + .vsync_end =3D 1280 + 20 + 10, + .vtotal =3D 1280 + 20 + 10 + 20, +}; + +static const struct panel_desc waveshare_79_lcd_panel =3D { + .modes =3D &waveshare_79_lcd_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 60, + .height =3D 191, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct drm_display_mode waveshare_80_lcd_c_mode =3D { + .clock =3D 83333, + .hdisplay =3D 1280, + .hsync_start =3D 1280 + 156, + .hsync_end =3D 1280 + 156 + 20, + .htotal =3D 1280 + 156 + 20 + 40, + .vdisplay =3D 800, + .vsync_start =3D 800 + 40, + .vsync_end =3D 800 + 40 + 48, + .vtotal =3D 800 + 40 + 48 + 40, +}; + +static const struct panel_desc waveshare_80_lcd_c_panel =3D { + .modes =3D &waveshare_80_lcd_c_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 173, + .height =3D 108, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct drm_display_mode waveshare_88_lcd_mode =3D { + .clock =3D 83333, + .hdisplay =3D 480, + .hsync_start =3D 480 + 50, + .hsync_end =3D 480 + 50 + 50, + .htotal =3D 480 + 50 + 50 + 50, + .vdisplay =3D 1920, + .vsync_start =3D 1920 + 20, + .vsync_end =3D 1920 + 20 + 20, + .vtotal =3D 1920 + 20 + 20 + 20, +}; + +static const struct panel_desc waveshare_88_lcd_panel =3D { + .modes =3D &waveshare_88_lcd_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 56, + .height =3D 220, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct panel_desc waveshare_101_lcd_c_panel =3D { + .modes =3D &waveshare_80_lcd_c_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 217, + .height =3D 136, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + +static const struct drm_display_mode waveshare_119_lcd_mode =3D { + .clock =3D 50000, + .hdisplay =3D 320, + .hsync_start =3D 320 + 60, + .hsync_end =3D 320 + 60 + 60, + .htotal =3D 320 + 60 + 60 + 60, + .vdisplay =3D 1480, + .vsync_start =3D 1480 + 60, + .vsync_end =3D 1480 + 60 + 60, + .vtotal =3D 1480 + 60 + 60 + 60, +}; + +static const struct panel_desc waveshare_119_lcd_panel =3D { + .modes =3D &waveshare_119_lcd_mode, + .num_modes =3D 1, + .bpc =3D 8, + .size =3D { + .width =3D 58, + .height =3D 268, + }, + .bus_format =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type =3D DRM_MODE_CONNECTOR_LVDS, +}; + static const struct drm_display_mode waveshare_133inch_mode =3D { .clock =3D 148500, .hdisplay =3D 1920, @@ -5697,6 +6033,51 @@ static const struct of_device_id platform_of_match[]= =3D { }, { .compatible =3D "vxt,vl050-8048nt-c01", .data =3D &vl050_8048nt_c01, + }, { + .compatible =3D "waveshare,2.8inch-panel", + .data =3D &waveshare_28_lcd_panel + }, { + .compatible =3D "waveshare,3.4inch-c-panel", + .data =3D &waveshare_34_lcd_c_panel + }, { + .compatible =3D "waveshare,4.0inch-panel", + .data =3D &waveshare_40_lcd_panel + }, { + .compatible =3D "waveshare,4.0inch-c-panel", + .data =3D &waveshare_40_lcd_c_panel + }, { + .compatible =3D "waveshare,5.0inch-c-panel", + .data =3D &waveshare_50_lcd_c_panel + }, { + .compatible =3D "waveshare,5.0inch-d-panel", + .data =3D &waveshare_50_lcd_d_panel + }, { + .compatible =3D "waveshare,6.25inch-panel", + .data =3D &waveshare_625_lcd_panel + }, { + .compatible =3D "waveshare,7.0inch-c-panel", + .data =3D &waveshare_70_lcd_c_panel + }, { + .compatible =3D "waveshare,7.0inch-e-panel", + .data =3D &waveshare_70_lcd_e_panel + }, { + .compatible =3D "waveshare,7.0inch-h-panel", + .data =3D &waveshare_70_lcd_h_panel + }, { + .compatible =3D "waveshare,7.9inch-panel", + .data =3D &waveshare_79_lcd_panel + }, { + .compatible =3D "waveshare,8.0inch-c-panel", + .data =3D &waveshare_80_lcd_c_panel + }, { + .compatible =3D "waveshare,8.8inch-panel", + .data =3D &waveshare_88_lcd_panel + }, { + .compatible =3D "waveshare,10.1inch-c-panel", + .data =3D &waveshare_101_lcd_c_panel + }, { + .compatible =3D "waveshare,11.9inch-panel", + .data =3D &waveshare_119_lcd_panel }, { .compatible =3D "waveshare,13.3inch-panel", .data =3D &waveshare_133inch, --=20 2.47.3