[U-Boot] [PATCH] video: sunxi: de2: add support for LCD SimpleFB

Icenowy Zheng icenowy at aosc.io
Mon Oct 30 10:37:54 UTC 2017


Add support for setting up SimpleFB for LCD display output in DE2
SimpleFB setup code.

Signed-off-by: Icenowy Zheng <icenowy at aosc.io>
---
 drivers/video/sunxi/sunxi_de2.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/drivers/video/sunxi/sunxi_de2.c b/drivers/video/sunxi/sunxi_de2.c
index e8903400ec..a41944e645 100644
--- a/drivers/video/sunxi/sunxi_de2.c
+++ b/drivers/video/sunxi/sunxi_de2.c
@@ -319,7 +319,7 @@ U_BOOT_DEVICE(sunxi_de2) = {
 #if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_VIDEO_DT_SIMPLEFB)
 int sunxi_simplefb_setup(void *blob)
 {
-	struct udevice *de2, *hdmi;
+	struct udevice *de2, *disp;
 	struct video_priv *de2_priv;
 	struct video_uc_platdata *de2_plat;
 	int mux;
@@ -343,16 +343,27 @@ int sunxi_simplefb_setup(void *blob)
 	}
 
 	ret = uclass_find_device_by_name(UCLASS_DISPLAY,
-					 "sunxi_dw_hdmi", &hdmi);
+					 "sunxi_dw_hdmi", &disp);
 	if (ret) {
 		debug("HDMI not present\n");
-		return 0;
+	} else if (device_active(disp)) {
+		if (mux == 0)
+			pipeline = "mixer0-lcd0-hdmi";
+		else
+			pipeline = "mixer1-lcd1-hdmi";
 	}
 
-	if (mux == 0)
-		pipeline = "mixer0-lcd0-hdmi";
-	else
-		pipeline = "mixer1-lcd1-hdmi";
+	ret = uclass_find_device_by_name(UCLASS_DISPLAY,
+					 "sunxi_lcd", &disp);
+	if (ret)
+		debug("LCD not present\n");
+	else if (device_active(disp))
+		pipeline = "mixer0-lcd0";
+
+	if (!pipeline) {
+		debug("No active display present\n");
+		return 0;
+	}
 
 	de2_priv = dev_get_uclass_priv(de2);
 	de2_plat = dev_get_uclass_platdata(de2);
-- 
2.13.6



More information about the U-Boot mailing list