From 3424f6a9f1830953c045f2c2c1a05574b01a29c2 Mon Sep 17 00:00:00 2001 From: Waveshare_Team Date: Tue, 1 Apr 2025 18:02:00 +0800 Subject: [PATCH 1/2] drm: panel: Added waveshare 7.0inch h dsi screen support Signed-off-by: Waveshare_Team --- drivers/gpu/drm/panel/panel-waveshare-dsi.c | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-waveshare-dsi.c b/drivers/gpu/drm/panel/panel-waveshare-dsi.c index 4041d31c71a270..711b4c36c62f4f 100644 --- a/drivers/gpu/drm/panel/panel-waveshare-dsi.c +++ b/drivers/gpu/drm/panel/panel-waveshare-dsi.c @@ -303,6 +303,27 @@ static const struct ws_panel_data ws_panel_13_3_2lane_data = { .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_LPM, }; +/* 7.0inch 1280x720 + * https://www.waveshare.com/7inch-dsi-lcd-h.htm + */ +static const struct drm_display_mode ws_panel_7_0_h_mode = { + .clock = 83333, + .hdisplay = 1280, + .hsync_start = 1280 + 64, + .hsync_end = 1280 + 64 + 64, + .htotal = 1280 + 64 + 64 + 64, + .vdisplay = 720, + .vsync_start = 720 + 64, + .vsync_end = 720 + 64 + 64, + .vtotal = 720 + 64 + 64 + 64, +}; + +static const struct ws_panel_data ws_panel_7_0_h_data = { + .mode = &ws_panel_7_0_h_mode, + .lanes = 2, + .mode_flags = MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_VIDEO | MIPI_DSI_CLOCK_NON_CONTINUOUS, +}; + static struct ws_panel *panel_to_ts(struct drm_panel *panel) { return container_of(panel, struct ws_panel, base); @@ -587,6 +608,9 @@ static const struct of_device_id ws_panel_of_ids[] = { }, { .compatible = "waveshare,13.3inch-2lane-panel", .data = &ws_panel_13_3_2lane_data, + }, { + .compatible = "waveshare,7.0inch-h-panel", + .data = &ws_panel_7_0_h_data, }, { /* sentinel */ } From 93b828b4266e4da18414de03a600947e2e931180 Mon Sep 17 00:00:00 2001 From: Waveshare_Team Date: Tue, 1 Apr 2025 18:07:19 +0800 Subject: [PATCH 2/2] overlays: Added waveshare 7.0inch h dsi screen support Signed-off-by: Waveshare_Team --- arch/arm/boot/dts/overlays/README | 1 + .../boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts | 3 +++ 2 files changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 12e4a974937dfb..593c3f35a38ae7 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -5502,6 +5502,7 @@ Params: 2_8_inch 2.8" 480x640 6_25_inch 6.25" 720x1560 8_8_inch 8.8" 480x1920 7_0_inchC 7.0" C 1024x600 + 7_0_inchH 7.0" H 1280x720 7_9_inch 7.9" 400x1280 8_0_inch 8.0" 1280x800 10_1_inch 10.1" 1280x800 diff --git a/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts index 9973ac0ce389bc..c9faf02c907f6c 100644 --- a/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts +++ b/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts @@ -130,6 +130,9 @@ <&touch2>, "status=okay"; 13_3_inch_2lane = <&panel>, "compatible=waveshare,13.3inch-2lane-panel", <&touch2>, "status=okay"; + 7_0_inchH = <&panel>, "compatible=waveshare,7.0inch-h-panel", + <&touch>, "touchscreen-swapped-x-y?", + <&touch>, "touchscreen-inverted-x?"; i2c1 = <&i2c_frag>, "target:0=",<&i2c1>, <0>, "-3-4+5"; disable_touch = <&touch>, "status=disabled";