project linux_am62p/board-support/ti-linux-kernel/ diff --git a/arch/arm64/boot/dts/ti/A66_emmc_mem1G/k3-am62p5-sk-dsi-LT9211C.dtsi b/arch/arm64/boot/dts/ti/A66_emmc_mem1G/k3-am62p5-sk-dsi-LT9211C.dtsi index c9865c305..8b0f53c1b 100755 --- a/arch/arm64/boot/dts/ti/A66_emmc_mem1G/k3-am62p5-sk-dsi-LT9211C.dtsi +++ b/arch/arm64/boot/dts/ti/A66_emmc_mem1G/k3-am62p5-sk-dsi-LT9211C.dtsi @@ -15,7 +15,7 @@ &{/} { panel0 { - compatible = "dummy,DSI_1080P"; + compatible = "dummy,bt656_lt9211"; port { panel0_in: endpoint { remote-endpoint = <&panel0_bridge_out>; @@ -23,6 +23,7 @@ panel0_in: endpoint { }; }; }; +/*i2c2=>LT9211C*/ &main_i2c2 { status = "okay"; @@ -41,7 +42,7 @@ port@0 { reg = <0>; panel0_bridge_in: endpoint { - remote-endpoint = <&dsi0_out>; + remote-endpoint = <&dss1_dpi1_out>; }; }; @@ -62,6 +63,7 @@ &dphy_tx0 { status = "okay"; }; +/* &dss1 { status = "okay"; }; @@ -79,7 +81,27 @@ dss1_dpi1_out: endpoint { }; }; }; +*/ +&dss1 { + bootph-all; + ti,bt656-mode; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&main_dpi_pins_default>; +}; + +&dss1_ports { + /* DSS1-VP2: DPI/HDMI Output */ + hdmi0_dss: port@1 { + reg = <1>; + + dss1_dpi1_out: endpoint { + remote-endpoint = <&panel0_bridge_in>; + }; + }; +}; +/* &dsi0 { status = "okay"; @@ -104,3 +126,4 @@ dsi0_in: endpoint { }; }; }; +*/ diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 25bf11448..c4ef58d18 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -739,6 +739,39 @@ static const struct drm_display_mode bt656_720x576I50_mode = { .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_INTERLACE, }; +#if 1 +//1280*800 +static const struct drm_display_mode bt656_1280_800_mode = { + .clock = 83500, // 41750*2Khz + .hdisplay = 1280, + .hsync_start = 1280 + 72, // hsync_start - hdisplay = vfb1e + .hsync_end = 1280 + 72 + 128, // hsync_end - hsync_start = vfb2e + .htotal = 1280 + 72 + 128 + 200, // hsync_end + hback_porch; 864 = > 858 + .vdisplay = 800, + .vsync_start = 800 + 3, // vsync_start - hdisplay = vfb1o + .vsync_end = 800 + 3 + 6, // vsync_end - vsync_start = vfb2o + .vtotal = 800 + 3 + 6 + 22, // vsync_end + vback_porch; PAL 制式通常为 625 行,NTSC 为 525 行 + //.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |DRM_MODE_FLAG_INTERLACE, + .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC, +}; +#endif + +#if 1 +static const struct panel_desc bt656_lt9211 = { + .modes = &bt656_1280_800_mode, + .num_modes = 1, + .bpc = 8, + .size = { + .width = 129, + .height = 86, + }, + .bus_format = MEDIA_BUS_FMT_UYVY8_2X8, + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE | + DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE, + .connector_type = DRM_MODE_CONNECTOR_DPI, +}; +#endif + static const struct panel_desc bt656_PAL = { .modes = &bt656_720x576I50_mode, .num_modes = 1, @@ -822,8 +855,8 @@ static const struct panel_desc DSI_1080P = { static const struct of_device_id platform_of_match[] = { { - .compatible = "dummy,DSI_1080P", - .data = &DSI_1080P, + .compatible = "dummy,bt656_lt9211", + .data = &bt656_lt9211, }, #if 0 // 没调通 {