<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:"Malgun Gothic";
        panose-1:2 11 5 3 2 0 0 2 0 4;}
@font-face
        {font-family:"Malgun Gothic";
        panose-1:2 11 5 3 2 0 0 2 0 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        text-autospace:none;
        word-break:break-hangul;
        font-size:10.0pt;
        font-family:"Malgun Gothic";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Malgun Gothic";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
 /* Page Definitions */
 @page Section1
        {size:612.0pt 792.0pt;
        margin:3.0cm 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=KO link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Signed-off-by: Inki Dae
&lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Signed-off-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>---<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;arch/arm/mach-s5pv210/include/mach/regs-clock.h
|&nbsp;&nbsp;&nbsp; 3 +-<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;arch/arm/plat-samsung/Kconfig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 6 +<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;arch/arm/plat-samsung/Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 2 +<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;arch/arm/plat-samsung/include/plat/dsim.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp; 447 +++++++++++++++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;arch/arm/plat-samsung/include/plat/mipi_ddi.h&nbsp;&nbsp;
|&nbsp;&nbsp; 98 ++++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;arch/arm/plat-samsung/include/plat/regs-dsim.h&nbsp;
|&nbsp; 281 +++++++++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;arch/arm/plat-samsung/setup-dsim.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp; 144 +++++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;drivers/video/Kconfig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 7 +<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;drivers/video/Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 2 +<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;drivers/video/s5p-dsim.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp; 463 +++++++++++++++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;drivers/video/s5p_dsim_common.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp; 691 +++++++++++++++++++++++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;drivers/video/s5p_dsim_common.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp;&nbsp; 35 ++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;drivers/video/s5p_dsim_lowlevel.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp; 569 +++++++++++++++++++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;drivers/video/s5p_dsim_lowlevel.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp; 101 ++++<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;14 files changed, 2848 insertions(+),
1 deletions(-)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
arch/arm/plat-samsung/include/plat/dsim.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
arch/arm/plat-samsung/include/plat/mipi_ddi.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
arch/arm/plat-samsung/include/plat/regs-dsim.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
arch/arm/plat-samsung/setup-dsim.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
drivers/video/s5p-dsim.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
drivers/video/s5p_dsim_common.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
drivers/video/s5p_dsim_common.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
drivers/video/s5p_dsim_lowlevel.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;create mode 100644
drivers/video/s5p_dsim_lowlevel.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git
a/arch/arm/mach-s5pv210/include/mach/regs-clock.h
b/arch/arm/mach-s5pv210/include/mach/regs-clock.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index ebaabe0..c8b9366 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>---
a/arch/arm/mach-s5pv210/include/mach/regs-clock.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++
b/arch/arm/mach-s5pv210/include/mach/regs-clock.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -196,7 +196,8 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;#define S5P_OTHERS_USB_SIG_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;/* MIPI */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>-#define S5P_MIPI_DPHY_EN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_MIPI_DPHY_EN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3
&lt;&lt; 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_MIPI_M_RESETN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;/* S5P_DAC_CONTROL */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;#define S5P_DAC_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git a/arch/arm/plat-samsung/Kconfig
b/arch/arm/plat-samsung/Kconfig<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index dcd6eff..cadbe32 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- a/arch/arm/plat-samsung/Kconfig<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/arch/arm/plat-samsung/Kconfig<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -257,6 +257,12 @@ config S3C64XX_DEV_SPI<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Compile in platform device definitions for S3C64XX's type<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
SPI controllers.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+config S5PV210_SETUP_DSIM<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; depends
on REGULATOR <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; help<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Common setup code for MIPI-DSIM<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;config SAMSUNG_DEV_TS<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; help<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git a/arch/arm/plat-samsung/Makefile
b/arch/arm/plat-samsung/Makefile<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index afcce47..bf866eb 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- a/arch/arm/plat-samsung/Makefile<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/arch/arm/plat-samsung/Makefile<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -59,6 +59,8 @@
obj-$(CONFIG_SAMSUNG_DEV_IDE)&nbsp;&nbsp;&nbsp;&nbsp; += dev-ide.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_SAMSUNG_DEV_TS)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +=
dev-ts.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_SAMSUNG_DEV_KEYPAD)&nbsp;&nbsp;&nbsp; +=
dev-keypad.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+obj-$(CONFIG_S5PV210_SETUP_DSIM)&nbsp; +=
setup-dsim.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;# DMA support<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_S3C_DMA)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +=
dma.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git
a/arch/arm/plat-samsung/include/plat/dsim.h
b/arch/arm/plat-samsung/include/plat/dsim.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..9c1d6a3<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++
b/arch/arm/plat-samsung/include/plat/dsim.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,447 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*
linux/arm/arch/mach-s5pc110/include/mach/dsim.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Platform data header for Samsung
MIPI-DSIM.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Copyright (c) 2009 Samsung Electronics<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * InKi Dae &lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or modify<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * it under the terms of the GNU General
Public License version 2 as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software
Foundation.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#ifndef _DSIM_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define _DSIM_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/device.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* h/w configuration */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define MIPI_FIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24000000<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TIMEOUT_MS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5000<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_NO_OF_INTERRUPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TRUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_FALSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HEADER_FIFO_SZ&nbsp; 16<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_interface_type {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_COMMAND
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_VIDEO
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_state {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_RESET
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_INIT
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_STOP
= 2,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_HSCLKEN
= 3,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_ULPS
= 4,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_virtual_ch_no {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_VIRTUAL_CH_0
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_VIRTUAL_CH_1
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_VIRTUAL_CH_2
= 2,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_VIRTUAL_CH_3
= 3,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_video_mode_type {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_NON_BURST_SYNC_EVENT
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_NON_BURST_SYNC_PULSE
= 2,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_BURST
= 3,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_NON_VIDEO_MODE
= 4,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_fifo_state {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_RX_DATA_FULL
= (1 &lt;&lt; 25),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_RX_DATA_EMPTY
= (1 &lt;&lt; 24),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SFR_HEADER_FULL
= (1 &lt;&lt; 23),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SFR_HEADER_EMPTY
= (1 &lt;&lt; 22),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SFR_PAYLOAD_FULL
= (1 &lt;&lt; 21),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SFR_PAYLOAD_EMPTY
= (1 &lt;&lt; 20),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I80_HEADER_FULL
= (1 &lt;&lt; 19),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I80_HEADER_EMPTY
= (1 &lt;&lt; 18),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I80_PALOAD_FULL
= (1 &lt;&lt; 17),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I80_PALOAD_EMPTY
= (1 &lt;&lt; 16),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB_DISP_HEADER_FULL
= (1 &lt;&lt; 15),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB_DISP_HEADER_EMPTY
= (1 &lt;&lt; 14),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB_DISP_PAYLOAD_FULL
= (1 &lt;&lt; 13),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB_DISP_PAYLOAD_EMPTY
= (1 &lt;&lt; 12),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAIN_DISP_HEADER_FULL
= (1 &lt;&lt; 11),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAIN_DISP_HEADER_EMPTY
= (1 &lt;&lt; 10),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAIN_DISP_PAYLOAD_FULL
= (1 &lt;&lt; 9),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAIN_DISP_PAYLOAD_EMPTY
= (1 &lt;&lt; 8),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_no_of_data_lane {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_DATA_LANE_1
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_DATA_LANE_2
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_DATA_LANE_3
= 2,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_DATA_LANE_4
= 3,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_byte_clk_src {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_PLL_OUT_DIV8
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_EXT_CLK_DIV8
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_EXT_CLK_BYPASS
= 2,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_lane {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_DATA0
= (1 &lt;&lt; 0),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_DATA1
= (1 &lt;&lt; 1),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_DATA2
= (1 &lt;&lt; 2),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_DATA3
= (1 &lt;&lt; 3),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_DATA_ALL
= 0xf,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_CLOCK
= (1 &lt;&lt; 4),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_ALL
= DSIM_LANE_CLOCK | DSIM_LANE_DATA_ALL,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_pixel_format {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_CMD_3BPP
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_CMD_8BPP
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_CMD_12BPP
= 2,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_CMD_16BPP
= 3,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_VID_16BPP_565
= 4,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_VID_18BPP_666PACKED
= 5,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_18BPP_666LOOSELYPACKED
= 6,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_24BPP_888
= 7,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_lane_state {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_STATE_HS_READY,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_STATE_ULPS,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_STATE_STOP,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_STATE_LPDT,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_transfer {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_TRANSFER_NEITHER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_TRANSFER_BYCPU&nbsp;&nbsp; =
(1 &lt;&lt; 7),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_TRANSFER_BYLCDC =
(1 &lt;&lt; 6),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_TRANSFER_BOTH&nbsp;&nbsp;&nbsp; =
(0x3 &lt;&lt; 6)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_lane_change {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_NO_CHANGE
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_DATA_LANE_CHANGE
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_CLOCK_NALE_CHANGE
= 2,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_ALL_LANE_CHANGE
= 3,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum dsim_int_src {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_ALL_OF_INTR
= 0xffffffff,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_PLL_STABLE
= (1 &lt;&lt; 31),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/**<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * struct dsim_config - interface for
configuring mipi-dsi controller.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @auto_flush: enable or disable Auto
flush of MD FIFO using VSYNC pulse.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @eot_disable: enable or disable EoT
packet in HS mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @auto_vertical_cnt: specifies auto
vertical count mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in
Video mode, the vertical line transition uses line counter<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; configured
by VSA, VBP, and Vertical resolution.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If
this bit is set to '1', the line counter does not use VSA and VBP<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; registers.(in
command mode, this variable is ignored)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @hse: set horizontal sync event mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In
VSYNC pulse and Vporch area, MIPI DSI master transfers only HSYNC<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start
packet to MIPI DSI slave at MIPI DSI spec1.1r02.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
bit transfers HSYNC end packet in VSYNC pulse and Vporch area<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (in
mommand mode, this variable is ignored)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @hfp: specifies HFP disable mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
this variable is set, DSI master ignores HFP area in VIDEO mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (in
command mode, this variable is ignored)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @hbp: specifies HBP disable mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
this variable is set, DSI master ignores HBP area in VIDEO mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (in
command mode, this variable is ignored)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @hsa: specifies HSA disable mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
this variable is set, DSI master ignores HSA area in VIDEO mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (in
command mode, this variable is ignored)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @e_no_data_lane: specifies data lane
count to be used by Master.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @e_byte_clk: select byte clock source.
(it must be DSIM_PLL_OUT_DIV8)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_EXT_CLK_DIV8
and DSIM_EXT_CLK_BYPASSS are not supported.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @pll_stable_time: specifies the PLL
Timer for stability of the ganerated<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clock(System
clock cycle base)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
the timer value goes to 0x00000000, the clock stable bit of status<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and
interrupt register is set.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @esc_clk: specifies escape clock
frequency for getting the escape clock<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prescaler
value.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @stop_holding_cnt: specifies the
interval value between transmitting<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read
packet(or write &quot;set_tear_on&quot; command) and BTA request.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; after
transmitting read packet or write &quot;set_tear_on&quot; command,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BTA
requests to D-PHY automatically. this counter value specifies<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the
interval between them.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @bta_timeout: specifies the timer for
BTA.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
register specifies time out from BTA request to change<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the
direction with respect to Tx escape clock.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @rx_timeout: specifies the timer for LP
Rx mode timeout.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
register specifies time out on how long RxValid deasserts,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; after
RxLpdt asserts with respect to Tx escape clock.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -
RxValid specifies Rx data valid indicator.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -
RxLpdt specifies an indicator that D-PHY is under RxLpdt mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -
RxValid and RxLpdt specifies signal from D-PHY.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @e_lane_swap: swaps Dp/Dn channel of
Clock lane or Data lane.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
this bit is set, Dp and Dn channel would be swapped each other.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct dsim_config {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char auto_flush;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char eot_disable;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char auto_vertical_cnt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char hse;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char hfp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char hbp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char hsa;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enum
dsim_no_of_data_lane e_no_data_lane;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enum
dsim_byte_clk_src e_byte_clk;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* ===========================================<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; P&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
M&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
MHz&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* -------------------------------------------<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 100&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
100&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 100&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
200&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 63&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
252&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 100&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
300&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 110&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
330&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 350&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 1 &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
350&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 100&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
400&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 150&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
450&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 118&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
472&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 250&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
500&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 100&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp;
|<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 81&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
648&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 88&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
704&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 90&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
720&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 100&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
800&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 425&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
850&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 150&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
900&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 475&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;
950&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* |&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 250&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 1000&nbsp;&nbsp;&nbsp; |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* -------------------------------------------<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char p;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
short m;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char s;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int pll_stable_time;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
long esc_clk;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
short stop_holding_cnt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char bta_timeout;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
short rx_timeout;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enum
dsim_video_mode_type e_lane_swap;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/**<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * struct dsim_lcd_config - interface for
configuring mipi-dsi based lcd panel.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @e_interface: specifies interface to be
used.(CPU or RGB interface)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @parameter[0]: specifies virtual
channel number<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; that
main or sub diaplsy uses.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @parameter[1]: specifies pixel stream
format for main or sub display.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @parameter[2]: selects Burst mode in
Video mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in
Non-burst mode, RGB data area is filled with RGB data and NULL<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; packets,
according to input bandwidth of RGB interface.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In
Burst mode, RGB data area is filled with RGB data only.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @lcd_panel_info: pointer for lcd panel
specific structure.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
structure specifies width, height, timing and polarity and so on.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @mipi_ddi_pd: pointer for lcd panel
platform data.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct dsim_lcd_config {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enum
dsim_interface_type e_interface;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int parameter[3];<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void
*lcd_panel_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void
*mipi_ddi_pd;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct dsim_global;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct fb_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct regulator;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/**<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * struct s5p_platform_dsim - interface to
platform data for mipi-dsi driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @clk_name: specifies clock name for
mipi-dsi.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @lcd_panel_name: specifies lcd panel
name registered to mipi-dsi driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd
panel driver searched would be actived.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @mipi_1_1v_name: specifies mipi 1.1v
regulator name.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @mipi_1_8v_name: specifies mipi 1.8v
regulator name.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @platfrom_rev: specifies platform
revision number.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; revision
number should become 1.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @dsim_config: pointer of structure for
configuring mipi-dsi controller.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @dsim_lcd_info: pointer to structure
for configuring<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mipi-dsi
based lcd panel.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @mipi_power: callback pointer for
enabling or disabling mipi power.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @part_reset: callback pointer for
reseting mipi phy.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @init_d_phy: callback pointer for
enabing d_phy of dsi master.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @get_fb_frame_done: callback pointer
for getting frame done status of the<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display
controller(FIMD).<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @trigger: callback pointer for
triggering display controller(FIMD)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in
case of CPU mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @delay_for_stabilization: specifies
stable time.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
delay needs when writing data on SFR<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; after
mipi mode became LP mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct s5p_platform_dsim {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp;&nbsp;&nbsp; *clk_name;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp;&nbsp;&nbsp; *mipi_1_1v_name;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp;&nbsp;&nbsp; *mipi_1_8v_name;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp;&nbsp;&nbsp; lcd_panel_name[64];<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int platform_rev;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_config *dsim_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *dsim_lcd_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int delay_for_stabilization;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*mipi_power) (struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
regulator *p_mipi_1_1v,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
regulator *p_mipi_1_8v, unsigned int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*part_reset) (struct dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*init_d_phy) (struct dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*get_fb_frame_done) (struct fb_info *info);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void
(*trigger) (struct fb_info *info);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/**<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * struct dsim_global - global interface
for mipi-dsi driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @dev: driver model representation of
the device.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @clock: pointer to MIPI-DSI clock of
clock framework.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @irq: interrupt number to MIPI-DSI
controller.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @reg_base: base address to memory
mapped SRF of MIPI-DSI controller.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (virtual
address)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @r_mipi_1_1v: pointer to regulator for
MIPI 1.1v power.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @r_mipi_1_8v: pointer to regulator for
MIPI 1.8v power.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @pd: pointer to MIPI-DSI driver
platform data.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @dsim_lcd_info: pointer to structure
for configuring<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mipi-dsi
based lcd panel.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @lcd_panel_info: pointer for lcd panel
specific structure.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
structure specifies width, height, timing and polarity and so on.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @mipi_ddi_pd: pointer for lcd panel
platform data.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @mipi_drv: pointer to driver structure
for mipi-dsi based lcd panel.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @s3cfb_notif: kernel notifier structure
to be registered<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by
device specific framebuffer driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
notifier could be used by fb_blank of device specifiec<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; framebuffer
driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @state: specifies status of MIPI-DSI
controller.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the
status could be RESET, INIT, STOP, HSCLKEN and ULPS.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @data_lane: specifiec enabled data lane
number.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
variable would be set by driver according to e_no_data_lane<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; automatically.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @e_clk_src: select byte clock source.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
variable would be set by driver according to e_byte_clock<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; automatically.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @hs_clk: HS clock rate.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
variable would be set by driver automatically.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @byte_clk: Byte clock rate.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
variable would be set by driver automatically.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @escape_clk: ESCAPE clock rate.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
variable would be set by driver automatically.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @freq_band: indicates Bitclk frequency
band for D-PHY global timing.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial
Clock(=ByteClk X 8)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FreqBand[3:0]<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~
99.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0000<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100
~ 119.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0001<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 120
~ 159.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0010<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 160
~ 199.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0011<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 200
~ 239.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0100<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 140
~ 319.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0101<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 320
~ 389.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0110<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 390
~ 449.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0111<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 450
~ 509.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 510
~ 559.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1001<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 560
~ 639.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1010<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640
~ 689.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1011<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 690
~ 769.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1100<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 770
~ 869.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1101<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 870
~ 949.99 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1110<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 950
~ 1000 MHz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1111<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
variable would be calculated by driver automatically.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * @header_fifo_index: specifies header
fifo index.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this
variable is not used yet.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct dsim_global {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
device *dev;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
clk *clock;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int irq;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void
__iomem *reg_base;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
regulator *r_mipi_1_1v;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
regulator *r_mipi_1_8v;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
s5p_platform_dsim *pd;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_config *dsim_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *dsim_lcd_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
fb_videomode *lcd_panel_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
mipi_ddi_platform_data *mipi_ddi_pd;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
mipi_lcd_driver *mipi_drv;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
notifier_block s3cfb_notif;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char state;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data_lane;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enum
dsim_byte_clk_src e_clk_src;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
long hs_clk;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
long byte_clk;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
long escape_clk;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
char freq_band;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char
header_fifo_index[DSIM_HEADER_FIFO_SZ];<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * driver structure for mipi-dsi based lcd
panel.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * this structure should be registered by
lcd panel driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * mipi-dsi driver seeks lcd panel
registered through name field<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * and calls these callback functions in
appropriate time.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct mipi_lcd_driver {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *name;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*init)(struct
device *dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*display_on)(struct
device *dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*set_link)(struct
mipi_ddi_platform_data *pd);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*probe)(struct
device *dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*remove)(struct
device *dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*shutdown)(struct
device *dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*suspend)(struct
device *dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*resume)(struct
device *dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * register mipi_lcd_driver object defined
by lcd panel driver<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * to mipi-dsi driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int
s5p_dsim_register_lcd_driver(struct mipi_lcd_driver *lcd_drv);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* reset MIPI PHY through MIPI PHY CONTROL
REGISTER. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_part_reset(struct
dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* enable MIPI D-PHY and DSI Master block.
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_init_d_phy(struct
dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct regulator;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* enable regulators to MIPI-DSI power. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_mipi_power(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
regulator *p_mipi_1_1v, struct regulator *p_mipi_1_8v,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* send commands to mipi based lcd panel.
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_wr_data(void
*dsim_data, unsigned int data_id,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data0, unsigned int data1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* get framedone status of mipi-dsi
controller. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int
s5p_dsim_get_frame_done_status(void *dsim_data);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* clear framedone interrupt of mipi-dsi
controller. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_clear_frame_done(void
*dsim_data);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* wrapper function for changing transfer
mode. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int
s5p_dsim_change_transfer_mode(unsigned int mode);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#endif /* _DSIM_H */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git a/arch/arm/plat-samsung/include/plat/mipi_ddi.h
b/arch/arm/plat-samsung/include/plat/mipi_ddi.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..d9a82b7<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++
b/arch/arm/plat-samsung/include/plat/mipi_ddi.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,98 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*
linux/arm/arch/mach-s5pc110/include/mach/mipi_ddi.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * definitions for DDI based MIPI-DSI.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Copyright (c) 2009 Samsung Electronics<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * InKi Dae &lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or modify<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * it under the terms of the GNU General
Public License version 2 as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software
Foundation.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#ifndef _MIPI_DDI_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define _MIPI_DDI_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum mipi_ddi_interface {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RGB_IF
= 0x4000,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I80_IF
= 0x8000,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YUV_601
= 0x10000,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YUV_656
= 0x20000,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MIPI_VIDEO
= 0x1000,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MIPI_COMMAND
= 0x2000,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum mipi_ddi_panel_select {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DDI_MAIN_LCD
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DDI_SUB_LCD
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum mipi_ddi_model {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S6DR117
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+enum mipi_ddi_parameter {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
DSIM video interface parameter */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSI_VIRTUAL_CH_ID
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSI_FORMAT
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSI_VIDEO_MODE_SEL
= 2,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct lcd_device;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct fb_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct mipi_ddi_platform_data {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void
*dsim_data;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* it is used for command mode lcd panel and<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* when all contents of framebuffer in panel module are transfered<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* to lcd panel it occurs te signal.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* note:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* - in case of command mode(cpu mode), it should be triggered only<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*&nbsp;&nbsp; when TE signal of lcd panel and frame done interrupt of display<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*&nbsp;&nbsp; controller or mipi controller occurs.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int te_irq;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* it is used for PM stable time at te interrupt handler and<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* could be used according to lcd panel characteristic or not.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int resume_complete;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*lcd_reset) (struct lcd_device *ld);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*lcd_power_on) (struct lcd_device *ld, int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*backlight_on) (int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
transfer command to lcd panel at LP mode. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*cmd_write) (void *dsim_data, unsigned int data_id,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data0, unsigned int data1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*cmd_read) (void *dsim_data, unsigned int data_id,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data0, unsigned int data1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* get the status that all screen data have been transferred<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* to mipi-dsi.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*get_dsim_frame_done) (void *dsim_data);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*clear_dsim_frame_done) (void *dsim_data);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* changes mipi transfer mode to LP or HS mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* LP mode needs when some commands like gamma values transfers<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* to lcd panel.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*change_dsim_transfer_mode) (unsigned int mode);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
get frame done status of display controller. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
(*get_fb_frame_done) (struct fb_info *info);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
trigger display controller in case of cpu mode. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void
(*trigger) (struct fb_info *info);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reset_delay;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int power_on_delay;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int power_off_delay;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#endif /* _MIPI_DDI_H */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git
a/arch/arm/plat-samsung/include/plat/regs-dsim.h b/arch/arm/plat-samsung/include/plat/regs-dsim.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..dc83089<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++
b/arch/arm/plat-samsung/include/plat/regs-dsim.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,281 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*
linux/arch/arm/plat-s5pc11x/include/plat/regs-dsim.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Register definition file for Samsung
MIPI-DSIM driver<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * InKi Dae &lt;inki.dae@samsung.com&gt;,
Copyright (c) 2009 Samsung Electronics<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or modify<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * it under the terms of the GNU General
Public License version 2 as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software
Foundation.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#ifndef _REGS_DSIM_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define _REGS_DSIM_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x0)&nbsp;&nbsp;&nbsp;&nbsp; /*
Status register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_SWRST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x4)&nbsp;&nbsp;&nbsp;&nbsp; /*
Software reset register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_CLKCTRL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x8)&nbsp;&nbsp;&nbsp;&nbsp; /*
Clock control register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_TIMEOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0xc)&nbsp;&nbsp;&nbsp;&nbsp; /*
Time out register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_CONFIG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x10)&nbsp;&nbsp;&nbsp; /*
Configuration register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_ESCMODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x14)&nbsp;&nbsp;&nbsp; /*
Escape mode register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* Main display image resolution register
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_MDRESOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x18)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_MVPORCH&nbsp;&nbsp;&nbsp;&nbsp; (0x1c)&nbsp;&nbsp;&nbsp; /*
Main display Vporch register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_MHPORCH&nbsp;&nbsp;&nbsp;&nbsp; (0x20)&nbsp;&nbsp;&nbsp; /*
Main display Hporch register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_MSYNC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x24)&nbsp;&nbsp;&nbsp; /*
Main display sync area register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* Sub display image resolution register
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_SDRESOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x28)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_INTSRC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x2c)&nbsp;&nbsp;&nbsp; /*
Interrupt source register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_INTMSK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x30)&nbsp;&nbsp;&nbsp; /*
Interrupt mask register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_PKTHDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x34)&nbsp;&nbsp;&nbsp; /*
Packet Header FIFO register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_PAYLOAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x38)&nbsp;&nbsp;&nbsp; /*
Payload FIFO register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_RXFIFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x3c)&nbsp;&nbsp;&nbsp; /*
Read FIFO register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_FIFOTHLD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x40)&nbsp;&nbsp;&nbsp; /*
FIFO threshold level register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_FIFOCTRL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x44)&nbsp;&nbsp;&nbsp; /*
FIFO status and control register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* FIFO memory AC characteristic register
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_MEMACCHR&nbsp;&nbsp; (0x48)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_PLLCTRL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x4c)&nbsp;&nbsp;&nbsp; /*
PLL control register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_PLLTMR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x50)&nbsp;&nbsp;&nbsp; /*
PLL timer register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_PHYACCHR&nbsp;&nbsp;&nbsp;&nbsp; (0x54)&nbsp;&nbsp;&nbsp; /*
D-PHY AC characteristic register */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define S5P_DSIM_PHYACCHR1&nbsp;&nbsp; (0x58)&nbsp;&nbsp;&nbsp; /*
D-PHY AC characteristic register1 */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* DSIM_SWRST */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_FUNCRST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SWRST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_TIMEOUT */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_LPDR_TOUT_SHIFT (0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BTA_TOUT_SHIFT&nbsp;&nbsp; (16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_LPDR_TOUT(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xffff) &lt;&lt; DSIM_LPDR_TOUT_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BTA_TOUT(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xff) &lt;&lt; DSIM_BTA_TOUT_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_CLKCTRL */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_ESC_PRESCALER_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_LANE_ESC_CLKEN_SHIFT&nbsp;&nbsp;&nbsp;&nbsp; (19)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BYTE_CLKEN_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (24)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BYTE_CLK_SRC_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (25)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PLL_BYPASS_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (27)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_ESC_CLKEN_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (28)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_REQUEST_HSCLK_SHIFT&nbsp; (31)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_ESC_PRESCALER(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xffff) &lt;&lt; \<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_ESC_PRESCALER_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_LANE_ESC_CLKEN(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x1f) &lt;&lt; \<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_ESC_CLKEN_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BYTE_CLK_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; DSIM_BYTE_CLKEN_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BYTE_CLK_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; DSIM_BYTE_CLKEN_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BYTE_CLKSRC(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x3) &lt;&lt; DSIM_BYTE_CLK_SRC_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PLL_BYPASS_PLL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; DSIM_PLL_BYPASS_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PLL_BYPASS_EXTERNAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; DSIM_PLL_BYPASS_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_ESC_CLKEN_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; DSIM_ESC_CLKEN_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_ESC_CLKEN_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; DSIM_ESC_CLKEN_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_CONFIG */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_LANE_EN_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_NUM_OF_DATALANE_SHIFT (5)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_SHIFT&nbsp;&nbsp;&nbsp; (8)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_SHIFT&nbsp; (12)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_VC_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VC_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (18)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HSA_MODE_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (20)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HBP_MODE_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (21)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HFP_MODE_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (22)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HSE_MODE_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (23)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_AUTO_MODE_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (24)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_VIDEO_MODE_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (25)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BURST_MODE_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (26)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SYNC_INFORM_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (27)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_EOT_R03_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (28)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_LANE_ENx(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((1)
&lt;&lt; x)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* in case of Gemunus, it should be 0x1.
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_NUM_OF_DATA_LANE(x)&nbsp;&nbsp;&nbsp;&nbsp; ((x)
&lt;&lt; 5)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_3BPP&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 8) /* command mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_8BPP&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 8) /* command mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_12BPP&nbsp;&nbsp;&nbsp; (2
&lt;&lt; 8) /* command mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_16BPP&nbsp;&nbsp;&nbsp; (3
&lt;&lt; 8) /* command mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_16BPP_RGB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (4
&lt;&lt; 8) /* video mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_18BPP_PRGB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (5
&lt;&lt; 8) /* video mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_18BPP_LRGB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (6
&lt;&lt; 8) /* common */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_PIX_FORMAT_24BPP_RGB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (7
&lt;&lt; 8) /* common */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_3BPP&nbsp;&nbsp; (0
&lt;&lt; 12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* command
mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_8BPP&nbsp;&nbsp; (1
&lt;&lt; 12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* command
mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_12BPP&nbsp; (2
&lt;&lt; 12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* command
mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_16BPP&nbsp; (3
&lt;&lt; 12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* command
mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_16BPP_RGB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (4
&lt;&lt; 12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* video
mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_18BPP_PRGB&nbsp;&nbsp;&nbsp;&nbsp; (5
&lt;&lt; 12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* video
mode only */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_18BPP_LRGB&nbsp;&nbsp;&nbsp;&nbsp; (6
&lt;&lt; 12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* common */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_PIX_FORMAT_24BPP_RGB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (7
&lt;&lt; 12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* common */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* Virtual channel number for sub display
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_VC(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x3) &lt;&lt; 16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* Virtual channel number for main display
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VC(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x3) &lt;&lt; 18)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HSA_MODE_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 20)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HSA_MODE_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 20)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HBP_MODE_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 21)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HBP_MODE_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 21)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HFP_MODE_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 22)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HFP_MODE_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 22)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HSE_MODE_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 23)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_HSE_MODE_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 23)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_AUTO_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 24)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_CONFIGURATION_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 24)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_VIDEO_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 25)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_COMMAND_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 25)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_BURST_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 26)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_NON_BURST_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 26)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SYNC_INFORM_PULSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 27)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SYNC_INFORM_EVENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 27)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* enable EoT packet generation for
V1.01r11 */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_EOT_R03_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 28)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* disable EoT packet generation for
V1.01r03 */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_EOT_R03_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 28)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_ESCMODE */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_STOP_STATE_CNT_SHIFT&nbsp;&nbsp;&nbsp;&nbsp; (21)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_STOP_STATE_CNT(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x3ff) &lt;&lt; \<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STOP_STATE_CNT_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_FORCE_STOP_STATE_SHIFT&nbsp; (20)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_FORCE_BTA_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_CMD_LPDT_HS_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 7)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_CMD_LPDT_LP_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 7)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_LPDT_HS_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 6)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_LPDT_LP_MODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 6)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_TRIGGER_RST_SHIFT&nbsp;&nbsp;&nbsp;&nbsp; (4)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_UIPS_DAT_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_UIPS_EXIT_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_UIPS_CLK_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_UIPS_CLK_EXIT_SHIFT&nbsp;&nbsp;&nbsp; (0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_MDRESOL */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_STAND_BY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 31)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_NOT_READY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 31)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VRESOL(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x7ff) &lt;&lt; 16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HRESOL(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0X7ff) &lt;&lt; 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_MVPORCH */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_CMD_ALLOW_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (28)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_STABLE_VFP_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VBP_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_CMD_ALLOW_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0xf
&lt;&lt; DSIM_CMD_ALLOW_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_STABLE_VFP_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x7ff
&lt;&lt; DSIM_STABLE_VFP_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VBP_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0x7ff
&lt;&lt; DSIM_MAIN_VBP_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_CMD_ALLOW(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xf) &lt;&lt; DSIM_CMD_ALLOW_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_STABLE_VFP(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x7ff) &lt;&lt; DSIM_STABLE_VFP_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VBP(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x7ff) &lt;&lt; DSIM_MAIN_VBP_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_MHPORCH */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HFP_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HBP_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HFP_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((0xffff)
&lt;&lt; DSIM_MAIN_HFP_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HBP_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((0xffff)
&lt;&lt; DSIM_MAIN_HBP_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HFP(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xffff) &lt;&lt; DSIM_MAIN_HFP_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HBP(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xffff) &lt;&lt; DSIM_MAIN_HBP_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_MSYNC */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VSA_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (22)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HSA_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VSA_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((0x3ff)
&lt;&lt; DSIM_MAIN_VSA_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HSA_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((0xffff)
&lt;&lt; DSIM_MAIN_HSA_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_VSA(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x3ff) &lt;&lt; DSIM_MAIN_VSA_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_HSA(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xffff) &lt;&lt; DSIM_MAIN_HSA_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_SDRESOL */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_STANDY_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (31)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_VRESOL_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_HRESOL_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_STANDY_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((0x1)
&lt;&lt; DSIM_SUB_STANDY_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_VRESOL_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((0x7ff)
&lt;&lt; DSIM_SUB_VRESOL_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_HRESOL_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((0x7ff)
&lt;&lt; DSIM_SUB_HRESOL_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_STANDY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; DSIM_SUB_STANDY_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_NOT_READY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; DSIM_SUB_STANDY_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_VRESOL(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x7ff) &lt;&lt; DSIM_SUB_VRESOL_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_HRESOL(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x7ff) &lt;&lt; DSIM_SUB_HRESOL_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_INTSRC */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_CONTENT_LP1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_CONTENT_LP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_CONTROL0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 2)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_CONTROL1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 3)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_CONTROL2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 4)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_CONTROL3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 5)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_SYNC0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 6)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_SYNC1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 7)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_SYNC2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 8)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_SYNC3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 9)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_ESC0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 10)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_ESC1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 11)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_ESC2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 12)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_ESC3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 13)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_RX_CRC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 14)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_ERR_RX_ECC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 15)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_RX_ACK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_RX_TE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 17)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_RX_DAT_DONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 18)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_TA_TOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 20)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_LPDR_TOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 21)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_FRAME_DONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 24)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_BUS_TURN_OVER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 25)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_SYNC_OVERRIDE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 28)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_SFR_FIFO_EMPTY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 29)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_SW_RST_RELEASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 30)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTSRC_PLL_STABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 31)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_INTMSK */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_CONTENT_LP1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_CONTENT_LP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_CONTROL0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 2)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_CONTROL1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 3)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_CONTROL2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 4)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_CONTROL3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 5)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_SYNC0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 6)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_SYNC1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 7)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_SYNC2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 8)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_SYNC3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 9)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_ESC0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 10)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_ESC1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 11)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_ESC2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 12)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_ESC3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 13)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_RX_CRC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 14)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_ERR_RX_ECC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 15)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_RX_ACK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_RX_TE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 17)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_RX_DAT_DONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 18)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_TA_TOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 20)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_LPDR_TOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 21)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_FRAME_DONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 24)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_BUS_TURN_OVER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 25)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_SFR_FIFO_EMPTY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 29)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_SW_RST_RELEASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 30)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define INTMSK_PLL_STABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 31)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_PKTHDR */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PACKET_HEADER_DI(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xff) &lt;&lt; 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* Word count lower byte for long packet
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PACKET_HEADER_DAT0(x)&nbsp;&nbsp; (((x)
&amp; 0xff) &lt;&lt; 8)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* Word count upper byte for long packet
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PACKET_HEADER_DAT1(x)&nbsp;&nbsp; (((x)
&amp; 0xff) &lt;&lt; 16)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_FIFOCTRL */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_RX_FIFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 4)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_TX_SFR_FIFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 3)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_I80_FIFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 2)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_SUB_DISP_FIFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_MAIN_DISP_FIFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_PHYACCHR */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_AFC_CTL(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x7) &lt;&lt; 5)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_AFC_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1
&lt;&lt; 14)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_AFC_DISABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0
&lt;&lt; 14)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* S5P_DSIM_PLLCTRL */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PMS_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PLL_EN_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (23)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_FREQ_BAND_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (24)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_PMS(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0x7ffff) &lt;&lt; DSIM_PMS_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define DSIM_FREQ_BAND(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (((x)
&amp; 0xf) &lt;&lt; DSIM_FREQ_BAND_SHIFT)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#endif /* _REGS_DSIM_H */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git
a/arch/arm/plat-samsung/setup-dsim.c b/arch/arm/plat-samsung/setup-dsim.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..874efa0<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/arch/arm/plat-samsung/setup-dsim.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,144 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * S5PC110 MIPI-DSIM driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Author: InKi Dae
&lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * modify it under the terms of the GNU
General Public License as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software
Foundation; either version 2 of<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * the License, or (at your option) any
later version.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is distributed in the hope
that it will be useful,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * but WITHOUT ANY WARRANTY; without even
the implied warranty of<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.&nbsp;&nbsp;&nbsp;&nbsp;  See the<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * GNU General Public License for more
details.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * You should have received a copy of the
GNU General Public License<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * along with this program; if not, write
to the Free Software<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Foundation, Inc., 59 Temple Place,
Suite 330, Boston,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * MA 02111-1307 USA<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/kernel.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/string.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/io.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/err.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/platform_device.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/clk.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include
&lt;linux/regulator/consumer.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;mach/map.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;mach/regs-clock.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/dsim.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/clock.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/regs-dsim.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static int s5p_dsim_enable_d_phy(struct
dsim_global *dsim, unsigned int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= readl(S5P_MIPI_CONTROL) &amp; ~(1 &lt;&lt; 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (enable &lt;&lt; 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
S5P_MIPI_CONTROL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;%s : %x\n&quot;, __func__, reg);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static int
s5p_dsim_enable_dsi_master(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= readl(S5P_MIPI_CONTROL) &amp; ~(1 &lt;&lt; 2);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (enable &lt;&lt; 2);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
S5P_MIPI_CONTROL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;%s : %x\n&quot;, __func__, reg);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_part_reset(struct dsim_global
*dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(S5P_MIPI_M_RESETN,
S5P_MIPI_PHY_CON0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;%s\n&quot;, __func__);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_init_d_phy(struct dsim_global
*dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* DPHY and Master block must be enabled at the system initialization<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* step before data access from/to DPHY begins.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_d_phy(dsim,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_dsi_master(dsim,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;%s\n&quot;, __func__);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_mipi_power(struct dsim_global
*dsim, struct regulator *p_mipi_1_1v,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
regulator *p_mipi_1_8v, unsigned int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
ret = -1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(IS_ERR(p_mipi_1_1v) || IS_ERR(p_mipi_1_8v)) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,
&quot;p_mipi_1_1v or p_mipi_1_8v is NULL.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(enable) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(p_mipi_1_1v)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= regulator_enable(p_mipi_1_1v);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(ret &lt; 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;failed
to enable regulator mipi_1_1v.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(p_mipi_1_8v)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= regulator_enable(p_mipi_1_8v);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(ret &lt; 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;failed
to enable regulator mipi_1_8v.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(p_mipi_1_1v)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= regulator_force_disable(p_mipi_1_1v);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(ret &lt; 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;failed
to disable regulator mipi_1_1v.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(p_mipi_1_8v)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= regulator_force_disable(p_mipi_1_8v);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(ret &lt; 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;failed
to disable regulator mipi_1_8v.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git a/drivers/video/Kconfig
b/drivers/video/Kconfig<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 27c1fb4..6cdb4bc 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- a/drivers/video/Kconfig<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/drivers/video/Kconfig<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -1996,6 +1996,13 @@ config
FB_S3C2410_DEBUG<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Turn on debugging messages. Note that you can set/unset at run time<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
through sysfs<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+config S5P_MIPI_DSI<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tristate
&quot;Samsung SoC MIPI-DSI support.&quot;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; depends
on FB_S3C &amp;&amp; ARCH_S5PV210<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default
n<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---help---<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
This enables support for MIPI-DSI device.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;config FB_NUC900<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bool &quot;NUC900 LCD framebuffer support&quot;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
depends on FB &amp;&amp; ARCH_W90X900<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git a/drivers/video/Makefile
b/drivers/video/Makefile<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 485e8ed..6d1be1a 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- a/drivers/video/Makefile<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/drivers/video/Makefile<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -115,6 +115,8 @@ obj-$(CONFIG_FB_SH7760)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
+= sh7760fb.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_FB_IMX)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= imxfb.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_FB_S3C)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
+= s3c-fb.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_FB_S3C2410)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
+= s3c2410fb.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+obj-$(CONFIG_S5P_MIPI_DSI)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
+= s5p-dsim.o s5p_dsim_common.o \<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_lowlevel.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_FB_FSL_DIU)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
+= fsl-diu-fb.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_FB_COBALT)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= cobalt_lcdfb.o<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;obj-$(CONFIG_FB_PNX4008_DUM) &nbsp;
+= pnx4008/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git a/drivers/video/s5p-dsim.c
b/drivers/video/s5p-dsim.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..7ab1988<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/drivers/video/s5p-dsim.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,463 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* linux/drivers/video/samsung/s5p-dsim.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Samsung MIPI-DSIM driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * InKi Dae, &lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or modify<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * it under the terms of the GNU General
Public License version 2 as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software
Foundation.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/module.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/kernel.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/errno.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/clk.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/mutex.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/wait.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/fs.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/mm.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/fb.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/ctype.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/platform_device.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/io.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/irq.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/memory.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/delay.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/interrupt.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/kthread.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include
&lt;linux/regulator/consumer.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/notifier.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/fb.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/regs-dsim.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/dsim.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/mipi_ddi.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;mach/map.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &quot;s5p_dsim_common.h&quot;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct mipi_lcd_info {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
list_head&nbsp;&nbsp; list;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
mipi_lcd_driver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *mipi_drv;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static LIST_HEAD(lcd_info_list);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static DEFINE_MUTEX(mipi_lock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct dsim_global dsim;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct s5p_platform_dsim
*to_dsim_plat(struct device *dev)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
platform_device *pdev = to_platform_device(dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
(struct s5p_platform_dsim *)pdev-&gt;dev.platform_data;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * notifier callback function for fb_blank<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * - this function would be called by
device specific fb_blank.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static int
s5p_dsim_notifier_callback(struct notifier_block *self,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
long event, void *data)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch
(event) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
FB_BLANK_UNBLANK:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
FB_BLANK_NORMAL:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.pd-&gt;mipi_power)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;mipi_power(&amp;dsim,
dsim.r_mipi_1_1v,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.r_mipi_1_8v,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clk_enable(dsim.clock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv-&gt;resume)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;resume(dsim.dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_dsim(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_link(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_hs_enable(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_transfer_mode(&amp;dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_TRANSFER_BYCPU,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
it needs delay for stabilization */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdelay(dsim.pd-&gt;delay_for_stabilization);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv-&gt;init)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;init(dsim.dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim.dev,
&quot;init func is null.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_display_mode(&amp;dsim,
dsim.dsim_lcd_info, NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_transfer_mode(&amp;dsim,
DSIM_TRANSFER_BYLCDC, 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_ddi_pd-&gt;resume_complete
= 1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim.dev,
&quot;FB_BLANK_NORMAL or UNBLANK.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
FB_BLANK_POWERDOWN:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_ddi_pd-&gt;resume_complete
= 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv-&gt;suspend)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;suspend(dsim.dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clk_disable(dsim.clock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.pd-&gt;mipi_power)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;mipi_power(&amp;dsim,
dsim.r_mipi_1_1v,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.r_mipi_1_8v,
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim.dev,
&quot;FB_BLANK_POWERDOWN.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim.dev,
&quot;unknown FB_BLANK command.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static void s5p_dsim_register_notif(struct
device *dev)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memset(&amp;dsim.s3cfb_notif,
0, sizeof(struct notifier_block));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.s3cfb_notif.notifier_call
= s5p_dsim_notifier_callback;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static irqreturn_t
s5p_dsim_interrupt_handler(int irq, void *dev_id)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
IRQ_HANDLED;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_register_lcd_driver(struct
mipi_lcd_driver *lcd_drv)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
mipi_lcd_info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *lcd_info = NULL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_info
= kmalloc(sizeof(struct mipi_lcd_info), GFP_KERNEL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lcd_info == NULL)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-ENOMEM;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_info-&gt;mipi_drv
= kmalloc(sizeof(struct mipi_lcd_driver),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GFP_KERNEL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lcd_info-&gt;mipi_drv == NULL)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-ENOMEM;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memcpy(lcd_info-&gt;mipi_drv,
lcd_drv, sizeof(struct mipi_lcd_driver));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mutex_lock(&amp;mipi_lock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list_add_tail(&amp;lcd_info-&gt;list,
&amp;lcd_info_list);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mutex_unlock(&amp;mipi_lock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim.dev,
&quot;registered panel driver(%s) to mipi-dsi driver.\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_drv-&gt;name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This function is wrapper for changing
transfer mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * It is used to in panel driver before
and after changing gamma value.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_change_transfer_mode(unsigned
int mode)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(mode &lt; 0 || mode &gt; 1) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim.dev,
&quot;mode range should be 0 or 1.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EFAULT;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(mode == 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_transfer_mode(&amp;dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_TRANSFER_BYCPU,
mode);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_transfer_mode(&amp;dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_TRANSFER_BYLCDC,
mode);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct mipi_lcd_driver
*scan_mipi_driver(const char *name)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
mipi_lcd_info *lcd_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
mipi_lcd_driver *mipi_drv = NULL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mutex_lock(&amp;mipi_lock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim.dev,
&quot;find lcd panel driver(%s).\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list_for_each_entry(lcd_info,
&amp;lcd_info_list, list) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mipi_drv
= lcd_info-&gt;mipi_drv;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
((strcmp(mipi_drv-&gt;name, name)) == 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mutex_unlock(&amp;mipi_lock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim.dev,
&quot;found!!!(%s).\n&quot;, mipi_drv-&gt;name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
mipi_drv;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim.dev,
&quot;failed to find lcd panel driver(%s).\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mutex_unlock(&amp;mipi_lock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
NULL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static int s5p_dsim_probe(struct
platform_device *pdev)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
resource *res;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
ret = -1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd
= to_dsim_plat(&amp;pdev-&gt;dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.dev
= &amp;pdev-&gt;dev;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
set dsim config data, dsim lcd config data and lcd panel data. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.dsim_info
= dsim.pd-&gt;dsim_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.dsim_lcd_info
= dsim.pd-&gt;dsim_lcd_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.lcd_panel_info
=<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (struct
fb_videomode *) dsim.dsim_lcd_info-&gt;lcd_panel_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_ddi_pd
=<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (struct
mipi_ddi_platform_data *)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.dsim_lcd_info-&gt;mipi_ddi_pd;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_ddi_pd-&gt;resume_complete
= 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim.pd-&gt;mipi_1_1v_name
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.r_mipi_1_1v
= regulator_get(&amp;pdev-&gt;dev, dsim.pd-&gt;mipi_1_1v_name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(IS_ERR(dsim.r_mipi_1_1v)) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;failed to get regulator %s.\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;mipi_1_1v_name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
regulator_get_err;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim.pd-&gt;mipi_1_8v_name
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.r_mipi_1_8v
= regulator_get(&amp;pdev-&gt;dev, dsim.pd-&gt;mipi_1_8v_name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(IS_ERR(dsim.r_mipi_1_8v)) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;failed to get regulator %s.\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;mipi_1_8v_name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
regulator_get_err;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
clock */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.clock
= clk_get(&amp;pdev-&gt;dev, dsim.pd-&gt;clk_name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(IS_ERR(dsim.clock)) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;failed to get dsim clock source\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clk_enable(dsim.clock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
io memory */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res
= platform_get_resource(pdev, IORESOURCE_MEM, 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(!res) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;failed to get io memory region\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= -EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
err_clk_disable;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
request mem region */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res
= request_mem_region(res-&gt;start, resource_size(res), pdev-&gt;name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(!res) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;failed to request io memory region\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= -EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
err_clk_disable;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
ioremap for register block */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.reg_base
= ioremap(res-&gt;start, resource_size(res));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(!dsim.reg_base) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;failed to remap io region\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= -EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
err_clk_disable;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
it is used for MIPI-DSI based lcd panel driver. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_ddi_pd-&gt;dsim_data
= (void *)&amp;dsim;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* it uses frame done interrupt handler<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* only in case of MIPI Video mode.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.dsim_lcd_info-&gt;e_interface == DSIM_VIDEO) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.irq
= platform_get_irq(pdev, 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(request_irq(dsim.irq, s5p_dsim_interrupt_handler,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRQF_DISABLED,
&quot;mipi-dsi&quot;, &amp;dsim)) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;request_irq failed.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
err_trigger_irq;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.pd-&gt;mipi_power)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;mipi_power(&amp;dsim,
dsim.r_mipi_1_1v,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.r_mipi_1_8v,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;mipi_power is NULL.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
mipi_power_err;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
find lcd panel driver registered to mipi-dsi driver. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv
= scan_mipi_driver(dsim.pd-&gt;lcd_panel_name);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv == NULL) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;mipi_drv is NULL.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
mipi_drv_err;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
set lcd panel driver link */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= dsim.mipi_drv-&gt;set_link(dsim.mipi_ddi_pd);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(ret &lt; 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(&amp;pdev-&gt;dev,
&quot;failed to set link.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto
mipi_drv_err;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;probe(&amp;pdev-&gt;dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_dsim(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_link(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_hs_enable(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_transfer_mode(&amp;dsim,
DSIM_TRANSFER_BYCPU, 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
it needs delay for stabilization */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdelay(dsim.pd-&gt;delay_for_stabilization);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
initialize lcd panel */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv-&gt;init)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;init(&amp;pdev-&gt;dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(&amp;pdev-&gt;dev,
&quot;init func is null.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv-&gt;display_on)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;display_on(&amp;pdev-&gt;dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(&amp;pdev-&gt;dev,
&quot;display_on func is null.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_display_mode(&amp;dsim,
dsim.dsim_lcd_info, NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_transfer_mode(&amp;dsim,
DSIM_TRANSFER_BYLCDC, 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_register_notif(&amp;pdev-&gt;dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
in case of command mode, trigger. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.dsim_lcd_info-&gt;e_interface == DSIM_COMMAND) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.pd-&gt;trigger)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;trigger(registered_fb[0]);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(&amp;pdev-&gt;dev,
&quot;trigger is null.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_info(&amp;pdev-&gt;dev,
&quot;mipi-dsi driver(%s mode) has been probed.\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim.dsim_lcd_info-&gt;e_interface
== DSIM_COMMAND) ?<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;CPU&quot;
: &quot;RGB&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+err_trigger_irq:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+mipi_drv_err:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;mipi_power(&amp;dsim,
dsim.r_mipi_1_1v, dsim.r_mipi_1_8v, 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+mipi_power_err:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iounmap((void
__iomem *) dsim.reg_base);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+err_clk_disable:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clk_disable(dsim.clock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+regulator_get_err:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static int s5p_dsim_remove(struct
platform_device *pdev)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#ifdef CONFIG_PM<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_suspend(struct
platform_device *pdev, pm_message_t state)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_ddi_pd-&gt;resume_complete
= 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv-&gt;suspend)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;suspend(&amp;pdev-&gt;dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clk_disable(dsim.clock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.pd-&gt;mipi_power)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;mipi_power(&amp;dsim,
dsim.r_mipi_1_1v,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.r_mipi_1_8v,
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_resume(struct platform_device
*pdev)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.pd-&gt;mipi_power)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.pd-&gt;mipi_power(&amp;dsim,
dsim.r_mipi_1_1v,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.r_mipi_1_8v,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clk_enable(dsim.clock);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv-&gt;resume)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;resume(&amp;pdev-&gt;dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_dsim(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_link(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_hs_enable(&amp;dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_transfer_mode(&amp;dsim,
DSIM_TRANSFER_BYCPU, 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
it needs delay for stabilization */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdelay(dsim.pd-&gt;delay_for_stabilization);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
initialize lcd panel */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim.mipi_drv-&gt;init)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_drv-&gt;init(&amp;pdev-&gt;dev);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(&amp;pdev-&gt;dev,
&quot;init func is null.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_display_mode(&amp;dsim,
dsim.dsim_lcd_info, NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_transfer_mode(&amp;dsim,
DSIM_TRANSFER_BYLCDC, 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim.mipi_ddi_pd-&gt;resume_complete
= 1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define s5p_dsim_suspend NULL<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define s5p_dsim_resume NULL<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#endif<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static struct platform_driver
s5p_dsim_driver = {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .probe
= s5p_dsim_probe,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .remove
= s5p_dsim_remove,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .suspend
= s5p_dsim_suspend,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .resume
= s5p_dsim_resume,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .driver
= {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
.name = &quot;s5p-dsim&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
.owner = THIS_MODULE,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static int s5p_dsim_register(void)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; platform_driver_register(&amp;s5p_dsim_driver);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static void s5p_dsim_unregister(void)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; platform_driver_unregister(&amp;s5p_dsim_driver);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+module_init(s5p_dsim_register);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+module_exit(s5p_dsim_unregister);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+MODULE_AUTHOR(&quot;InKi Dae
&lt;inki.dae@samsung.com&gt;&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+MODULE_DESCRIPTION(&quot;Samusung
MIPI-DSIM driver&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+MODULE_LICENSE(&quot;GPL&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git
a/drivers/video/s5p_dsim_common.c b/drivers/video/s5p_dsim_common.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..696faf3<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/drivers/video/s5p_dsim_common.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,691 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*
linux/drivers/video/samsung/s5p_dsim_common.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Samsung MIPI-DSIM common driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * InKi Dae, &lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or modify<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * it under the terms of the GNU General
Public License version 2 as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software
Foundation.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/module.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/kernel.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/errno.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/mutex.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/wait.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/fs.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/mm.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/fb.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/ctype.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/platform_device.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/io.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/memory.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/delay.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/kthread.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;video/mipi_display.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/fb.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/regs-dsim.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;mach/map.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/dsim.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/mipi_ddi.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &quot;s5p_dsim_lowlevel.h&quot;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static unsigned int dpll_table[15] = {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100,
120, 170, 220, 270,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 320,
390, 450, 510, 560,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640,
690, 770, 870, 950 };<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+static void s5p_dsim_long_data_wr(struct
dsim_global *dsim, unsigned int data0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data_cnt = 0, payload = 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
in case that data count is more then 4 */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for
(data_cnt = 0; data_cnt &lt; data1; data_cnt += 4) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* after sending 4bytes per one time,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* send remainder data less then 4.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
((data1 - data_cnt) &lt; 4) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
((data1 - data_cnt) == 3) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload
= *(u8 *)(data0 + data_cnt) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
(*(u8 *)(data0 + (data_cnt + 1))) &lt;&lt; 8 |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*(u8
*)(data0 + (data_cnt + 2))) &lt;&lt; 16;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;count = 3 payload = %x, %x %x %x\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload,
*(u8 *)(data0 + data_cnt),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + (data_cnt + 1)),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + (data_cnt + 2)));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else if ((data1 - data_cnt) == 2) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload
= *(u8 *)(data0 + data_cnt) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*(u8
*)(data0 + (data_cnt + 1))) &lt;&lt; 8;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;count
= 2 payload = %x, %x %x\n&quot;, payload,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + data_cnt),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + (data_cnt + 1)));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else if ((data1 - data_cnt) == 1) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload
= *(u8 *)(data0 + data_cnt);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_wr_tx_data(dsim,
payload);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
send 4bytes per one time. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload
= *(u8 *)(data0 + data_cnt) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*(u8
*)(data0 + (data_cnt + 1))) &lt;&lt; 8 |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*(u8
*)(data0 + (data_cnt + 2))) &lt;&lt; 16 |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*(u8
*)(data0 + (data_cnt + 3))) &lt;&lt; 24;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;count
= 4 payload = %x, %x %x %x %x\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload,
*(u8 *)(data0 + data_cnt),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + (data_cnt + 1)),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + (data_cnt + 2)),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + (data_cnt + 3)));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_wr_tx_data(dsim,
payload);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_wr_data(void *dsim_data,
unsigned int data_id,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data0, unsigned int data1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_global *dsim = NULL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int timeout = 5000 * 2;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
long delay_val, udelay;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int check_rx_ack = 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim
= (struct dsim_global *)dsim_data;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;state == DSIM_STATE_ULPS) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,
&quot;state is ULPS.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delay_val
= 1000000 / dsim-&gt;dsim_info-&gt;esc_clk;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; udelay
= 10 * delay_val;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdelay(udelay);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
only if transfer mode is LPDT, wait SFR becomes empty. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;state == DSIM_STATE_STOP) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while
(!(s5p_dsim_get_fifo_state(dsim) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SFR_HEADER_EMPTY))
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
((timeout--) &gt; 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdelay(1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;SRF
header fifo is not empty.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch
(data_id) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
short packet types of packet types for command. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_DCS_SHORT_WRITE:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_DCS_SHORT_WRITE_PARAM:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_wr_tx_header(dsim,
data_id, data0, data1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(check_rx_ack)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
process response func should be implemented */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
general command */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_COLOR_MODE_OFF:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_COLOR_MODE_ON:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_SHUTDOWN_PERIPHERAL:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_TURN_ON_PERIPHERAL:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_wr_tx_header(dsim,
data_id, data0, data1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(check_rx_ack)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
process response func should be implemented. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
packet types for video data */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_V_SYNC_START:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_V_SYNC_END:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_H_SYNC_START:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_H_SYNC_END:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_END_OF_TRANSMISSION:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
short and response packet types for command */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_DCS_READ:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_clear_interrupt(dsim,
0xffffffff);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_wr_tx_header(dsim,
data_id, data0, data1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
process response func should be implemented. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
long packet type and null packet */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_NULL_PACKET:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_BLANKING_PACKET:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_GENERIC_LONG_WRITE:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_DCS_LONG_WRITE:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int size, data_cnt = 0, payload = 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size
= data1 * 4;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
if data count is less then 4, then send 3bytes data.&nbsp; */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(data1 &lt; 4) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload
= *(u8 *)(data0) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + 1) &lt;&lt; 8 |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + 2) &lt;&lt; 16;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_wr_tx_data(dsim,
payload);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;count = %d payload = %x,%x %x %x\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data1,
payload,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + data_cnt),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + (data_cnt + 1)),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *(u8
*)(data0 + (data_cnt + 2)));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
in case that data count is more then 4 */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_long_data_wr(dsim,
data0, data1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
put data into header fifo */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_wr_tx_header(dsim,
data_id, data1 &amp; 0xff,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (data1
&amp; 0xff00) &gt;&gt; 8);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(check_rx_ack)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
process response func should be implemented. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
packet typo for video data */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_PACKED_PIXEL_STREAM_16:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_PACKED_PIXEL_STREAM_18:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_PIXEL_STREAM_3BYTE_18:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
MIPI_DSI_PACKED_PIXEL_STREAM_24:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(check_rx_ack)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
process response func should be implemented. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;data
id %x is not supported current DSI spec.\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data_id);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_init_header_fifo(struct
dsim_global *dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int cnt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for
(cnt = 0; cnt &lt; DSIM_HEADER_FIFO_SZ; cnt++)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;header_fifo_index[cnt]
= -1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_pll_on(struct dsim_global
*dsim, unsigned int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(enable) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
sw_timeout = 1000;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_clear_interrupt(dsim,
DSIM_PLL_STABLE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_pll(dsim,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while
(1) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sw_timeout--;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(s5p_dsim_is_pll_stable(dsim))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(sw_timeout == 0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_pll(dsim,
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+unsigned long s5p_dsim_change_pll(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int pre_divider, unsigned int main_divider,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int scaler)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
long dfin_pll, dfvco, dpll_out;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int i, freq_band = 0xf;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dfin_pll
= (MIPI_FIN / pre_divider);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dfin_pll &lt; 6 * 1000 * 1000 || dfin_pll &gt; 12 * 1000 * 1000) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;warning!!\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;fin_pll range is 6MHz ~ 12MHz\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;fin_pll of mipi dphy pll is %luMHz\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dfin_pll
/ 1000000));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_afc(dsim,
0, 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dfin_pll &lt; 7 * 1000000)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_afc(dsim,
1, 0x1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (dfin_pll &lt; 8 * 1000000)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_afc(dsim,
1, 0x0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (dfin_pll &lt; 9 * 1000000)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_afc(dsim,
1, 0x3);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (dfin_pll &lt; 10 * 1000000)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_afc(dsim,
1, 0x2);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (dfin_pll &lt; 11 * 1000000)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_afc(dsim,
1, 0x5);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_afc(dsim,
1, 0x4);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dfvco
= dfin_pll * main_divider;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;dfvco = %lu, dfin_pll = %lu, main_divider = %d\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dfvco,
dfin_pll, main_divider);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dfvco &lt; 500000000 || dfvco &gt; 1000000000) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;Caution!!\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;fvco range is 500MHz ~ 1000MHz\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;fvco of mipi dphy pll is %luMHz\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dfvco
/ 1000000));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dpll_out
= dfvco / (1 &lt;&lt; scaler);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;dpll_out = %lu, dfvco = %lu, scaler = %d\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dpll_out,
dfvco, scaler);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for
(i = 0; i &lt; ARRAY_SIZE(dpll_table); i++) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dpll_out &lt; dpll_table[i] * 1000000) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freq_band
= i;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;freq_band = %d\n&quot;, freq_band);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_pll_freq(dsim,
pre_divider, main_divider, scaler);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_hs_zero_ctrl(dsim,
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_prep_ctrl(dsim,
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
Freq Band */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_pll_freq_band(dsim,
freq_band);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
Stable time */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_pll_stable_time(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;dsim_info-&gt;pll_stable_time);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
Enable PLL */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;FOUT of mipi dphy pll is %luMHz\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dpll_out
/ 1000000));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
dpll_out;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_set_clock(struct dsim_global
*dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int byte_clk_sel, unsigned int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int esc_div;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
long esc_clk_error_rate;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(enable) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;e_clk_src
= byte_clk_sel;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
Escape mode clock and byte clock source */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_byte_clock_src(dsim,
byte_clk_sel);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
DPHY, DSIM Link : D-PHY clock out */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(byte_clk_sel == DSIM_PLL_OUT_DIV8) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;hs_clk
= s5p_dsim_change_pll(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;dsim_info-&gt;p,
dsim-&gt;dsim_info-&gt;m,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;dsim_info-&gt;s);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;hs_clk == 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;failed
to get hs clock.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;byte_clk
= dsim-&gt;hs_clk / 8;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_pll_bypass(dsim,
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_pll_on(dsim,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
DPHY : D-PHY clock out, DSIM link : external clock out */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else if (byte_clk_sel == DSIM_EXT_CLK_DIV8)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;this
project is not support \<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; external
clock source for MIPI DSIM\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (byte_clk_sel == DSIM_EXT_CLK_BYPASS)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;this
project is not support \<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; external
clock source for MIPI DSIM\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
escape clock divider */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; esc_div
= dsim-&gt;byte_clk / (dsim-&gt;dsim_info-&gt;esc_clk);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;esc_div
= %d, byte_clk = %lu, esc_clk = %lu\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; esc_div,
dsim-&gt;byte_clk, dsim-&gt;dsim_info-&gt;esc_clk);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
((dsim-&gt;byte_clk / esc_div) &gt;= 20000000 ||<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim-&gt;byte_clk
/ esc_div) &gt; dsim-&gt;dsim_info-&gt;esc_clk)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; esc_div
+= 1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;escape_clk
= dsim-&gt;byte_clk / esc_div;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;escape_clk
= %lu, byte_clk = %lu, esc_div = %d\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;escape_clk,
dsim-&gt;byte_clk, esc_div);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* enable escclk on lane<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* in case of evt0, DSIM_TRUE is enable and<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* DSIM_FALSE is enable for evt1.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;pd-&gt;platform_rev == 1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_byte_clock(dsim,
DSIM_FALSE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_byte_clock(dsim,
DSIM_TRUE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
enable byte clk and escape clock */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_esc_clk_prs(dsim,
1, esc_div);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
escape clock on lane */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_esc_clk_on_lane(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (DSIM_LANE_CLOCK
| dsim-&gt;data_lane), 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;byte clock is %luMHz\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim-&gt;byte_clk
/ 1000000));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;escape clock that user's need is %lu\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim-&gt;dsim_info-&gt;esc_clk
/ 1000000));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;escape clock divider is %x\n&quot;, esc_div);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_dbg(dsim-&gt;dev,
&quot;escape clock is %luMHz\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((dsim-&gt;byte_clk
/ esc_div) / 1000000));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
((dsim-&gt;byte_clk / esc_div) &gt; dsim-&gt;escape_clk) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; esc_clk_error_rate
= dsim-&gt;escape_clk /<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim-&gt;byte_clk
/ esc_div);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;error rate is %lu over.\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (esc_clk_error_rate
/ 100));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else if ((dsim-&gt;byte_clk / esc_div) &lt; (dsim-&gt;escape_clk)) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; esc_clk_error_rate
= (dsim-&gt;byte_clk / esc_div) /<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;escape_clk;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;error rate is %lu under.\n&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (esc_clk_error_rate
/ 100));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_esc_clk_on_lane(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (DSIM_LANE_CLOCK
| dsim-&gt;data_lane), 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_esc_clk_prs(dsim,
0, 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* in case of evt0, DSIM_FALSE is disable and<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
* DSIM_TRUE is disable for evt1.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;pd-&gt;platform_rev == 1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_byte_clock(dsim,
DSIM_TRUE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_byte_clock(dsim,
DSIM_FALSE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(byte_clk_sel == DSIM_PLL_OUT_DIV8)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_pll_on(dsim,
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_init_dsim(struct dsim_global
*dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;pd-&gt;init_d_phy)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;pd-&gt;init_d_phy(dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;state
= DSIM_STATE_RESET;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch
(dsim-&gt;dsim_info-&gt;e_no_data_lane) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
DSIM_DATA_LANE_1:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;data_lane
= DSIM_LANE_DATA0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
DSIM_DATA_LANE_2:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;data_lane
= DSIM_LANE_DATA0 | DSIM_LANE_DATA1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
DSIM_DATA_LANE_3:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;data_lane
= DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_DATA2;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
DSIM_DATA_LANE_4:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;data_lane
= DSIM_LANE_DATA0 | DSIM_LANE_DATA1 |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_LANE_DATA2
| DSIM_LANE_DATA3;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_info(dsim-&gt;dev,
&quot;data lane is invalid.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_header_fifo(dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_sw_reset(dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_dp_dn_swap(dsim,
dsim-&gt;dsim_info-&gt;e_lane_swap);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_enable_frame_done_int(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
enable only frame done interrupt */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_interrupt_mask(dsim,
INTMSK_FRAME_DONE, enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_set_display_mode(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *main_lcd, struct dsim_lcd_config *sub_lcd)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
fb_videomode *mlcd_video = NULL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
fb_cpumode *m_lcd_cpu = NULL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
s3c_fb_pd_win *pd;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int width = 0, height = 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pd
= (struct s3c_fb_pd_win *)main_lcd-&gt;lcd_panel_info;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
in case of VIDEO MODE (RGB INTERFACE) */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;dsim_lcd_info-&gt;e_interface == (u32) DSIM_VIDEO) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mlcd_video
= (struct fb_videomode *)&amp;pd-&gt;win_mode;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width
= mlcd_video-&gt;xres;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height
= mlcd_video-&gt;yres;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;dsim_info-&gt;auto_vertical_cnt == DSIM_FALSE) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_main_disp_vporch(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mlcd_video-&gt;upper_margin,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mlcd_video-&gt;lower_margin,
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_main_disp_hporch(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mlcd_video-&gt;left_margin,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mlcd_video-&gt;right_margin);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_main_disp_sync_area(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mlcd_video-&gt;vsync_len,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mlcd_video-&gt;hsync_len);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {&nbsp; /* in case of CPU MODE */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_lcd_cpu
= (struct fb_cmdmode *)&amp;pd-&gt;cpu_mode;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width
= m_lcd_cpu-&gt;xres;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height
= m_lcd_cpu-&gt;yres;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_main_disp_resol(dsim,
height, width);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(sub_lcd != NULL)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;sub lcd isn't supported yet.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_display_config(dsim,
dsim-&gt;dsim_lcd_info, NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_init_link(struct dsim_global
*dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int time_out = 100;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch
(dsim-&gt;state) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
DSIM_STATE_RESET:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_sw_reset(dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
DSIM_STATE_INIT:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_fifo_pointer(dsim,
0x1f);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
dsi configuration */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_init_config(dsim,
dsim-&gt;dsim_lcd_info,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL,
dsim-&gt;dsim_info);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_lane(dsim,
DSIM_LANE_CLOCK, 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_lane(dsim,
dsim-&gt;data_lane, 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
set clock configuration */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_clock(dsim,
dsim-&gt;dsim_info-&gt;e_byte_clk,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
check clock and data lane state is stop state */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while
(!(s5p_dsim_is_lane_state(dsim, DSIM_LANE_CLOCK)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
== DSIM_LANE_STATE_STOP) &amp;&amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !(s5p_dsim_is_lane_state(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;data_lane)
== DSIM_LANE_STATE_STOP)) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time_out--;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(time_out == 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_info(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;DSI
Master is not stop state.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_info(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Check
initialization process\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(time_out != 0) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_info(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;initialization
of DSI Master is successful\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_info(dsim-&gt;dev,
&quot;DSI Master state is stop state\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;state
= DSIM_STATE_STOP;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
BTA sequence counters */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_stop_state_counter(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;dsim_info-&gt;stop_holding_cnt);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_bta_timeout(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;dsim_info-&gt;bta_timeout);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_lpdr_timeout(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;dsim_info-&gt;rx_timeout);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
default LPDT by both cpu and lcd controller */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_mode(dsim,
DSIM_TRANSFER_BOTH,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_STOP);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_info(dsim-&gt;dev,
&quot;DSI Master is already init.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_set_hs_enable(struct
dsim_global *dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;state == DSIM_STATE_STOP) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;e_clk_src != DSIM_EXT_CLK_BYPASS) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim-&gt;state
= DSIM_STATE_HSCLKEN;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_mode(dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_TRANSFER_BOTH,
DSIM_STATE_HSCLKEN);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_enable_hs_clock(dsim,
1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;clock
source is external bypass.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_warn(dsim-&gt;dev,
&quot;DSIM is not stop state.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_set_data_transfer_mode(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data_path, unsigned int hs_enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
ret = -1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(hs_enable) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;state == DSIM_STATE_HSCLKEN) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_mode(dsim,
data_path,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_HSCLKEN);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,
&quot;HS Clock lane is not enabled.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= -EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(dsim-&gt;state == DSIM_STATE_INIT || dsim-&gt;state ==<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_ULPS)
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;DSI
Master is not STOP or HSDT state.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= -EINVAL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s5p_dsim_set_data_mode(dsim,
data_path,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSIM_STATE_STOP);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_get_frame_done_status(void
*dsim_data)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_global *dsim = NULL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim
= (struct dsim_global *)dsim_data;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
_s5p_dsim_get_frame_done_status(dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+int s5p_dsim_clear_frame_done(void
*dsim_data)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_global *dsim = NULL;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsim
= (struct dsim_global *)dsim_data;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARN_ON(dsim
== NULL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _s5p_dsim_clear_frame_done(dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+MODULE_AUTHOR(&quot;InKi Dae
&lt;inki.dae@samsung.com&gt;&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+MODULE_DESCRIPTION(&quot;Samusung
MIPI-DSIM common driver&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+MODULE_LICENSE(&quot;GPL&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git
a/drivers/video/s5p_dsim_common.h b/drivers/video/s5p_dsim_common.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..95f51bc<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/drivers/video/s5p_dsim_common.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,35 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*
linux/drivers/video/samsung/s5p_dsim_common.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Header file for Samsung MIPI-DSI common
driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Copyright (c) 2009 Samsung Electronics<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * InKi Dae &lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or modify<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * it under the terms of the GNU General
Public License version 2 as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software
Foundation.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#ifndef _S5P_DSIM_COMMON_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define _S5P_DSIM_COMMON_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int
s5p_dsim_init_header_fifo(struct dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_pll_on(struct
dsim_global *dsim, unsigned int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern unsigned long
s5p_dsim_change_pll(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int pre_divider, unsigned int main_divider,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int scaler);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_set_clock(struct dsim_global
*dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int byte_clk_sel, unsigned int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_init_dsim(struct
dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int
s5p_dsim_set_display_mode(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *main_lcd, struct dsim_lcd_config *sub_lcd);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_init_link(struct
dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_set_hs_enable(struct
dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int
s5p_dsim_set_data_transfer_mode(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data_path, unsigned int hs_enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern int s5p_dsim_enable_frame_done_int(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern struct fb_info
*registered_fb[FB_MAX] __read_mostly;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#endif /* _S5P_DSIM_COMMON_H */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git
a/drivers/video/s5p_dsim_lowlevel.c b/drivers/video/s5p_dsim_lowlevel.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..b2fc249<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/drivers/video/s5p_dsim_lowlevel.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,569 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/* linux/drivers/video/samsung/s5p-dsim.c<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Samsung MIPI-DSIM lowlevel driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * InKi Dae, &lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or modify<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * it under the terms of the GNU General
Public License version 2 as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software Foundation.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/module.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/kernel.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/errno.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/mutex.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/wait.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/delay.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/fs.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/mm.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/ctype.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;linux/io.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;mach/map.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/dsim.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/mipi_ddi.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#include &lt;plat/regs-dsim.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_func_reset(struct
dsim_global *dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= readl(dsim-&gt;reg_base + S5P_DSIM_SWRST);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= DSIM_FUNCRST;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_SWRST);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_sw_reset(struct dsim_global
*dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= readl(dsim-&gt;reg_base + S5P_DSIM_SWRST);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= DSIM_SWRST;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_SWRST);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_interrupt_mask(struct
dsim_global *dsim, unsigned int mode,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int mask)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_INTMSK);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(mask)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= mode;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~mode;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_INTMSK);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_init_fifo_pointer(struct
dsim_global *dsim, unsigned int cfg)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= readl(dsim-&gt;reg_base + S5P_DSIM_FIFOCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg
&amp; ~(cfg), dsim-&gt;reg_base + S5P_DSIM_FIFOCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdelay(10);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= cfg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_FIFOCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * this function set PLL P, M and S value
in D-PHY<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_phy_tunning(struct
dsim_global *dsim, unsigned int value)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(DSIM_AFC_CTL(value),
dsim-&gt;reg_base + S5P_DSIM_PHYACCHR);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_main_disp_resol(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int vert_resol, unsigned int hori_resol)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
standby should be set after configuration so set to not ready*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= (readl(dsim-&gt;reg_base + S5P_DSIM_MDRESOL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(DSIM_MAIN_STAND_BY);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_MDRESOL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(0x7ff &lt;&lt; 16) &amp; ~(0x7ff &lt;&lt; 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= DSIM_MAIN_VRESOL(vert_resol) | DSIM_MAIN_HRESOL(hori_resol);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= DSIM_MAIN_STAND_BY;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_MDRESOL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_main_disp_vporch(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int cmd_allow, unsigned int vfront, unsigned int vback)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= (readl(dsim-&gt;reg_base + S5P_DSIM_MVPORCH)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(DSIM_CMD_ALLOW_MASK)
&amp; ~(DSIM_STABLE_VFP_MASK) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(DSIM_MAIN_VBP_MASK);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((cmd_allow &amp; 0xf) &lt;&lt; DSIM_CMD_ALLOW_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((vfront
&amp; 0x7ff) &lt;&lt; DSIM_STABLE_VFP_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((vback
&amp; 0x7ff) &lt;&lt; DSIM_MAIN_VBP_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_MVPORCH);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_main_disp_hporch(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int front, unsigned int back)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= (readl(dsim-&gt;reg_base + S5P_DSIM_MHPORCH)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(DSIM_MAIN_HFP_MASK)
&amp; ~(DSIM_MAIN_HBP_MASK);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (front &lt;&lt; DSIM_MAIN_HFP_SHIFT) | (back &lt;&lt; DSIM_MAIN_HBP_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_MHPORCH);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void
s5p_dsim_set_main_disp_sync_area(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int vert, unsigned int hori)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= (readl(dsim-&gt;reg_base + S5P_DSIM_MSYNC)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(DSIM_MAIN_VSA_MASK)
&amp; ~(DSIM_MAIN_HSA_MASK);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((vert &amp; 0x3ff) &lt;&lt; DSIM_MAIN_VSA_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (hori
&lt;&lt; DSIM_MAIN_HSA_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_MSYNC);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_sub_disp_resol(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int vert, unsigned int hori)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= (readl(dsim-&gt;reg_base + S5P_DSIM_SDRESOL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(DSIM_SUB_STANDY_MASK);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_SDRESOL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(DSIM_SUB_VRESOL_MASK) | ~(DSIM_SUB_HRESOL_MASK);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((vert &amp; 0x7ff) &lt;&lt; DSIM_SUB_VRESOL_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((hori
&amp; 0x7ff) &lt;&lt; DSIM_SUB_HRESOL_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_SDRESOL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (1 &lt;&lt; DSIM_SUB_STANDY_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_SDRESOL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_init_config(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *main_lcd_info,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *sub_lcd_info, struct dsim_config *dsim_info)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int cfg = (readl(dsim-&gt;reg_base + S5P_DSIM_CONFIG)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(1
&lt;&lt; 28) &amp; ~(0x1f &lt;&lt; 20) &amp; ~(0x3 &lt;&lt; 5);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cfg
=&nbsp;&nbsp;&nbsp; (dsim_info-&gt;auto_flush &lt;&lt; 29) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim_info-&gt;eot_disable
&lt;&lt; 28) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim_info-&gt;auto_vertical_cnt
&lt;&lt; DSIM_AUTO_MODE_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim_info-&gt;hse
&lt;&lt; DSIM_HSE_MODE_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim_info-&gt;hfp
&lt;&lt; DSIM_HFP_MODE_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim_info-&gt;hbp
&lt;&lt; DSIM_HBP_MODE_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim_info-&gt;hsa
&lt;&lt; DSIM_HSA_MODE_SHIFT) |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dsim_info-&gt;e_no_data_lane
&lt;&lt; DSIM_NUM_OF_DATALANE_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(cfg,
dsim-&gt;reg_base + S5P_DSIM_CONFIG);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_display_config(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *main_lcd, struct dsim_lcd_config *sub_lcd)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u32
reg = (readl(dsim-&gt;reg_base + S5P_DSIM_CONFIG)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x3
&lt;&lt; 26) &amp; ~(1 &lt;&lt; 25) &amp; ~(0x3 &lt;&lt; 18) &amp; ~(0x7
&lt;&lt; 12) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x3
&lt;&lt; 16) &amp; ~(0x7 &lt;&lt; 8);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(main_lcd-&gt;e_interface == DSIM_VIDEO)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (1 &lt;&lt; 25);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (main_lcd-&gt;e_interface == DSIM_COMMAND)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(1 &lt;&lt; 25);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,
&quot;this ddi is not MIPI interface.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
main lcd */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((u8) (main_lcd-&gt;parameter[DSI_VIDEO_MODE_SEL]) &amp; 0x3) &lt;&lt; 26 |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((u8)
(main_lcd-&gt;parameter[DSI_VIRTUAL_CH_ID]) &amp; 0x3) &lt;&lt; 18 |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((u8)
(main_lcd-&gt;parameter[DSI_FORMAT]) &amp; 0x7) &lt;&lt; 12;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_CONFIG);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_enable_lane(struct
dsim_global *dsim, unsigned int lane,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= readl(dsim-&gt;reg_base + S5P_DSIM_CONFIG);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane == DSIM_LANE_CLOCK) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (1 &lt;&lt; 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(1 &lt;&lt; 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (lane &lt;&lt; 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(lane &lt;&lt; 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_CONFIG);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_data_lane_number(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int count)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int cfg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*
get the data lane number. */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cfg
= DSIM_NUM_OF_DATA_LANE(count);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(cfg,
dsim-&gt;reg_base + S5P_DSIM_CONFIG);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_enable_afc(struct
dsim_global *dsim, unsigned int enable,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int afc_code)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_PHYACCHR);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(enable) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (1 &lt;&lt; 14);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(0x7 &lt;&lt; 5);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (afc_code &amp; 0x7) &lt;&lt; 5;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(1 &lt;&lt; 14);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PHYACCHR);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_enable_pll_bypass(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_CLKCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(DSIM_PLL_BYPASS_EXTERNAL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= enable &lt;&lt; DSIM_PLL_BYPASS_SHIFT;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_CLKCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_pll_pms(struct
dsim_global *dsim, unsigned int p,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int m, unsigned int s)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_PLLCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((p &amp; 0x3f) &lt;&lt; 13) | ((m &amp; 0x1ff) &lt;&lt; 4) | ((s &amp; 0x7)
&lt;&lt; 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PLLCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_pll_freq_band(struct
dsim_global *dsim, unsigned int freq_band)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_PLLCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x1f
&lt;&lt; DSIM_FREQ_BAND_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((freq_band &amp; 0x1f) &lt;&lt; DSIM_FREQ_BAND_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PLLCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_pll_freq(struct dsim_global
*dsim, unsigned int pre_divider,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int main_divider, unsigned int scaler)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_PLLCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x7ffff
&lt;&lt; 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (pre_divider &amp; 0x3f) &lt;&lt; 13 | (main_divider &amp; 0x1ff) &lt;&lt; 4
|<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (scaler
&amp; 0x7) &lt;&lt; 1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PLLCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_pll_stable_time(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int lock_time)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(lock_time,
dsim-&gt;reg_base + S5P_DSIM_PLLTMR);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_enable_pll(struct
dsim_global *dsim, unsigned int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_PLLCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x1
&lt;&lt; DSIM_PLL_EN_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((enable &amp; 0x1) &lt;&lt; DSIM_PLL_EN_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PLLCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_byte_clock_src(struct
dsim_global *dsim, unsigned int src)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_CLKCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x3
&lt;&lt; DSIM_BYTE_CLK_SRC_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((unsigned int) src) &lt;&lt; DSIM_BYTE_CLK_SRC_SHIFT;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_CLKCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_enable_byte_clock(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_CLKCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(1
&lt;&lt; DSIM_BYTE_CLKEN_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= enable &lt;&lt; DSIM_BYTE_CLKEN_SHIFT;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_CLKCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_esc_clk_prs(struct
dsim_global *dsim, unsigned int enable,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int prs_val)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_CLKCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(1
&lt;&lt; DSIM_ESC_CLKEN_SHIFT) &amp; ~(0xffff);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= enable &lt;&lt; DSIM_ESC_CLKEN_SHIFT;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= prs_val;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_CLKCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void
s5p_dsim_enable_esc_clk_on_lane(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int lane_sel, unsigned int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_CLKCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(enable) {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_CLOCK)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= 1 &lt;&lt; DSIM_LANE_ESC_CLKEN_SHIFT;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_DATA0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= 1 &lt;&lt; (DSIM_LANE_ESC_CLKEN_SHIFT + 1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_DATA1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= 1 &lt;&lt; (DSIM_LANE_ESC_CLKEN_SHIFT + 2);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_DATA2)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= 1 &lt;&lt; (DSIM_LANE_ESC_CLKEN_SHIFT + 3);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_DATA2)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= 1 &lt;&lt; (DSIM_LANE_ESC_CLKEN_SHIFT + 4);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_CLOCK)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(1 &lt;&lt; DSIM_LANE_ESC_CLKEN_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_DATA0)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(1 &lt;&lt; (DSIM_LANE_ESC_CLKEN_SHIFT + 1));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_DATA1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(1 &lt;&lt; (DSIM_LANE_ESC_CLKEN_SHIFT + 2));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_DATA2)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(1 &lt;&lt; (DSIM_LANE_ESC_CLKEN_SHIFT + 3));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(lane_sel &amp; DSIM_LANE_DATA2)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(1 &lt;&lt; (DSIM_LANE_ESC_CLKEN_SHIFT + 4));<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_CLKCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_force_dphy_stop_state(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_ESCMODE)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x1
&lt;&lt; DSIM_FORCE_STOP_STATE_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((enable &amp; 0x1) &lt;&lt; DSIM_FORCE_STOP_STATE_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_ESCMODE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+unsigned int s5p_dsim_is_lane_state(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int lane)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_STATUS);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
((lane &amp; DSIM_LANE_ALL) &gt; DSIM_LANE_CLOCK) { /* all lane state */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
((reg &amp; 0x7ff) ^ (((lane &amp; 0xf) &lt;&lt; 4) | (1 &lt;&lt; 9)))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
DSIM_LANE_STATE_ULPS;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if ((reg &amp; 0x7ff) ^ (((lane &amp; 0xf) &lt;&lt; 0) | (1 &lt;&lt; 8)))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
DSIM_LANE_STATE_STOP;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,
&quot;land state is unknown.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else if (lane &amp; DSIM_LANE_DATA_ALL) {&nbsp;&nbsp;&nbsp; /* data lane */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(reg &amp; (lane &lt;&lt; 4))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
DSIM_LANE_STATE_ULPS;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (reg &amp; (lane &lt;&lt; 0))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
DSIM_LANE_STATE_STOP;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,
&quot;data lane state is unknown.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
else if (lane &amp; DSIM_LANE_CLOCK) { /* clock lane */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(reg &amp; (1 &lt;&lt; 9))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
DSIM_LANE_STATE_ULPS;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (reg &amp; (1 &lt;&lt; 8))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
DSIM_LANE_STATE_STOP;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (reg &amp; (1 &lt;&lt; 10))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
DSIM_LANE_STATE_HS_READY;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev_err(dsim-&gt;dev,
&quot;data lane state is unknown.\n&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void
s5p_dsim_set_stop_state_counter(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int cnt_val)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_ESCMODE)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x7ff
&lt;&lt; DSIM_STOP_STATE_CNT_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((cnt_val &amp; 0x7ff) &lt;&lt; DSIM_STOP_STATE_CNT_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_ESCMODE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_bta_timeout(struct
dsim_global *dsim, unsigned int timeout)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_TIMEOUT)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0xff
&lt;&lt; DSIM_BTA_TOUT_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (timeout &lt;&lt; DSIM_BTA_TOUT_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_TIMEOUT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_lpdr_timeout(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int timeout)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_TIMEOUT)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0xffff
&lt;&lt; DSIM_LPDR_TOUT_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (timeout &lt;&lt; DSIM_LPDR_TOUT_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_TIMEOUT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_set_data_mode(struct
dsim_global *dsim, unsigned int data,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int state)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_ESCMODE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(state == DSIM_STATE_HSCLKEN)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~data;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= data;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_ESCMODE);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_enable_hs_clock(struct
dsim_global *dsim, unsigned int enable)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_CLKCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(1
&lt;&lt; DSIM_TX_REQUEST_HSCLK_SHIFT);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= enable &lt;&lt; DSIM_TX_REQUEST_HSCLK_SHIFT;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_CLKCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_dp_dn_swap(struct
dsim_global *dsim, unsigned int swap_en)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_PHYACCHR1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
&amp;= ~(0x3 &lt;&lt; 0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= (swap_en &amp; 0x3) &lt;&lt; 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PHYACCHR1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_hs_zero_ctrl(struct
dsim_global *dsim, unsigned int hs_zero)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_PLLCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0xf
&lt;&lt; 28);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((hs_zero &amp; 0xf) &lt;&lt; 28);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PLLCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_prep_ctrl(struct dsim_global
*dsim, unsigned int prep)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (readl(dsim-&gt;reg_base + S5P_DSIM_PLLCTRL)) &amp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~(0x7
&lt;&lt; 20);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= ((prep &amp; 0x7) &lt;&lt; 20);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PLLCTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_clear_interrupt(struct
dsim_global *dsim, unsigned int int_src)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_INTSRC);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
|= int_src;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_INTSRC);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+unsigned int s5p_dsim_is_pll_stable(struct
dsim_global *dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg
= readl(dsim-&gt;reg_base + S5P_DSIM_STATUS);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
reg &amp; (1 &lt;&lt; 31) ? 1 : 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+unsigned int
s5p_dsim_get_fifo_state(struct dsim_global *dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
= readl(dsim-&gt;reg_base + S5P_DSIM_FIFOCTRL) &amp; ~(0x1f);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
ret;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_wr_tx_header(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int di, unsigned int data0, unsigned int data1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = (data1 &lt;&lt; 16) | (data0 &lt;&lt; 8) | ((di &amp; 0x3f) &lt;&lt;
0);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg,
dsim-&gt;reg_base + S5P_DSIM_PKTHDR);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+unsigned int
_s5p_dsim_get_frame_done_status(struct dsim_global *dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_INTSRC);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
(reg &amp; INTSRC_FRAME_DONE) ? 1 : 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void _s5p_dsim_clear_frame_done(struct
dsim_global *dsim)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int reg = readl(dsim-&gt;reg_base + S5P_DSIM_INTSRC);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(reg
| INTSRC_FRAME_DONE, dsim-&gt;reg_base +<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S5P_DSIM_INTSRC);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+void s5p_dsim_wr_tx_data(struct
dsim_global *dsim, unsigned int tx_data)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(tx_data,
dsim-&gt;reg_base + S5P_DSIM_PAYLOAD);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>diff --git
a/drivers/video/s5p_dsim_lowlevel.h b/drivers/video/s5p_dsim_lowlevel.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>new file mode 100644<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>index 0000000..22f7529<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--- /dev/null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+++ b/drivers/video/s5p_dsim_lowlevel.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>@@ -0,0 +1,101 @@<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+/*
linux/drivers/video/samsung/s5p_dsim_lowlevel.h<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Header file for Samsung MIPI-DSIM
lowlevel driver.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * Copyright (c) 2009 Samsung Electronics<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * InKi Dae &lt;inki.dae@samsung.com&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ *<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * This program is free software; you can
redistribute it and/or modify<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * it under the terms of the GNU General
Public License version 2 as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+ * published by the Free Software
Foundation.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#ifndef _S5P_DSIM_LOWLEVEL_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#define _S5P_DSIM_LOWLEVEL_H<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+struct dsim_global;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_func_reset(struct
dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_sw_reset(struct
dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_interrupt_mask(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int mode, unsigned int mask);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_data_lane_number(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int count);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_init_fifo_pointer(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int cfg);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_phy_tunning(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int value);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_phy_tunning(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int value);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_main_disp_resol(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int vert_resol, unsigned int hori_resol);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_main_disp_vporch(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int cmd_allow, unsigned int vfront, unsigned int vback);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_main_disp_hporch(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int front, unsigned int back);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_main_disp_sync_area(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int vert, unsigned int hori);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_sub_disp_resol(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int vert, unsigned int hori);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_init_config(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *main_lcd_info,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *sub_lcd_info, struct dsim_config *dsim_info);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_display_config(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct
dsim_lcd_config *main_lcd, struct dsim_lcd_config *sub_lcd);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_set_data_lane_number(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int count);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_enable_lane(struct
dsim_global *dsim, unsigned int lane,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_enable_afc(struct
dsim_global *dsim, unsigned int enable,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int afc_code);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_enable_pll_bypass(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_set_pll_pms(struct
dsim_global *dsim, unsigned int p,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int m, unsigned int s);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_pll_freq_band(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int freq_band);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_pll_freq(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int pre_divider, unsigned int main_divider,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int scaler);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_pll_stable_time(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int lock_time);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_enable_pll(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_byte_clock_src(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int src);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_enable_byte_clock(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_esc_clk_prs(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable, unsigned int prs_val);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_enable_esc_clk_on_lane(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int lane_sel, unsigned int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_force_dphy_stop_state(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern unsigned int
s5p_dsim_is_lane_state(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int lane);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_stop_state_counter(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int cnt_val);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_bta_timeout(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int timeout);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_set_lpdr_timeout(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int timeout);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_set_data_mode(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int data, unsigned int state);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_enable_hs_clock(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int enable);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_dp_dn_swap(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int swap_en);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_hs_zero_ctrl(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int hs_zero);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_prep_ctrl(struct
dsim_global *dsim, unsigned int prep);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void
s5p_dsim_clear_interrupt(struct dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int int_src);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern unsigned int
s5p_dsim_is_pll_stable(struct dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern unsigned int
s5p_dsim_get_fifo_state(struct dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern unsigned int
_s5p_dsim_get_frame_done_status(struct dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void _s5p_dsim_clear_frame_done(struct
dsim_global *dsim);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_wr_tx_header(struct
dsim_global *dsim,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned
int di, unsigned int data0, unsigned int data1);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+extern void s5p_dsim_wr_tx_data(struct
dsim_global *dsim, unsigned int tx_data);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>+#endif /* _S5P_DSIM_LOWLEVEL_H */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>--<o:p></o:p></span></p>

</div>

</body>

</html>