From: Dmitry Baryshkov Date: Sun, 12 Apr 2026 17:32:25 +0000 (+0300) Subject: drm/bridge: waveshare-dsi: support DSI LCD kits with LVDS panels X-Git-Tag: v7.2-rc1~141^2~26^2~10 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=17394e05b295e4936e0ed50d2f02ed7f08fd4f7d;p=thirdparty%2Flinux.git drm/bridge: waveshare-dsi: support DSI LCD kits with LVDS panels Several Waveshare DSI LCD kits use LVDS panels and the ICN6202 DSI2LVDS bridge. Support that setup by handling waveshare,dsi2lvds compatible. The only difference with the existing waveshare,dsi2dpi is the bridge's output type (LVDS vs DPI). Reviewed-by: Luca Ceresoli Reviewed-by: Neil Armstrong Link: https://patch.msgid.link/20260412-ws-lcd-v3-2-db22c2631828@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov --- diff --git a/drivers/gpu/drm/bridge/waveshare-dsi.c b/drivers/gpu/drm/bridge/waveshare-dsi.c index 32d40414adb9f..ded57f298d640 100644 --- a/drivers/gpu/drm/bridge/waveshare-dsi.c +++ b/drivers/gpu/drm/bridge/waveshare-dsi.c @@ -177,7 +177,7 @@ static int ws_bridge_probe(struct i2c_client *i2c) regmap_write(ws->reg_map, 0xc2, 0x01); regmap_write(ws->reg_map, 0xac, 0x01); - ws->bridge.type = DRM_MODE_CONNECTOR_DPI; + ws->bridge.type = (uintptr_t)i2c_get_match_data(i2c); ws->bridge.of_node = dev->of_node; devm_drm_bridge_add(dev, &ws->bridge); @@ -185,7 +185,8 @@ static int ws_bridge_probe(struct i2c_client *i2c) } static const struct of_device_id ws_bridge_of_ids[] = { - {.compatible = "waveshare,dsi2dpi",}, + {.compatible = "waveshare,dsi2dpi", .data = (void *)DRM_MODE_CONNECTOR_DPI, }, + {.compatible = "waveshare,dsi2lvds", .data = (void *)DRM_MODE_CONNECTOR_LVDS, }, { } };