aboutsummaryrefslogtreecommitdiff
path: root/drivers/video/mcde/dsi_hwaccess.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/mcde/dsi_hwaccess.c')
-rw-r--r--drivers/video/mcde/dsi_hwaccess.c1461
1 files changed, 0 insertions, 1461 deletions
diff --git a/drivers/video/mcde/dsi_hwaccess.c b/drivers/video/mcde/dsi_hwaccess.c
deleted file mode 100644
index bea2c32fb97..00000000000
--- a/drivers/video/mcde/dsi_hwaccess.c
+++ /dev/null
@@ -1,1461 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License terms:
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as published
- * by the Free Software Foundation.
- */
-
-#ifdef _cplusplus
-extern "C" {
-#endif /* _cplusplus */
-
-/** Linux include files:charachter driver and memory functions */
-
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <mach/mcde_common.h>
-
-extern struct mcdefb_info *gpar[];
-dsi_error dsisetlinkstate(dsi_link link, dsi_link_state linkState, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- if (link > DSI_LINK2)
- {
- return(DSI_INVALID_PARAMETER);
- }
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl & ~DSI_MCTL_LINKEN_MASK) |((u32) linkState & DSI_MCTL_LINKEN_MASK));
- gpar[chid]->dsi_lnk_context.dsi_link_state = linkState;
-
- return(dsi_error);
-}
-
-dsi_error dsisetInterface1mode(dsi_link link, dsi_interface_mode mode, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_INTERFACE1_MODE_MASK) |(((u32) mode << DSI_MCTL_INTERFACE1_MODE_SHIFT) & DSI_MCTL_INTERFACE1_MODE_MASK) );
-
- gpar[chid]->dsi_lnk_context.dsi_if_mode = mode;
-
- return(dsi_error);
-
-}
-
-dsi_error dsisetVSG(dsi_link link, dsi_vsg_ctrl state, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_VID_EN_MASK) |(((u32) state << DSI_MCTL_VID_EN_SHIFT ) & DSI_MCTL_VID_EN_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetTVG(dsi_link link, dsi_tvg_ctrl state, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- if ((gpar[chid]->dsi_lnk_context.dsi_if_mode == 1) || (gpar[chid]->dsi_lnk_context.dsi_if1_state == 1))
- {
- return(DSI_REQUEST_NOT_APPLICABLE);
- }
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_TVG_SEL_MASK) |(((u32) state << DSI_MCTL_TVG_SEL_SHIFT ) & DSI_MCTL_TVG_SEL_MASK) );
-
- return(dsi_error);
-}
-dsi_error dsisetTBG(dsi_link link, dsi_tbg_ctrl state, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_TBG_SEL_MASK) |(((u32) state << DSI_MCTL_TBG_SEL_SHIFT ) & DSI_MCTL_TBG_SEL_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsireadset(dsi_link link, dsi_rd_ctrl state, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_READEN_MASK) |(((u32) state << DSI_MCTL_READEN_SHIFT ) & DSI_MCTL_READEN_MASK) );
-
-
- return(dsi_error);
-}
-
-dsi_error dsisetBTAmode(dsi_link link, dsi_bta_mode mode, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_BTAEN_MASK) |(((u32) mode << DSI_MCTL_BTAEN_SHIFT ) & DSI_MCTL_BTAEN_MASK) );
-
- return(dsi_error);
-}
-dsi_error dsisetTE(dsi_link link, dsi_te_en tearing, dsi_te_ctrl state, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
-
- switch(tearing.te_sel)
- {
- case DSI_REG_TE:
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_REG_TE_MASK) |(((u32) state << DSI_REG_TE_SHIFT ) & DSI_REG_TE_MASK) );
- break;
-
- case DSI_IF_TE:
- if(tearing.interface == DSI_INTERFACE_1)
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_IF1_TE_MASK) |(((u32) state << DSI_IF1_TE_SHIFT ) & DSI_IF1_TE_MASK) );
- else if(tearing.interface == DSI_INTERFACE_2)
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_IF2_TE_MASK) |(((u32) state << DSI_IF2_TE_SHIFT ) & DSI_IF2_TE_MASK) );
- else
- dsi_error = DSI_INVALID_PARAMETER ;
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER ;
- }
-
-
- return(dsi_error);
-}
-
-dsi_error dsisetdispECCGenmode(dsi_link link, dsi_ecc_gen_mode mode, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_DISPECCGEN_MASK) |(((u32) mode << DSI_MCTL_DISPECCGEN_SHIFT ) & DSI_MCTL_DISPECCGEN_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetdispCHKSUMGenmode(dsi_link link, dsi_checksum_gen_mode mode, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_DISPCHECKSUMGEN_MASK) |(((u32) mode << DSI_MCTL_DISPCHECKSUMGEN_SHIFT ) & DSI_MCTL_DISPCHECKSUMGEN_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetdispEOTGenmode(dsi_link link, dsi_eot_gen_mode mode, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_DISPEOTGEN_MASK) |(((u32) mode << DSI_MCTL_DISPEOTGEN_SHIFT ) & DSI_MCTL_DISPEOTGEN_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetdispHOSTEOTGenmode(dsi_link link, dsi_host_eot_gen_mode mode, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_data_ctl &~DSI_MCTL_HOSTEOTGEN_MASK) |(((u32) mode << DSI_MCTL_HOSTEOTGEN_SHIFT ) & DSI_MCTL_HOSTEOTGEN_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetPLLcontrol(dsi_link link, mcde_ch_id chid, dsi_pll_ctl pll_ctl)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl &~DSI_PLL_OUT_SEL_MASK) |(((u32) pll_ctl.pll_out_sel << DSI_PLL_OUT_SEL_SHIFT ) & DSI_PLL_OUT_SEL_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl &~DSI_PLL_DIV_MASK) |(((u32) pll_ctl.division_ratio << DSI_PLL_DIV_SHIFT ) & DSI_PLL_DIV_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl &~DSI_PLL_IN_SEL_MASK) |(((u32) pll_ctl.pll_in_sel << DSI_PLL_IN_SEL_SHIFT ) & DSI_PLL_IN_SEL_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl &~DSI_PLL_MASTER_MASK) |(((u32) pll_ctl.pll_master << DSI_PLL_MASTER_SHIFT ) & DSI_PLL_MASTER_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_pll_ctl &~DSI_PLL_MULT_MASK) |((u32) pll_ctl.multiplier & DSI_PLL_MASTER_MASK) );
-
- return(dsi_error);
-}
-dsi_error dsisetInterface(dsi_link link, mcde_ch_id chid, dsi_if_state state, dsi_interface interface)
-{
- dsi_error dsi_error = DSI_OK;
-
- switch(interface)
- {
- case DSI_INTERFACE_1:
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_IF1_EN_MASK) |(((u32) state << DSI_IF1_EN_SHIFT)& DSI_IF1_EN_MASK) );
- break;
-
- case DSI_INTERFACE_2:
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_IF2_EN_MASK) |(((u32) state << DSI_IF2_EN_SHIFT)& DSI_IF2_EN_MASK) );
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
- }
-
- return(dsi_error);
-}
-dsi_error dsisetInterfaceInLpm(dsi_link link, mcde_ch_id chid, dsi_interface_mode_type modType, dsi_interface interface)
-{
- dsi_error dsi_error = DSI_OK;
- dsi_if_state ifState;
-
- if ( modType == DSI_CLK_LANE_LPM)
- ifState = DSI_IF_ENABLE;
- else
- ifState = DSI_IF_DISABLE;
-
- switch(interface)
- {
- case DSI_INTERFACE_1:
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl = ((gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl &~DSI_IF1_LPM_EN_MASK) |(((u32) ifState << DSI_IF1_LPM_EN_MASK_SHIFT)& DSI_IF1_LPM_EN_MASK) );
- break;
-
- case DSI_INTERFACE_2:
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl = ((gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl &~DSI_IF2_LPM_EN_MASK) |(((u32) ifState << DSI_IF2_LPM_EN_MASK_SHIFT)& DSI_IF2_LPM_EN_MASK) );
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
- }
-
- return(dsi_error);
-}
-dsi_error dsisetstallsignal(dsi_link link, mcde_ch_id chid, dsi_stall_signal_state state, dsi_interface_mode mode)
-{
- dsi_error dsi_error = DSI_OK;
-
- if(gpar[chid]->dsi_lnk_context.dsi_int_mode != DSI_INT_MODE_ENABLE)
- return(DSI_REQUEST_NOT_APPLICABLE);
- switch(mode)
- {
- case DSI_VIDEO_MODE:
- gpar[chid]->dsi_lnk_registers[link]->int_vid_gnt = ((gpar[chid]->dsi_lnk_registers[link]->int_vid_gnt &~DSI_IF_STALL_MASK) |((u32) state & DSI_IF_STALL_MASK) );
-
- break;
-
- case DSI_COMMAND_MODE:
- gpar[chid]->dsi_lnk_registers[link]->int_cmd_gnt = ((gpar[chid]->dsi_lnk_registers[link]->int_cmd_gnt &~DSI_IF_STALL_MASK) |((u32) state & DSI_IF_STALL_MASK) );
-
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
-
- }
-
- return(dsi_error);
-
-
-}
-dsi_error dsisetdirectcmdsettings(dsi_link link, mcde_ch_id chid, dsi_cmd_main_setting cmd_settings)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings &~DSI_CMD_NAT_MASK) |((u32) cmd_settings.cmd_nature & DSI_CMD_NAT_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings &~DSI_CMD_LONGNOTSHORT_MASK) |(((u32) cmd_settings.packet_type << DSI_CMD_LONGNOTSHORT_SHIFT)& DSI_CMD_LONGNOTSHORT_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings &~DSI_CMD_HEAD_MASK) |(((u32) cmd_settings.cmd_header << DSI_CMD_HEAD_SHIFT)& DSI_CMD_HEAD_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings &~DSI_CMD_ID_MASK) |(((u32) cmd_settings.cmd_id << DSI_CMD_ID_SHIFT)& DSI_CMD_ID_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings &~DSI_CMD_SIZE_MASK) |(((u32) cmd_settings.cmd_size << DSI_CMD_SIZE_SHIFT)& DSI_CMD_SIZE_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings &~DSI_CMD_LP_EN_MASK) |(((u32) cmd_settings.cmd_lp_enable << DSI_CMD_LP_EN_SHIFT)& DSI_CMD_LP_EN_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings &~DSI_TRIGGER_VAL_MASK) |(((u32) cmd_settings.cmd_trigger_val << DSI_TRIGGER_VAL_SHIFT)& DSI_TRIGGER_VAL_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetTEtimeout(dsi_link link, mcde_ch_id chid, u32 te_timeout)
-{
- dsi_error dsi_error = DSI_OK;
- u8 te_lowerbits ;
- dsi_te_timeout te_upperbits;
-
- if(te_timeout/256 == 1)
- {
- te_lowerbits = te_timeout % 256;
- te_upperbits = DSI_TE_256;
- }
- else if(te_timeout/512 == 1)
- {
- te_lowerbits = te_timeout % 512;
- te_upperbits = DSI_TE_512;
- }
- else if (te_timeout/1024 == 1)
- {
- te_lowerbits = te_timeout % 1024;
- te_upperbits = DSI_TE_1024;
- }
- else
- {
- te_lowerbits = te_timeout % 2048;
- te_upperbits = DSI_TE_2048;
- }
-
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl = ((gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl &~DSI_TE_LOWERBIT_MASK) |(((u32) te_lowerbits << DSI_TE_LOWERBIT_SHIFT)& DSI_TE_LOWERBIT_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl = ((gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl &~DSI_TE_UPPERBIT_MASK) |(((u32) te_upperbits << DSI_TE_UPPERBIT_SHIFT)& DSI_TE_UPPERBIT_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetPLLmode(dsi_link link, mcde_ch_id chid, dsi_pll_mode mode)
-{
- dsi_error dsi_error = DSI_OK;
-
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_PLL_START_MASK) |((u32) mode & DSI_PLL_START_MASK) );
-
- return(dsi_error);
-}
-dsi_error dsisetlanestate(dsi_link link, mcde_ch_id chid, dsi_lane_state mode, dsi_lane lane)
-{
- dsi_error dsi_error = DSI_OK;
-
- if ( (lane > DSI_DATA_LANE2))
- {
- return(DSI_INVALID_PARAMETER);
- }
-
- switch(lane)
- {
- case DSI_CLK_LANE:
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_CKLANE_EN_MASK) |(((u32) mode << DSI_CKLANE_EN_SHIFT)& DSI_CKLANE_EN_MASK) );
- break;
-
- case DSI_DATA_LANE1:
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_DAT1_EN_MASK) |(((u32) mode << DSI_DAT1_EN_SHIFT)& DSI_DAT1_EN_MASK) );
- break;
-
- case DSI_DATA_LANE2:
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl &~DSI_LANE2_EN_MASK) |((u32) mode & DSI_LANE2_EN_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_DAT2_EN_MASK) |(((u32) mode << DSI_DAT2_EN_SHIFT)& DSI_DAT2_EN_MASK) );
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
- }
-
- return(dsi_error);
-
-}
-
-dsi_error dsisetlanetoULPM(dsi_link link, mcde_ch_id chid, dsi_lane_mode mode, dsi_lane lane)
-{
- dsi_error dsi_error = DSI_OK;
-
- if ( (lane > DSI_DATA_LANE2))
- {
- return(DSI_INVALID_PARAMETER);
- }
-
- switch(lane)
- {
- case DSI_CLK_LANE:
- /** enable the ULPM mode for clock lane*/
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl &~DSI_CLK_ULPM_EN_MASK) |(((u32) mode << DSI_CLK_ULPM_EN_SHIFT ) & DSI_CLK_ULPM_EN_MASK) );
- /** start the clock lane in ULPM mode*/
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_CLK_ULPM_MASK) |(((u32) mode << DSI_CLK_ULPM_SHIFT)& DSI_CLK_ULPM_MASK) );
- break;
-
- case DSI_DATA_LANE1:
- /** enable the ULPM mode for data1 lane*/
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl &~DSI_DAT1_ULPM_EN_MASK) |(((u32) mode << DSI_DAT1_ULPM_EN_SHIFT ) & DSI_DAT1_ULPM_EN_MASK) );
- /** start the data1 lane in ULPM mode*/
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_DAT1_ULPM_MASK) |(((u32) mode << DSI_DAT1_ULPM_SHIFT)& DSI_DAT1_ULPM_MASK) );
- break;
-
- case DSI_DATA_LANE2:
- /** enable the ULPM mode for data2 lane*/
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl &~DSI_DAT2_ULPM_EN_MASK) |(((u32) mode << DSI_DAT2_ULPM_EN_SHIFT ) & DSI_DAT2_ULPM_EN_MASK) );
- /** start the data2 lane in ULPM mode*/
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_en = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_en &~DSI_DAT2_ULPM_MASK) |(((u32) mode << DSI_DAT2_ULPM_SHIFT)& DSI_DAT2_ULPM_MASK) );
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
- }
- return dsi_error;
-}
-
-dsi_error dsisetCLKHSsendingmode(dsi_link link, dsi_clk_continious_hs_mode mode, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl &~DSI_CLK_CONTINUOUS_MASK) |(((u32) mode << DSI_CLK_CONTINUOUS_SHIFT ) & DSI_CLK_CONTINUOUS_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetwaitbursttime(dsi_link link, u8 delay, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl = ((gpar[chid]->dsi_lnk_registers[link]->mctl_main_phy_ctl &~DSI_WAIT_BURST_MASK) |(((u32) delay << DSI_WAIT_BURST_SHIFT ) & DSI_WAIT_BURST_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsigetlinkstatus(dsi_link link, mcde_ch_id chid, u8 *p_status)
-{
- dsi_error dsi_error = DSI_OK;
-
- *p_status = (u8)(gpar[chid]->dsi_lnk_registers[link]->mctl_main_sts & DSI_MAIN_STS_MASK);
-
- return(dsi_error);
-}
-
-
-dsi_error dsisetvideomodectrl(dsi_link link, mcde_ch_id chid, dsi_vid_main_ctl vid_ctl)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_STOP_MODE_MASK) |(((u32) vid_ctl.vid_stop_mode << DSI_STOP_MODE_SHIFT)& DSI_STOP_MODE_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_VID_ID_MASK) |(((u32) vid_ctl.vid_id << DSI_VID_ID_SHIFT)& DSI_VID_ID_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_HEADER_MASK) |(((u32) vid_ctl.header << DSI_HEADER_SHIFT)& DSI_HEADER_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_PIXEL_MODE_MASK) |(((u32) vid_ctl.vid_pixel_mode << DSI_PIXEL_MODE_SHIFT)& DSI_PIXEL_MODE_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_BURST_MODE_MASK) |(((u32) vid_ctl.vid_burst_mode << DSI_BURST_MODE_SHIFT)& DSI_VID_ID_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_SYNC_PULSE_ACTIVE_MASK) |(((u32) vid_ctl.sync_pulse_active << DSI_SYNC_PULSE_ACTIVE_SHIFT)& DSI_VID_ID_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_SYNC_PULSE_HORIZONTAL_MASK) |(((u32) vid_ctl.sync_pulse_horizontal << DSI_SYNC_PULSE_HORIZONTAL_SHIFT)& DSI_SYNC_PULSE_HORIZONTAL_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_BLKLINE_MASK) |(((u32) vid_ctl.blkline_mode << DSI_BLKLINE_SHIFT)& DSI_BLKLINE_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_BLKEOL_MASK) |(((u32) vid_ctl.blkeol_mode << DSI_BLKEOL_SHIFT)& DSI_BLKEOL_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_RECOVERY_MODE_MASK) |(((u32) vid_ctl.recovery_mode << DSI_RECOVERY_MODE_SHIFT)& DSI_RECOVERY_MODE_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl = ((gpar[chid]->dsi_lnk_registers[link]->vid_main_ctl &~DSI_START_MODE_MASK) |((u32) vid_ctl.vid_start_mode & DSI_START_MODE_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetvideoXYsize(dsi_link link, mcde_ch_id chid, dsi_img_horizontal_size vid_hsize, dsi_img_vertical_size vid_vsize)
-{
- dsi_error dsi_error = DSI_OK;
-
- // X size settings
- gpar[chid]->dsi_lnk_registers[link]->vid_hsize1 = ((gpar[chid]->dsi_lnk_registers[link]->vid_hsize1 &~DSI_HBP_LENGTH_MASK) |(((u32) vid_hsize.hbp_length << DSI_HBP_LENGTH_SHIFT)& DSI_HBP_LENGTH_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_hsize1 = ((gpar[chid]->dsi_lnk_registers[link]->vid_hsize1 &~DSI_HFP_LENGTH_MASK) |(((u32) vid_hsize.hfp_length << DSI_HFP_LENGTH_SHIFT)& DSI_HFP_LENGTH_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_hsize1 = ((gpar[chid]->dsi_lnk_registers[link]->vid_hsize1 &~DSI_HSA_LENGTH_MASK) |((u32) vid_hsize.hsa_length & DSI_HSA_LENGTH_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_hsize2 = ((gpar[chid]->dsi_lnk_registers[link]->vid_hsize2 &~DSI_RGB_SIZE_MASK) |((u32) vid_hsize.rgb_size & DSI_RGB_SIZE_MASK) );
-
- //Y size settings
- gpar[chid]->dsi_lnk_registers[link]->vid_vsize = ((gpar[chid]->dsi_lnk_registers[link]->vid_vsize &~DSI_VACT_LENGTH_MASK) |(((u32) vid_vsize.vact_length << DSI_VACT_LENGTH_SHIFT)& DSI_VACT_LENGTH_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_vsize = ((gpar[chid]->dsi_lnk_registers[link]->vid_vsize &~DSI_VFP_LENGTH_MASK) |(((u32) vid_vsize.vfp_length << DSI_VFP_LENGTH_SHIFT)& DSI_VFP_LENGTH_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_vsize = ((gpar[chid]->dsi_lnk_registers[link]->vid_vsize &~DSI_VBP_LENGTH_MASK) |(((u32) vid_vsize.vbp_length << DSI_VBP_LENGTH_SHIFT)& DSI_VBP_LENGTH_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_vsize = ((gpar[chid]->dsi_lnk_registers[link]->vid_vsize &~DSI_VSA_LENGTH_MASK) |((u32) vid_vsize.vact_length & DSI_VSA_LENGTH_MASK) );
-
- return(dsi_error);
-}
-
-
-dsi_error dsisetvideopos(dsi_link link, mcde_ch_id chid, dsi_img_position vid_pos)
-{
- dsi_error dsi_error = DSI_OK;
-
-
- gpar[chid]->dsi_lnk_registers[link]->vid_vpos = ((gpar[chid]->dsi_lnk_registers[link]->vid_vpos &~DSI_LINE_POS_MASK) |( (u32) vid_pos.line_pos & DSI_LINE_POS_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_vpos = ((gpar[chid]->dsi_lnk_registers[link]->vid_vpos &~DSI_LINE_VAL_MASK) |(((u32) vid_pos.line_val << DSI_LINE_VAL_SHIFT)& DSI_LINE_VAL_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_hpos = ((gpar[chid]->dsi_lnk_registers[link]->vid_hpos &~DSI_HORI_POS_MASK) |((u32) vid_pos.horizontal_pos & DSI_HORI_POS_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->vid_hpos = ((gpar[chid]->dsi_lnk_registers[link]->vid_hpos &~DSI_HORI_VAL_MASK) |(((u32) vid_pos.horizontal_val << DSI_HORI_VAL_SHIFT)& DSI_HORI_VAL_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsigetvideomodestatus(dsi_link link, mcde_ch_id chid, u16 *p_vid_mode_sts)
-{
- dsi_error dsi_error = DSI_OK;
-
- *p_vid_mode_sts = (u16)(gpar[chid]->dsi_lnk_registers[link]->vid_mode_sts & DSI_VID_MODE_STS_MASK);
-
- return(dsi_error);
-}
-
-dsi_error dsisetblankingctrl(dsi_link link, mcde_ch_id chid, dsi_vid_blanking blksize)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->vid_blksize1 = ((gpar[chid]->dsi_lnk_registers[link]->vid_blksize1 &~DSI_BLKEOL_PCK_MASK) |(((u32) blksize.blkeol_pck << DSI_BLKEOL_PCK_SHIFT)& DSI_BLKEOL_PCK_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_blksize1 = ((gpar[chid]->dsi_lnk_registers[link]->vid_blksize1 &~DSI_BLKLINE_EVENT_MASK) |((u32) blksize.blkline_event_pck & DSI_BLKLINE_EVENT_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_blksize2 = ((gpar[chid]->dsi_lnk_registers[link]->vid_blksize2 &~DSI_BLKLINE_PULSE_PCK_MASK) |((u32) blksize.blkline_pulse_pck & DSI_BLKLINE_PULSE_PCK_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_pck_time = ((gpar[chid]->dsi_lnk_registers[link]->vid_pck_time &~DSI_VERT_BLANK_DURATION_MASK) |(((u32) blksize.vert_balnking_duration << DSI_VERT_BLANK_DURATION_SHIFT)& DSI_VERT_BLANK_DURATION_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_pck_time = ((gpar[chid]->dsi_lnk_registers[link]->vid_pck_time &~DSI_BLKEOL_DURATION_MASK) |((u32) blksize.blkeol_duration & DSI_BLKEOL_DURATION_MASK) );
-
- return(dsi_error);
-}
-
-
-dsi_error dsisetviderrorcolor(dsi_link link, mcde_ch_id chid, dsi_vid_err_color err_color)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->vid_err_color = ((gpar[chid]->dsi_lnk_registers[link]->vid_err_color &~DSI_COL_GREEN_MASK) |(((u32) err_color.col_green << DSI_COL_GREEN_SHIFT)& DSI_COL_GREEN_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_err_color = ((gpar[chid]->dsi_lnk_registers[link]->vid_err_color &~DSI_COL_BLUE_MASK) |(((u32) err_color.col_blue << DSI_COL_BLUE_SHIFT)& DSI_COL_BLUE_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_err_color = ((gpar[chid]->dsi_lnk_registers[link]->vid_err_color &~DSI_PAD_VAL_MASK) |(((u32) err_color.pad_val << DSI_PAD_VAL_SHIFT)& DSI_PAD_VAL_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_err_color = ((gpar[chid]->dsi_lnk_registers[link]->vid_err_color &~DSI_COL_RED_MASK) |((u32)err_color.col_red & DSI_COL_RED_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetVCActrl(dsi_link link, mcde_ch_id chid, dsi_vca_setting vca_setting)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->vid_vca_setting1 = ((gpar[chid]->dsi_lnk_registers[link]->vid_vca_setting1 &~DSI_BURST_LP_MASK) |(((u32) vca_setting.burst_lp << DSI_BURST_LP_SHIFT)& DSI_BURST_LP_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_vca_setting2 = ((gpar[chid]->dsi_lnk_registers[link]->vid_vca_setting1 &~DSI_MAX_BURST_LIMIT_MASK) |((u32) vca_setting.max_burst_limit & DSI_MAX_BURST_LIMIT_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_vca_setting1 = ((gpar[chid]->dsi_lnk_registers[link]->vid_vca_setting2 &~DSI_MAX_LINE_LIMIT_MASK) |(((u32) vca_setting.max_line_limit << DSI_MAX_LINE_LIMIT_SHIFT)& DSI_MAX_LINE_LIMIT_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->vid_vca_setting2 = ((gpar[chid]->dsi_lnk_registers[link]->vid_vca_setting2 &~DSI_EXACT_BURST_LIMIT_MASK) |((u32) vca_setting.exact_burst_limit & DSI_EXACT_BURST_LIMIT_MASK) );
-
- return(dsi_error);
-
-}
-dsi_error dsisetTVGctrl(dsi_link link, mcde_ch_id chid, dsi_tvg_control tvg_control)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_ctl = ((gpar[chid]->dsi_lnk_registers[link]->tvg_ctl &~DSI_TVG_STRIPE_MASK) |(((u32) tvg_control.tvg_stripe_size << DSI_TVG_STRIPE_SHIFT)& DSI_TVG_STRIPE_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_ctl = ((gpar[chid]->dsi_lnk_registers[link]->tvg_ctl &~DSI_TVG_MODE_MASK) |(((u32) tvg_control.tvg_mode << DSI_TVG_MODE_SHIFT)& DSI_TVG_MODE_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_ctl = ((gpar[chid]->dsi_lnk_registers[link]->tvg_ctl &~DSI_TVG_STOPMODE_MASK) |(((u32) tvg_control.stop_mode << DSI_TVG_STOPMODE_SHIFT)& DSI_TVG_STOPMODE_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsiTVGsetstate(dsi_link link, mcde_ch_id chid, dsi_tvg_ctrl_state state)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_ctl = ((gpar[chid]->dsi_lnk_registers[link]->tvg_ctl &~DSI_TVG_RUN_MASK) |((u32) state & DSI_TVG_RUN_MASK) );
-
- return(dsi_error);
-}
-
-
-
-dsi_error dsisetTVGimagesize(dsi_link link, mcde_ch_id chid, dsi_tvg_img_size img_size)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_img_size = ((gpar[chid]->dsi_lnk_registers[link]->tvg_img_size &~DSI_TVG_NBLINE_MASK) |(((u32) img_size.tvg_nbline << DSI_TVG_NBLINE_SHIFT)& DSI_TVG_NBLINE_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_img_size = ((gpar[chid]->dsi_lnk_registers[link]->tvg_img_size &~DSI_TVG_LINE_SIZE_MASK) |((u32) img_size.tvg_line_size & DSI_TVG_LINE_SIZE_MASK) );
-
- return(dsi_error);
-}
-
-dsi_error dsisetTVGcolor(dsi_link link, mcde_ch_id chid, dsi_color_type color_type,dsi_frame_color color)
-{
- dsi_error dsi_error = DSI_OK;
-
- if(color_type == DSI_TVG_COLOR1)
- {
- gpar[chid]->dsi_lnk_registers[link]->tvg_color1 = ((gpar[chid]->dsi_lnk_registers[link]->tvg_color1 &~DSI_COL_RED_MASK) |((u32) color.col_red & DSI_COL_RED_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_color1 = ((gpar[chid]->dsi_lnk_registers[link]->tvg_color1 &~DSI_COL_GREEN_MASK) |(((u32) color.col_green << DSI_COL_GREEN_SHIFT)& DSI_COL_GREEN_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_color1 = ((gpar[chid]->dsi_lnk_registers[link]->tvg_color1 &~DSI_COL_BLUE_MASK) |(((u32) color.col_blue << DSI_COL_BLUE_SHIFT)& DSI_COL_BLUE_MASK) );
- }
- else if (color_type == DSI_TVG_COLOR2)
- {
- gpar[chid]->dsi_lnk_registers[link]->tvg_color2 = ((gpar[chid]->dsi_lnk_registers[link]->tvg_color2 &~DSI_COL_RED_MASK) |((u32) color.col_red & DSI_COL_RED_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_color2 = ((gpar[chid]->dsi_lnk_registers[link]->tvg_color2 &~DSI_COL_GREEN_MASK) |(((u32) color.col_green << DSI_COL_GREEN_SHIFT)& DSI_COL_GREEN_MASK) );
-
- gpar[chid]->dsi_lnk_registers[link]->tvg_color2 = ((gpar[chid]->dsi_lnk_registers[link]->tvg_color2 &~DSI_COL_BLUE_MASK) |(((u32) color.col_blue << DSI_COL_BLUE_SHIFT)& DSI_COL_BLUE_MASK) );
-
- }
- else
- dsi_error = DSI_INVALID_PARAMETER;
-
- return(dsi_error);
-}
-
-dsi_error dsisetARBctrl( dsi_link link, mcde_ch_id chid, dsi_arb_ctl arb_ctl)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl = ((gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl &~DSI_ARB_MODE_MASK) |(((u32) arb_ctl.arb_mode << DSI_ARB_MODE_SHIFT)& DSI_ARB_MODE_MASK) );
-
- if(arb_ctl.arb_mode == DSI_ARB_MODE_FIXED)
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl = ((gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl &~DSI_ARB_PRI_MASK) |(((u32) arb_ctl.arb_mode << DSI_ARB_PRI_SHIFT)& DSI_ARB_PRI_MASK) );
-
- return(dsi_error);
-
-}
-dsi_error dsisetpaddingval(dsi_link link, mcde_ch_id chid, u8 padding)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl = ((gpar[chid]->dsi_lnk_registers[link]->cmd_mode_ctl &~DSI_FIL_VAL_MASK) |(((u32) padding << DSI_FIL_VAL_SHIFT)& DSI_FIL_VAL_MASK) );
-
- return(dsi_error);
-
-}
-dsi_error dsisetDPHYtimeout(dsi_link link, mcde_ch_id chid, dsi_dphy_timeout timeout)
-{
- dsi_error dsi_error = DSI_OK;
-
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_timeout = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_timeout &~DSI_HSTX_TO_MASK) |(((u32) timeout.hs_tx_timeout << DSI_HSTX_TO_SHIFT ) & DSI_HSTX_TO_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_timeout = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_timeout &~DSI_LPRX_TO_MASK) |(((u32) timeout.lp_rx_timeout << DSI_LPRX_TO_SHIFT ) & DSI_LPRX_TO_MASK) );
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_timeout = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_timeout &~DSI_CLK_DIV_MASK) |((u32) timeout.clk_div & DSI_CLK_DIV_MASK) );
-
- return(dsi_error);
-}
-dsi_error dsisetlaneULPwaittime(dsi_link link, mcde_ch_id chid, dsi_lane lane, u16 timeout)
-{
- dsi_error dsi_error = DSI_OK;
-
- if ( (lane > DSI_DATA_LANE2) || (link > DSI_LINK2) )
- {
- return(DSI_INVALID_PARAMETER);
- }
-
- switch(lane)
- {
- case DSI_CLK_LANE:
- gpar[chid]->dsi_lnk_registers[link]->mctl_ulpout_time = ((gpar[chid]->dsi_lnk_registers[link]->mctl_ulpout_time &~DSI_CLK_ULPOUT_MASK) |((u32) timeout & DSI_DATA_ULPOUT_MASK) );
- break;
-
- case DSI_DATA_LANE1:
- case DSI_DATA_LANE2:
- gpar[chid]->dsi_lnk_registers[link]->mctl_ulpout_time = ((gpar[chid]->dsi_lnk_registers[link]->mctl_ulpout_time &~DSI_DATA_ULPOUT_MASK) |(((u32) timeout << DSI_DATA_ULPOUT_SHIFT ) & DSI_DATA_ULPOUT_MASK) );
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
- }
- return dsi_error;
-}
-dsi_error dsiset_hs_clock(dsi_link link, struct dsi_dphy_static_conf dphyStaticConf, mcde_ch_id chid)
-{
- dsi_error dsi_error = DSI_OK;
-
- if (link > DSI_LINK2)
- {
- return(DSI_INVALID_PARAMETER);
- }
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static & ~DSIMCTL_DPHY_STATIC_HS_INVERT_CLK) |((u32) dphyStaticConf.clocklanehsinvermode << DSIMCTL_DPHY_STATIC_HS_INVERT_CLK_SHIFT));
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static & ~DSIMCTL_DPHY_STATIC_SWAP_PINS_CLK) |((u32) dphyStaticConf.clocklaneswappinmode << DSIMCTL_DPHY_STATIC_SWAP_PINS_CLK_SHIFT));
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static & ~DSIMCTL_DPHY_STATIC_HS_INVERT_DAT1) |((u32) dphyStaticConf.datalane1hsinvermode << DSIMCTL_DPHY_STATIC_HS_INVERT_DAT1_SHIFT));
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static & ~DSIMCTL_DPHY_STATIC_SWAP_PINS_DAT1) |((u32) dphyStaticConf.datalane1swappinmode << DSIMCTL_DPHY_STATIC_SWAP_PINS_DAT1_SHIFT));
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static & ~DSIMCTL_DPHY_STATIC_HS_INVERT_DAT2) |((u32) dphyStaticConf.datalane2hsinvermode << DSIMCTL_DPHY_STATIC_HS_INVERT_DAT2_SHIFT));
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static & ~DSIMCTL_DPHY_STATIC_SWAP_PINS_DAT2) |((u32) dphyStaticConf.datalane2swappinmode << DSIMCTL_DPHY_STATIC_SWAP_PINS_DAT2_SHIFT));
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static = ((gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_static & ~DSIMCTL_DPHY_STATIC_UI_X4) |((u32) dphyStaticConf.ui_x4 << DSIMCTL_DPHY_STATIC_UI_X4_SHIFT));
-
- return(dsi_error);
-}
-u32 dsiclearallstatus(mcde_ch_id chid, dsi_link link)
-{
- dsi_error dsi_error = DSI_OK;
-
- if (link > DSI_LINK2)
- {
- return(DSI_INVALID_PARAMETER);
- }
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_sts_clr = DSI_SET_ALL_BIT;
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_sts_clr = DSI_SET_ALL_BIT;
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = DSI_SET_ALL_BIT;
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rd_sts_clr = DSI_SET_ALL_BIT;
- gpar[chid]->dsi_lnk_registers[link]->vid_mode_sts_clr = DSI_SET_ALL_BIT;
- gpar[chid]->dsi_lnk_registers[link]->tg_sts_clr = DSI_SET_ALL_BIT;
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_err_clr = DSI_SET_ALL_BIT;
- return(dsi_error);
-}
-u32 dsienableirqsrc(mcde_ch_id chid, dsi_link link, dsi_irq_type irq_type,u32 irq_src)
-{
- dsi_error dsi_error = DSI_OK;
-
- if (link > DSI_LINK2)
- {
- return(DSI_INVALID_PARAMETER);
- }
- switch(irq_type)
- {
- case DSI_IRQ_TYPE_MCTL_MAIN :
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_sts_ctl |= (u8)irq_src;
- break;
-
- case DSI_IRQ_TYPE_CMD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_sts_ctl |= (u8)irq_src;
- break;
-
- case DSI_IRQ_TYPE_DIRECT_CMD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_ctl |= (u16)irq_src;
- break;
-
- case DSI_IRQ_TYPE_DIRECT_CMD_RD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rd_sts_ctl |= (u16)irq_src;
- break;
-
- case DSI_IRQ_TYPE_VID_MODE :
- gpar[chid]->dsi_lnk_registers[link]->vid_mode_sts_ctl |= (u16)irq_src;
- break;
-
- case DSI_IRQ_TYPE_TG :
- gpar[chid]->dsi_lnk_registers[link]->tg_sts_ctl |= (u8)irq_src;
- break;
-
- case DSI_IRQ_TYPE_DPHY_ERROR :
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_err_ctl |= (u16)irq_src;
- break;
-
- case DSI_IRQ_TYPE_DPHY_CLK_TRIM_RD :
- gpar[chid]->dsi_lnk_registers[link]->dphy_clk_trim_rd_ctl |=(u8)irq_src;
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
- break;
-
- }
- return(dsi_error);
-}
-u32 dsidisableirqsrc(mcde_ch_id chid, dsi_link link, dsi_irq_type irq_type,u32 irq_src)
-{
- dsi_error dsi_error = DSI_OK;
-
- if (link > DSI_LINK2)
- {
- return(DSI_INVALID_PARAMETER);
- }
- switch(irq_type)
- {
- case DSI_IRQ_TYPE_MCTL_MAIN :
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_sts_ctl |= (u8)~irq_src;
- break;
-
- case DSI_IRQ_TYPE_CMD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_sts_ctl |= (u8)~irq_src;
- break;
-
- case DSI_IRQ_TYPE_DIRECT_CMD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_ctl |= (u16)~irq_src;
- break;
-
- case DSI_IRQ_TYPE_DIRECT_CMD_RD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rd_sts_ctl |= (u16)~irq_src;
- break;
-
- case DSI_IRQ_TYPE_VID_MODE :
- gpar[chid]->dsi_lnk_registers[link]->vid_mode_sts_ctl |= (u16)~irq_src;
- break;
-
- case DSI_IRQ_TYPE_TG :
- gpar[chid]->dsi_lnk_registers[link]->tg_sts_ctl |= (u8)~irq_src;
- break;
-
- case DSI_IRQ_TYPE_DPHY_ERROR :
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_err_ctl |= (u16)~irq_src;
- break;
-
- case DSI_IRQ_TYPE_DPHY_CLK_TRIM_RD :
- gpar[chid]->dsi_lnk_registers[link]->dphy_clk_trim_rd_ctl |=(u8)~irq_src;
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
- break;
-
- }
- return(dsi_error);
-
-}
-u32 dsiclearirqsrc(mcde_ch_id chid, dsi_link link, dsi_irq_type irq_type, u32 irq_src)
-{
- dsi_error dsi_error = DSI_OK;
-
- if (link > DSI_LINK2)
- {
- return(DSI_INVALID_PARAMETER);
- }
- switch(irq_type)
- {
- case DSI_IRQ_TYPE_MCTL_MAIN :
- gpar[chid]->dsi_lnk_registers[link]->mctl_main_sts_flag |= (u8)irq_src;
- break;
-
- case DSI_IRQ_TYPE_CMD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->cmd_mode_sts_flag |= (u8)irq_src;
- break;
-
- case DSI_IRQ_TYPE_DIRECT_CMD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_flag |= (u16)irq_src;
- break;
-
- case DSI_IRQ_TYPE_DIRECT_CMD_RD_MODE :
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rd_sts_flag |= (u16)irq_src;
- break;
-
- case DSI_IRQ_TYPE_VID_MODE :
- gpar[chid]->dsi_lnk_registers[link]->vid_mode_sts_flag |= (u16)irq_src;
- break;
-
- case DSI_IRQ_TYPE_TG :
- gpar[chid]->dsi_lnk_registers[link]->tg_sts_flag |= (u8)irq_src;
- break;
-
- case DSI_IRQ_TYPE_DPHY_ERROR :
- gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_err_flag |= (u16)irq_src;
- break;
-
- case DSI_IRQ_TYPE_DPHY_CLK_TRIM_RD :
- gpar[chid]->dsi_lnk_registers[link]->dphy_clk_trim_rd_flag |=(u8)irq_src;
- break;
-
- default:
- dsi_error = DSI_INVALID_PARAMETER;
- break;
-
- }
- return(dsi_error);
-}
-u32 dsigetirqsrc(mcde_ch_id chid, dsi_link link, dsi_irq_type irq_type)
-{
- u32 irq_src = DSI_NO_INTERRUPT;
-
- switch(irq_type)
- {
- case DSI_IRQ_TYPE_MCTL_MAIN :
- irq_src = (u32)gpar[chid]->dsi_lnk_registers[link]->mctl_main_sts_flag ;
- break;
-
- case DSI_IRQ_TYPE_CMD_MODE :
- irq_src = (u32)gpar[chid]->dsi_lnk_registers[link]->cmd_mode_sts_flag;
- break;
-
- case DSI_IRQ_TYPE_DIRECT_CMD_MODE :
- irq_src = (u32)gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_flag;
- break;
-
- case DSI_IRQ_TYPE_DIRECT_CMD_RD_MODE :
- irq_src = (u32)gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rd_sts_flag;
- break;
-
- case DSI_IRQ_TYPE_VID_MODE :
- irq_src = (u32)gpar[chid]->dsi_lnk_registers[link]->vid_mode_sts_flag;
- break;
-
- case DSI_IRQ_TYPE_TG :
- irq_src = (u32)gpar[chid]->dsi_lnk_registers[link]->tg_sts_flag;
- break;
-
- case DSI_IRQ_TYPE_DPHY_ERROR :
- irq_src = (u32)gpar[chid]->dsi_lnk_registers[link]->mctl_dphy_err_flag;
- break;
-
- case DSI_IRQ_TYPE_DPHY_CLK_TRIM_RD :
- irq_src = (u32)gpar[chid]->dsi_lnk_registers[link]->dphy_clk_trim_rd_flag;
- break;
-
- default:
- break;
-
- }
- return(irq_src);
-
-}
-
-u32 dsiconfdphy(mcde_pll_ref_clk pll_sel, mcde_ch_id chid, dsi_link link)
-{
- mcde_dsi_clk_config clk_config;
- dsi_pll_ctl pll_ctl;
- u8 link_sts;
- u32 time_out= 1000;
-
- clk_config.pllout_divsel2 = MCDE_PLL_OUT_1;
- clk_config.pllout_divsel1 = MCDE_PLL_OUT_1;
- clk_config.pllout_divsel0 = MCDE_PLL_OUT_1;
- clk_config.txescdiv_sel = MCDE_DSI_MCDECLK;
- clk_config.txescdiv = 0x8;
-
- pll_ctl.division_ratio = 0x0;
- pll_ctl.pll_master = 0x0;
- pll_ctl.pll_in_sel = 0x0;
- pll_ctl.pll_out_sel = 0x1;
-
- switch(pll_sel)
- {
- case MCDE_CLK27:
- clk_config.pll4in_sel = MCDE_CLK27;
- pll_ctl.multiplier = 0x53;
- break;
-
- case MCDE_TV1CLK:
- clk_config.pll4in_sel = MCDE_TV1CLK;
- pll_ctl.division_ratio = 0xD3;
- break;
-
- case MCDE_TV2CLK:
- clk_config.pll4in_sel = MCDE_TV2CLK;
- pll_ctl.division_ratio = 0xD3;
- break;
-
- case MCDE_HDMICLK:
- clk_config.pll4in_sel = MCDE_HDMICLK;
- pll_ctl.division_ratio = 0x9E;
- break;
-
- case MCDE_MXTALI:
- clk_config.pll4in_sel = MCDE_CLK27;
- pll_ctl.division_ratio = 0xBA;
- break;
-
- default:
- return(1);
- }
-
- mcdesetdsiclk(link, chid, clk_config);
-
- /*MCTL_MAIN_DATA_CTL*/
- dsisetlinkstate(link, DSI_ENABLE, chid);
-
- /*Main enable-start enable*/
-
- dsisetlanestate(link, chid, DSI_PLL_START, DSI_CLK_LANE);
- dsisetlanestate(link, chid, DSI_PLL_START, DSI_DATA_LANE1);
-
- dsisetPLLcontrol(link, chid, pll_ctl);
- dsisetPLLmode(link, chid, DSI_PLL_START);
-
-
- while(time_out > 0)
- time_out--;
-
- /*Wait for PLL Ready*/
- dsigetlinkstatus(link, chid, &link_sts);
-
- if(!(link_sts & 0x6))
- return(1);/*PLL programming failed*/
-
- return(0);
-
-}
-
-dsi_error dsigetdirectcommandstatus(dsi_link link,mcde_ch_id chid, u32 * p_status)
-{
- dsi_error dsi_error = DSI_OK;
-
- *p_status = (u32)(gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts & 0xFFFFFFFF);
-
- return(dsi_error);
-}
-u32 dsisenddirectcommand(dsi_interface_mode_type mode_type, u32 cmd_head,u32 cmd_size,u32 cmd1,u32 cmd2,u32 cmd3,u32 cmd4, dsi_link link, mcde_ch_id chid)
-{
- u32 err=0;
- switch(cmd_head)
- {
- /********************************************************************/
- case 0x39:
- /** Direct command main register */
- if (mode_type == DSI_CLK_LANE_HSM)
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = 0x00003908 | cmd_size << 16;
- else /** LPM */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = 0x00203908 | cmd_size << 16;
-
- break;
- /********************************************************************/
- case 0x15:
- /** Direct command main register */
- if (mode_type == DSI_CLK_LANE_HSM)
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = 0x00001500 | cmd_size << 16;
- else /** LPM */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = 0x00201500 | cmd_size << 16;
- break;
-
- /********************************************************************/
- case 0x05:
- /** Direct command main register */
- if (mode_type == DSI_CLK_LANE_HSM)
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = 0x00000500 | cmd_size << 16;
- else /** LPM */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = 0x00200500 | cmd_size << 16;
- break;
-
- case 0x09:
- /** Direct command main register */
- if (mode_type == DSI_CLK_LANE_HSM)
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = 0x00000908 | cmd_size << 16;
- else /** LPM */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_main_settings = 0x00200908 | cmd_size << 16;
- break;
-
- /********************************************************************/
- default:
- printk("Command ID not supported\n");
- err=1;
- return err;
-
- }
-
- /** Data registers */
- if (cmd1 != 0)
- {
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = cmd1;
- }
- if (cmd2 != 0)
- {
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1 = cmd2;
- }
- if (cmd3 != 0)
- {
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2 = cmd3;
-
- }
- if (cmd4 != 0)
- {
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= cmd4;
-
- }
-
- /** Send command */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_send = 0x00000001;
- return err;
-}
-EXPORT_SYMBOL(dsisenddirectcommand);
-/**
- * dsiLPdcslongwrite - This Api is used to send the data(Max 16 bytes) with dcs long packet command using dsi interface in low power mode.
- *
- */
-u32 dsiLPdcslongwrite(u32 VC_ID, u32 NoOfParam, u32 Param0, u32 Param1,u32 Param2, u32 Param3,
- u32 Param4,u32 Param5,u32 Param6,u32 Param7,u32 Param8, u32 Param9,u32 Param10,u32 Param11,
- u32 Param12,u32 Param13,u32 Param14, u32 Param15, mcde_ch_id chid, dsi_link link)
-{
- int uTimeout = 0xFFFFFFFF;
- u32 retVal =0;
- dsi_cmd_main_setting cmd_settings;
- u32 command_sts;
-
- cmd_settings.cmd_header = 0x39;
- cmd_settings.cmd_lp_enable = DSI_ENABLE;
- cmd_settings.cmd_size = NoOfParam;
- cmd_settings.cmd_id = VC_ID;
- cmd_settings.packet_type = 0x1; /** long packet */
- cmd_settings.cmd_nature = 0x0; /** command nature is write */
- cmd_settings.cmd_trigger_val = 0x0;
-
- dsisetdirectcmdsettings(link, chid, cmd_settings);
-
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT0) |
- (Param0 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT0));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT1) |
- (Param1 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT1));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT2) |
- (Param2 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT2));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT3) |
- (Param3 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT3));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT1_WRDAT4) |
- (Param4 << Shift_DSIDIRECT_CMD_WRDAT1_WRDAT4));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT1_WRDAT5) |
- (Param5 << Shift_DSIDIRECT_CMD_WRDAT1_WRDAT5));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT1_WRDAT6) |
- (Param6 << Shift_DSIDIRECT_CMD_WRDAT1_WRDAT6));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT1_WRDAT7) |
- (Param7<< Shift_DSIDIRECT_CMD_WRDAT1_WRDAT7));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT2_WRDAT8) |
- (Param8 << Shift_DSIDIRECT_CMD_WRDAT2_WRDAT8));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT2_WRDAT9) |
- (Param9 << Shift_DSIDIRECT_CMD_WRDAT2_WRDAT9));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT2_WRDAT10) |
- (Param10 << Shift_DSIDIRECT_CMD_WRDAT2_WRDAT10));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT2_WRDAT11) |
- (Param11 << Shift_DSIDIRECT_CMD_WRDAT2_WRDAT11));
-
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT3_WRDAT12) |
- (Param12 << Shift_DSIDIRECT_CMD_WRDAT3_WRDAT12));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT3_WRDAT13) |
- (Param13 << Shift_DSIDIRECT_CMD_WRDAT3_WRDAT13));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT3_WRDAT14) |
- (Param14 << Shift_DSIDIRECT_CMD_WRDAT3_WRDAT14));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT3_WRDAT15) |
- (Param15 << Shift_DSIDIRECT_CMD_WRDAT3_WRDAT15));
-
- /** Send command */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_send = 0x00000001;
-
-
- uTimeout = 0xFFF;
-
- while(uTimeout > 0)
- uTimeout--;
-
-
-
- /** Wait for PLL Ready */
- dsigetdirectcommandstatus(link, chid, &command_sts);
-
- if(!(command_sts & 0x2))
- {
- dbgprintk(MCDE_ERROR_INFO, "ERROR in sending DSI_LP_DCS_Long_Write\n");
- return(1);/** PLL programming failed */
- }
-
- return retVal;
-}
-EXPORT_SYMBOL(dsiLPdcslongwrite);
-/**
- * dsiLPdcsshortwrite1parm - This Api is used to send dcs short packet(1 byte max) command using dsi interface in low power mode.
- *
- */
-u32 dsiLPdcsshortwrite1parm(u32 VC_ID, u32 Param0,u32 Param1, mcde_ch_id chid, dsi_link link)
-{
- u32 retVal =0;
-
- u32 uTimeout = 0xFFFFFFFF;
-
- dsi_cmd_main_setting cmd_settings;
- u32 command_sts;
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
-
- cmd_settings.cmd_header = 0x15;
- cmd_settings.cmd_lp_enable = DSI_ENABLE;
- cmd_settings.cmd_size = 0x2;
- cmd_settings.cmd_id = VC_ID;
- cmd_settings.packet_type = 0x0; /** short packet */
- cmd_settings.cmd_nature = 0x0; /** command nature is write */
- cmd_settings.cmd_trigger_val = 0x0;
-
- dsisetdirectcmdsettings(link, chid, cmd_settings);
-
-
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT0) |
- (Param0 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT0));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT1) |
- (Param1 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT1));
-
-
- /* Send command */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_send = 0x00000001;
-
- while(uTimeout > 0)
- uTimeout--;
-
-
-
- /*Wait for PLL Ready*/
- dsigetdirectcommandstatus(link, chid, &command_sts);
-
- if(!(command_sts & 0x2))
- {
- dbgprintk(MCDE_ERROR_INFO, "ERROR in sending DSI_LP_DCS_Long_Write\n");
- return(1);/** PLL programming failed*/
- }
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
- return retVal;
-}
-EXPORT_SYMBOL(dsiLPdcsshortwrite1parm);
-/**
- * dsiLPdcsshortwritenoparam - This Api is used to send dcs short packet command using dsi interface with out any data in low power mode.
- *
- */
-u32 dsiLPdcsshortwritenoparam(u32 VC_ID, u32 Param0, mcde_ch_id chid, dsi_link link)
-{
-
- u32 retVal =0;
- u32 uTimeout = 0xFFFFFFFF;
- dsi_cmd_main_setting cmd_settings;
- u32 command_sts;
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
-
- cmd_settings.cmd_header = 0x05;
- cmd_settings.cmd_lp_enable = DSI_ENABLE;
- cmd_settings.cmd_size = 0x1;
- cmd_settings.cmd_id = VC_ID;
- cmd_settings.packet_type = 0x0; /** short packet */
- cmd_settings.cmd_nature = 0x0; /** command nature is write */
- cmd_settings.cmd_trigger_val = 0x0;
-
- dsisetdirectcmdsettings(link, chid, cmd_settings);
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT0) |
- (Param0 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT0));
-
- /** Send command */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_send = 0x00000001;
-
-
- while(uTimeout > 0)
- uTimeout--;
-
-
-
- /** Wait for PLL Ready */
- dsigetdirectcommandstatus(link, chid, &command_sts);
-
- if(!(command_sts & 0x2))
- {
- dbgprintk(MCDE_ERROR_INFO, "ERROR in sending DSI_LP_DCS_Long_Write\n");
- return(1);/** PLL programming failed */
- }
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
- return retVal;
-}
-EXPORT_SYMBOL(dsiLPdcsshortwritenoparam);
-/**
- * dsiHSdcslongwrite - This Api is used to send the data(Max 16 bytes) with dcs long packet command using dsi interface in high speed mode.
- *
- */
-u32 dsiHSdcslongwrite(u32 VC_ID, u32 NoOfParam, u32 Param0, u32 Param1,u32 Param2, u32 Param3,
- u32 Param4,u32 Param5,u32 Param6,u32 Param7,u32 Param8, u32 Param9,u32 Param10,u32 Param11,
- u32 Param12,u32 Param13,u32 Param14, u32 Param15, mcde_ch_id chid, dsi_link link)
-{
- int uTimeout = 0xFFFFFFFF;
- u32 retVal =0;
- dsi_cmd_main_setting cmd_settings;
- u32 command_sts;
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
- cmd_settings.cmd_header = 0x39;
- cmd_settings.cmd_lp_enable = DSI_DISABLE;
- cmd_settings.cmd_size = NoOfParam;
- cmd_settings.cmd_id = VC_ID;
- cmd_settings.packet_type = 0x1; /** long packet */
- cmd_settings.cmd_nature = 0x0; /** command nature is write */
- cmd_settings.cmd_trigger_val = 0x0;
-
- dsisetdirectcmdsettings(link, chid, cmd_settings);
-
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT0) |
- (Param0 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT0));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT1) |
- (Param1 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT1));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT2) |
- (Param2 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT2));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT3) |
- (Param3 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT3));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT1_WRDAT4) |
- (Param4 << Shift_DSIDIRECT_CMD_WRDAT1_WRDAT4));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT1_WRDAT5) |
- (Param5 << Shift_DSIDIRECT_CMD_WRDAT1_WRDAT5));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT1_WRDAT6) |
- (Param6 << Shift_DSIDIRECT_CMD_WRDAT1_WRDAT6));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat1= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT1_WRDAT7) |
- (Param7<< Shift_DSIDIRECT_CMD_WRDAT1_WRDAT7));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT2_WRDAT8) |
- (Param8 << Shift_DSIDIRECT_CMD_WRDAT2_WRDAT8));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT2_WRDAT9) |
- (Param9 << Shift_DSIDIRECT_CMD_WRDAT2_WRDAT9));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT2_WRDAT10) |
- (Param10 << Shift_DSIDIRECT_CMD_WRDAT2_WRDAT10));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat2= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT2_WRDAT11) |
- (Param11 << Shift_DSIDIRECT_CMD_WRDAT2_WRDAT11));
-
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT3_WRDAT12) |
- (Param12 << Shift_DSIDIRECT_CMD_WRDAT3_WRDAT12));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT3_WRDAT13) |
- (Param13 << Shift_DSIDIRECT_CMD_WRDAT3_WRDAT13));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT3_WRDAT14) |
- (Param14 << Shift_DSIDIRECT_CMD_WRDAT3_WRDAT14));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat3= ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT3_WRDAT15) |
- (Param15 << Shift_DSIDIRECT_CMD_WRDAT3_WRDAT15));
-
- /** Send command */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_send = 0x00000001;
-
-
- uTimeout = 0xFFF;
-
- while(uTimeout > 0)
- uTimeout--;
-
- /** Wait for PLL Ready */
- dsigetdirectcommandstatus(link, chid, &command_sts);
-
- if(!(command_sts & 0x2))
- {
- dbgprintk(MCDE_ERROR_INFO, "ERROR in sending DSI_HS_DCS_Long_Write\n");
- return(1);/** PLL programming failed */
- }
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
- return retVal;
-}
-EXPORT_SYMBOL(dsiHSdcslongwrite);
-/**
- * dsiHSdcsshortwrite1parm - This Api is used to send dcs short packet(1 byte max) command using dsi interface in high speed mode.
- *
- */
-u32 dsiHSdcsshortwrite1parm(u32 VC_ID, u32 Param0,u32 Param1, mcde_ch_id chid, dsi_link link)
-{
- u32 retVal =0;
-
- u32 uTimeout = 0xFFFFFFFF;
-
- dsi_cmd_main_setting cmd_settings;
- u32 command_sts;
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
-
- cmd_settings.cmd_header = 0x15;
- cmd_settings.cmd_lp_enable = DSI_DISABLE;
- cmd_settings.cmd_size = 0x2;
- cmd_settings.cmd_id = VC_ID;
- cmd_settings.packet_type = 0x0; /** short packet */
- cmd_settings.cmd_nature = 0x0; /** command nature is write */
- cmd_settings.cmd_trigger_val = 0x0;
-
- dsisetdirectcmdsettings(link, chid, cmd_settings);
-
-
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT0) |
- (Param0 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT0));
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT1) |
- (Param1 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT1));
-
-
- /* Send command */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_send = 0x00000001;
-
- while(uTimeout > 0)
- uTimeout--;
-
-
-
- /*Wait for PLL Ready*/
- dsigetdirectcommandstatus(link, chid, &command_sts);
-
- if(!(command_sts & 0x2))
- {
- dbgprintk(MCDE_ERROR_INFO, "ERROR in sending DSI_LP_DCS_Long_Write\n");
- return(1);/** PLL programming failed*/
- }
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
- return retVal;
-}
-EXPORT_SYMBOL(dsiHSdcsshortwrite1parm);
-/**
- * dsiHSdcsshortwritenoparam - This Api is used to send dcs short packet command using dsi interface with out any data in high speed mode.
- *
- */
-u32 dsiHSdcsshortwritenoparam(u32 VC_ID, u32 Param0, mcde_ch_id chid, dsi_link link)
-{
-
- u32 retVal =0;
- u32 uTimeout = 0xFFFFFFFF;
- dsi_cmd_main_setting cmd_settings;
- u32 command_sts;
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
-
- cmd_settings.cmd_header = 0x05;
- cmd_settings.cmd_lp_enable = DSI_DISABLE;
- cmd_settings.cmd_size = 0x1;
- cmd_settings.cmd_id = VC_ID;
- cmd_settings.packet_type = 0x0; /** short packet */
- cmd_settings.cmd_nature = 0x0; /** command nature is write */
- cmd_settings.cmd_trigger_val = 0x0;
-
- dsisetdirectcmdsettings(link, chid, cmd_settings);
-
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_wrdat0 & ~DSIDIRECT_CMD_WRDAT0_WRDAT0) |
- (Param0 << Shift_DSIDIRECT_CMD_WRDAT0_WRDAT0));
-
- /** Send command */
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_send = 0x00000001;
-
-
- while(uTimeout > 0)
- uTimeout--;
-
-
-
- /** Wait for PLL Ready */
- dsigetdirectcommandstatus(link, chid, &command_sts);
-
- if(!(command_sts & 0x2))
- {
- dbgprintk(MCDE_ERROR_INFO, "ERROR in sending DSI_LP_DCS_Long_Write\n");
- return(1);/** PLL programming failed */
- }
- gpar[chid]->dsi_lnk_registers[link]->direct_cmd_sts_clr = 0x2; /** write completed flag */
-
- return retVal;
-}
-EXPORT_SYMBOL(dsiHSdcsshortwritenoparam);
-/**
- * dsireaddata - This Api is used to read the data from dsi interface command fifo(max of 4 bytes).
- *
- */
-u32 dsireaddata(u8* byte0, u8* byte1, u8* byte2, u8* byte3, mcde_ch_id chid, dsi_link link)
-{
- u32 retVal =0;
-
- *byte0 = (gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rddat & DSIDIRECT_CMD_RDAT0);
- *byte1 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rddat & DSIDIRECT_CMD_RDAT1)) >> Shift_DSIDIRECT_CMD_RDAT1;
- *byte2 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rddat & DSIDIRECT_CMD_RDAT2)) >> Shift_DSIDIRECT_CMD_RDAT2;
- *byte3 = ((gpar[chid]->dsi_lnk_registers[link]->direct_cmd_rddat & DSIDIRECT_CMD_RDAT3)) >> Shift_DSIDIRECT_CMD_RDAT3;
-
- return retVal;
-}
-EXPORT_SYMBOL(dsireaddata);
-
-#ifdef _cplusplus
-}
-#endif /* _cplusplus */
-
-
-
-
-
-
-