Skip to contentSkip to conversation

S5PV210: Add MIPI-DSI Driver.

PATCH New InKi Dae 1 participant 1 message Jun 29, 2010

Subsystems (5)
lore
Share & tools
lore

InKi Dae

author
#0 lore raw

PATCH 3/3 S5PV210: Add MIPI-DSI Driver.

this patch addes MIPI-DSI Driver.

to use this driver, some structures below should be added to machine specific file.

struct dsim_config
- define clock info, data lane count and video mode info for MIPI-DSI Controller.

struct dsim_lcd_config
- define interface mode, channel ID, Pixel format and so on.

struct s5p_platform_dsim
- define callbacks for initializing D-PHY, MIPI reset and trigger releated interfaces of s3c-fb.c file.

Signed-off-by InKi Dae <inki.dae at samsung.com <mailto:[email protected]>>
Signed-off-by Kyungmin Park <kyungmin.park at samsung.com

<mailto:[email protected]>>
---

(quoted diff) +0 -0

b/arch/arm/mach-s5pv210/include/mach/regs-clock.h

index 2a25ab4..f716678 100644

arch/arm/mach-s5pv210/include/mach/regs-clock.h +1 -0
@@ -162,6 +162,7 @@
 
 /* MIPI */
 #define S5P_MIPI_DPHY_EN		(3)
+#define S5P_MIPI_M_RESETN		(1 << 1)
 
 /* S5P_DAC_CONTROL */
 #define S5P_DAC_ENABLE			(1)
arch/arm/plat-samsung/Makefile +3 -0
index b1d82cc..3cd43f2 100644
@@ -49,6 +49,9 @@ obj-$(CONFIG_S3C_DEV_RTC)	+= dev-rtc.o
 obj-$(CONFIG_SAMSUNG_DEV_ADC)	+= dev-adc.o
 obj-$(CONFIG_SAMSUNG_DEV_TS)	+= dev-ts.o
 
+# Device setup - MIPI-DSI
+obj-$(CONFIG_S5P_MIPI_DSI)  += setup-dsim.o
+
 # DMA support
 
 obj-$(CONFIG_S3C_DMA)		+= dma.o
arch/arm/plat-samsung/include/plat/dsim.h new file +470 -0

470 lines not on this page · raw message

arch/arm/plat-samsung/include/plat/mipi_ddi.h new file +98 -0

98 lines not on this page · raw message

arch/arm/plat-samsung/include/plat/regs-dsim.h new file +281 -0

281 lines not on this page · raw message

arch/arm/plat-samsung/setup-dsim.c new file +161 -0

161 lines not on this page · raw message

drivers/video/Kconfig +8 -1
index 3d94a14..c916ac1 100644
@@ -1930,7 +1930,7 @@ config FB_TMIO_ACCELL
 
 config FB_S3C
 	tristate "Samsung S3C framebuffer support"
-	depends on FB && ARCH_S3C64XX
+	depends on FB && (ARCH_S3C64XX || ARCH_S5PV210)
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
@@ -1975,6 +1975,13 @@ config FB_S3C2410_DEBUG
 	  Turn on debugging messages. Note that you can set/unset at run time
 	  through sysfs
 
+config S5P_MIPI_DSI
+	tristate "Samsung SoC MIPI-DSI support."
+	depends on FB_S3C && ARCH_S5PV210
+	default n
+	---help---
+	  This enables support for MIPI-DSI device.
+
 config FB_NUC900
         bool "NUC900 LCD framebuffer support"
         depends on FB && ARCH_W90X900
drivers/video/Makefile +2 -0
index ddc2af2..d841433 100644
@@ -115,6 +115,8 @@ obj-$(CONFIG_FB_SH7760)		  += sh7760fb.o
 obj-$(CONFIG_FB_IMX)              += imxfb.o
 obj-$(CONFIG_FB_S3C)		  += s3c-fb.o
 obj-$(CONFIG_FB_S3C2410)	  += s3c2410fb.o
+obj-$(CONFIG_S5P_MIPI_DSI)	  += s5p-dsim.o s5p_dsim_common.o \
+    					s5p_dsim_lowlevel.o
 obj-$(CONFIG_FB_FSL_DIU)	  += fsl-diu-fb.o
 obj-$(CONFIG_FB_COBALT)           += cobalt_lcdfb.o
 obj-$(CONFIG_FB_PNX4008_DUM)	  += pnx4008/
drivers/video/s5p-dsim.c new file +483 -0

483 lines not on this page · raw message

drivers/video/s5p_dsim_common.c new file +754 -0

754 lines not on this page · raw message

drivers/video/s5p_dsim_common.h new file +38 -0
new file mode 100644
index 0000000..deefca1
@@ -0,0 +1,38 @@
+/* linux/drivers/video/samsung/s5p_dsim_common.h
+ *
+ * Header file for Samsung MIPI-DSI common driver.
+ *
+ * Copyright (c) 2009 Samsung Electronics
+ * InKi Dae <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#ifndef _S5P_DSIM_COMMON_H
+#define _S5P_DSIM_COMMON_H
+
+extern int s5p_dsim_wr_data(void *dsim_data, unsigned int data_id,
+	unsigned int data0, unsigned int data1);
+extern int s5p_dsim_init_header_fifo(struct dsim_global *dsim);
+extern int s5p_dsim_pll_on(struct dsim_global *dsim, unsigned char enable);
+extern unsigned long s5p_dsim_change_pll(struct dsim_global *dsim,
+	unsigned char pre_divider, unsigned short main_divider,
+	unsigned char scaler);
+extern int s5p_dsim_set_clock(struct dsim_global *dsim,
+	unsigned char byte_clk_sel, unsigned char enable);
+extern int s5p_dsim_init_dsim(struct dsim_global *dsim);
+extern int s5p_dsim_set_display_mode(struct dsim_global *dsim,
+	struct dsim_lcd_config *main_lcd, struct dsim_lcd_config *sub_lcd);
+extern int s5p_dsim_init_link(struct dsim_global *dsim);
+extern int s5p_dsim_set_hs_enable(struct dsim_global *dsim);
+extern int s5p_dsim_set_data_transfer_mode(struct dsim_global *dsim,
+	unsigned char data_path, unsigned char hs_enable);
+extern int s5p_dsim_get_frame_done_status(void *dsim_data);
+extern int s5p_dsim_clear_frame_done(void *dsim_data);
+extern int s5p_dsim_enable_frame_done_int(struct dsim_global *dsim, int enable);
+
+extern struct fb_info *registered_fb[FB_MAX] __read_mostly;
+
+#endif /* _S5P_DSIM_COMMON_H */
drivers/video/s5p_dsim_lowlevel.c new file +562 -0

562 lines not on this page · raw message

drivers/video/s5p_dsim_lowlevel.h new file +101 -0

101 lines not on this page · raw message

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100629/177af880/attachment-0001.html>