10 // ---------------------------------------------------------------------------
12 #define DPI_CHECK_RET(expr) \
14 DPI_STATUS ret = (expr); \
15 ASSERT(DPI_STATUS_OK == ret); \
18 // ---------------------------------------------------------------------------
30 DPI_FB_FORMAT_RGB565
= 0,
31 DPI_FB_FORMAT_RGB888
= 1,
32 DPI_FB_FORMAT_XRGB888
= 1,
33 DPI_FB_FORMAT_RGBX888
= 1,
40 DPI_RGB_ORDER_RGB
= 0,
41 DPI_RGB_ORDER_BGR
= 1,
56 DPI_POLARITY_RISING
= 0,
57 DPI_POLARITY_FALLING
= 1
63 DPI_OUTPUT_BIT_NUM_8BITS = 0,
64 DPI_OUTPUT_BIT_NUM_10BITS = 1,
65 DPI_OUTPUT_BIT_NUM_12BITS = 2
70 DPI_OUTPUT_CHANNEL_SWAP_RGB = 0,
71 DPI_OUTPUT_CHANNEL_SWAP_GBR = 1,
72 DPI_OUTPUT_CHANNEL_SWAP_BRG = 2,
73 DPI_OUTPUT_CHANNEL_SWAP_RBG = 3,
74 DPI_OUTPUT_CHANNEL_SWAP_GRB = 4,
75 DPI_OUTPUT_CHANNEL_SWAP_BGR = 5
76 } DPI_OUTPUT_CHANNEL_SWAP;
80 DPI_OUTPUT_YC_MAP_RGB_OR_CrYCb = 0, // {R[7:4],G[7:4],B[7:4]} or {Cr[7:4],Y[7:4],Cb[7:4]}
81 DPI_OUTPUT_YC_MAP_CYCY = 4, // {C[11:4],Y[11:4],C[3:0],Y[3:0]}
82 DPI_OUTPUT_YC_MAP_YCYC = 5, // {Y[11:4],C[11:4],Y[3:0],C[3:0]}
83 DPI_OUTPUT_YC_MAP_CY = 6, // {C[11:0],Y[11:0]}
84 DPI_OUTPUT_YC_MAP_YC = 7 // {Y[11:0],C[11:0]}
99 // ---------------------------------------------------------------------------
101 DPI_STATUS
DPI_Init(BOOL isDpiPoweredOn
);
102 DPI_STATUS
DPI_Deinit(void);
104 DPI_STATUS
DPI_Init_PLL(void);
105 DPI_STATUS
DPI_Set_DrivingCurrent(LCM_PARAMS
*lcm_params
);
107 DPI_STATUS
DPI_PowerOn(void);
108 DPI_STATUS
DPI_PowerOff(void);
110 DPI_STATUS
DPI_EnableClk(void);
111 DPI_STATUS
DPI_DisableClk(void);
113 DPI_STATUS
DPI_EnableSeqOutput(BOOL enable
);
114 DPI_STATUS
DPI_SetRGBOrder(DPI_RGB_ORDER input
, DPI_RGB_ORDER output
);
116 DPI_STATUS
DPI_ConfigPixelClk(DPI_POLARITY polarity
, UINT32 divisor
, UINT32 duty
);
117 DPI_STATUS
DPI_ConfigDataEnable(DPI_POLARITY polarity
);
118 DPI_STATUS
DPI_ConfigVsync(DPI_POLARITY polarity
,
119 UINT32 pulseWidth
, UINT32 backPorch
, UINT32 frontPorch
);
120 DPI_STATUS
DPI_ConfigHsync(DPI_POLARITY polarity
,
121 UINT32 pulseWidth
, UINT32 backPorch
, UINT32 frontPorch
);
123 DPI_STATUS
DPI_FBSyncFlipWithLCD(BOOL enable
);
124 DPI_STATUS
DPI_SetDSIMode(BOOL enable
);
125 BOOL
DPI_IsDSIMode(void);
126 DPI_STATUS
DPI_FBSetFormat(DPI_FB_FORMAT format
);
127 DPI_FB_FORMAT
DPI_FBGetFormat(void);
128 DPI_STATUS
DPI_FBSetSize(UINT32 width
, UINT32 height
);
129 DPI_STATUS
DPI_FBEnable(DPI_FB_ID id
, BOOL enable
);
130 DPI_STATUS
DPI_FBSetAddress(DPI_FB_ID id
, UINT32 address
);
131 DPI_STATUS
DPI_FBSetPitch(DPI_FB_ID id
, UINT32 pitchInByte
);
133 DPI_STATUS
DPI_SetFifoThreshold(UINT32 low
, UINT32 high
);
136 DPI_STATUS
DPI_DumpRegisters(void);
138 DPI_STATUS
DPI_Capture_Framebuffer(unsigned int pvbuf
, unsigned int bpp
);
141 DPI_STATUS
DPI_FMDesense_Query(void);
142 DPI_STATUS
DPI_FM_Desense(unsigned long freq
);
143 DPI_STATUS
DPI_Get_Default_CLK(unsigned int *clk
);
144 DPI_STATUS
DPI_Get_Current_CLK(unsigned int *clk
);
145 DPI_STATUS
DPI_Change_CLK(unsigned int clk
);
146 DPI_STATUS
DPI_Reset_CLK(void);
148 void DPI_mipi_switch(bool on
);
149 void DPI_DisableIrq(void);
150 void DPI_EnableIrq(void);
151 DPI_STATUS
DPI_FreeIRQ(void);
153 DPI_STATUS
DPI_EnableInterrupt(DISP_INTERRUPT_EVENTS eventID
);
154 DPI_STATUS
DPI_SetInterruptCallback(void (*pCB
)(DISP_INTERRUPT_EVENTS eventID
));
155 void DPI_WaitVSYNC(void);
156 void DPI_InitVSYNC(unsigned int vsync_interval
);
157 void DPI_PauseVSYNC(bool enable
);
159 DPI_STATUS
DPI_ConfigLVDS(LCM_PARAMS
*lcm_params
);
160 DPI_STATUS
DPI_LVDS_Enable(void);
161 DPI_STATUS
DPI_LVDS_Disable(void);
163 DPI_STATUS
DPI_ConfigHDMI(void);
165 unsigned int DPI_Check_LCM(void);
166 // ---------------------------------------------------------------------------
172 #endif // __DPI_DRV_H__