Skip to contentSkip to conversation

powerpc/t1040qds: Add Video - HDMI support

PATCH New Priyanka Jain 2 participants 2 messages Feb 26, 2014 – Mar 7, 2014

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 powerpc/t1040qds: Add Video - HDMI support

T1040 has internal display interface unit (DIU) for driving video. T1040QDS supports video mode via
-LCD using TI enconder
-HDMI type interface via HDMI encoder

Chrontel, CH7301C encoder which is I2C programmable is used as HDMI connector on T1040QDS.
This patch add support to
-enable Video interface for T1040QDS
-route qixis multiplexing to enable DIU-HDMI interface on board -program DIU pixel clock gerenartor for T1040 -program HDMI encoder via I2C on board

---
Changes for v2: Fix compilation warnings Depends on http://patchwork.ozlabs.org/patch/315294/

 board/freescale/t1040qds/Makefile         |    1 +
 board/freescale/t1040qds/diu.c            |  215 +++++++++++++++++++++++++++++
 board/freescale/t1040qds/t1040qds.h       |    1 +
 board/freescale/t1040qds/t1040qds_qixis.h |   12 ++
 include/configs/T1040QDS.h                |   27 ++++-
 5 files changed, 255 insertions(+), 1 deletions(-)
 create mode 100644 board/freescale/t1040qds/diu.c
board/freescale/t1040qds/Makefile +1 -0
index c7470d7..19ed21b 100644
@@ -10,3 +10,4 @@ obj-$(CONFIG_PCI)     += pci.o
 obj-y	+= law.o
 obj-y	+= tlb.o
 obj-y	+= eth.o
+obj-y	+= diu.o
board/freescale/t1040qds/diu.c new file +215 -0

215 lines not on this page · raw message

board/freescale/t1040qds/t1040qds.h +1 -0
index 79bdeda..5041f37 100644
@@ -9,5 +9,6 @@
 
 void fdt_fixup_board_enet(void *blob);
 void pci_of_setup(void *blob, bd_t *bd);
+int select_i2c_ch_pca9547(u8 ch);
 
 #endif
board/freescale/t1040qds/t1040qds_qixis.h +12 -0
index 2ce8795..98d2d39 100644
@@ -13,6 +13,18 @@
 #define BRDCFG4_EMISEL_MASK		0xE0
 #define BRDCFG4_EMISEL_SHIFT		5
 
+/* BRDCFG5[0:1] controls routing and use of I2C3 & I2C4 ports*/
+#define BRDCFG5_IMX_MASK		0xC0
+#define BRDCFG5_IMX_DIU			0x80
+
+/* BRDCFG15[3] controls LCD Panel Powerdown*/
+#define BRDCFG15_LCDPD_MASK		0x10
+#define BRDCFG15_LCDPD_ENABLED		0x00
+
+/* BRDCFG15[6:7] controls DIU MUX selction*/
+#define BRDCFG15_DIUSEL_MASK		0x03
+#define BRDCFG15_DIUSEL_HDMI		0x00
+
 /* SYSCLK */
 #define QIXIS_SYSCLK_66			0x0
 #define QIXIS_SYSCLK_83			0x1
include/configs/T1040QDS.h +26 -1
index 75ea125..3f26559 100644
@@ -375,7 +375,7 @@ unsigned long get_board_ddr_clk(void);
 #define CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET
 
 #define CONFIG_SYS_MONITOR_LEN		(512 * 1024)
-#define CONFIG_SYS_MALLOC_LEN		(4 * 1024 * 1024)
+#define CONFIG_SYS_MALLOC_LEN		(10 * 1024 * 1024)
 
 /* Serial Port - controlled on board with jumper J8
  * open - index 2
@@ -401,6 +401,25 @@ unsigned long get_board_ddr_clk(void);
 #define CONFIG_SYS_HUSH_PARSER
 #define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
 
+/* Video */
+#define CONFIG_FSL_DIU_FB
+#ifdef CONFIG_FSL_DIU_FB
+#define CONFIG_SYS_DIU_ADDR	(CONFIG_SYS_CCSRBAR + 0x180000)
+#define CONFIG_VIDEO
+#define CONFIG_CMD_BMP
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VIDEO_SW_CURSOR
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
+#define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
+/*
+ * With CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS, flash I/O is really slow, so
+ * disable empty flash sector detection, which is I/O-intensive.
+ */
+#undef CONFIG_SYS_FLASH_EMPTY_INFO
+#endif
+
 /* pass open firmware flat tree */
 #define CONFIG_OF_LIBFDT
 #define CONFIG_OF_BOARD_SETUP
@@ -426,6 +445,11 @@ unsigned long get_board_ddr_clk(void);
 
 /* I2C bus multiplexer */
 #define I2C_MUX_CH_DEFAULT      0x8
+#define I2C_MUX_CH_DIU		0xC
+
+/* LDI/DVI Encoder for display */
+#define CONFIG_SYS_I2C_LDI_ADDR         0x38
+#define CONFIG_SYS_I2C_DVI_ADDR         0x75
 
 /*
  * RTC configuration
@@ -704,6 +728,7 @@ unsigned long get_board_ddr_clk(void);
 	"bank_intlv=cs0_cs1;"					\
 	"usb1:dr_mode=host,phy_type=" __stringify(__USB_PHY_TYPE) "\0"\
 	"netdev=eth0\0"						\
+	"video-mode=fslfb:1024x768-32 at 60,monitor=dvi\0"		\
 	"uboot=" __stringify(CONFIG_UBOOTPATH) "\0"		\
 	"ubootaddr=" __stringify(CONFIG_SYS_TEXT_BASE) "\0"	\
 	"tftpflash=tftpboot $loadaddr $uboot && "		\
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH v2 1/1 powerpc/t1040qds: Add Video - HDMI support

Quoted 13 lines · Priyanka Jain

T1040 has internal display interface unit (DIU) for driving video. T1040QDS supports video mode via

(quoted diff) +0 -2
-LCD using TI enconder
-HDMI type interface via HDMI encoder

Chrontel, CH7301C encoder which is I2C programmable is used as HDMI connector on T1040QDS.
This patch add support to

(quoted diff) +0 -4
-enable Video interface for T1040QDS
-route qixis multiplexing to enable DIU-HDMI interface on board
-program DIU pixel clock gerenartor for T1040
-program HDMI encoder via I2C on board
Quoted 4 lines

---
Changes for v2: Fix compilation warnings Depends on http://patchwork.ozlabs.org/patch/315294/

Applied to u-boot-mpc85xx/master. Thanks.

York