/***************************************************************************** function name : mali_regulator_enable description : powerup mali by calling regulator input vars : void output vars : NA return value : void calls : regulator_enable called : mali_platform_powerup history : 1.data : 04/03/2014 author : s00250033 modify : new *****************************************************************************/ void mali_regulator_enable(void) { int i, ret; if( IS_ERR_OR_NULL(mali_regulator) ) { MALI_DEBUG_PRINT(1, ("error on mali_regulator_enable : g3d_regulator is null\n")); return; } ret = regulator_enable(mali_regulator); if(ret < 0) { return; } for (i = 0; i < 50; i++) { ret = phy_reg_readl(SOC_AO_SCTRL_BASE_ADDR, SOC_AO_SCTRL_SC_PW_MTCMOS_STAT0_ADDR(0), 1, 1); if (1 == ret) { MALI_DEBUG_PRINT(3, ("MTCMOS open OK\n")); break; } udelay(1); } if (50 == i) { MALI_DEBUG_PRINT(2, ("****error: MTCMOS open failed\n")); return; } }
int video_harden_regdis_clkdis_isoen_rsten_check(video_harden_dev_id_enum dev_id) { unsigned int regTmp = 0xff; unsigned int regExpect = 0x0; int ret = 0; printk(KERN_INFO "dev_Id is %d. start video_harden_rstdis_isodis_clken_check.....\n", dev_id); ret = video_harden_device_id_check(dev_id); if (ret != 0) { return 0; } ret = down_interruptible(&video_harden_busy_lock); if (0 != ret) { printk(KERN_ERR "video_harden_busy_lock failed\n"); return 0; } if ((0 == video_harden_rst_iso_clk_vote.vcodec_bit) && (0 == video_harden_rst_iso_clk_vote.jpeg_bit) && (0 == video_harden_rst_iso_clk_vote.isp_bit)) { /*================== AO_SC PW MTCMOS STAT [0x838] ==================*/ regTmp = phy_reg_readl(SOC_AO_SCTRL_BASE_ADDR, SOC_AO_SCTRL_SC_PW_MTCMOS_STAT0_ADDR(CALC_REG_OFFSET), SOC_AO_SCTRL_SC_PW_MTCMOS_STAT0_pw_mtcmos_ack_stat0_2codecisp_START, SOC_AO_SCTRL_SC_PW_MTCMOS_STAT0_pw_mtcmos_ack_stat0_2codecisp_END); printk(KERN_INFO "PW MTCMOS STAT = 0x%x, addr=0x%x\n", regTmp, (SOC_AO_SCTRL_BASE_ADDR+SOC_AO_SCTRL_SC_PW_MTCMOS_STAT0_ADDR(CALC_REG_OFFSET))); regExpect = 0x0; if (regTmp != regExpect) { printk(KERN_ERR "ERR: PW MTCMOS STAT = 0x%x\n", regExpect); ret = -1; } regExpect = 0x0; regTmp = 0xffff; /*================== AO_SC PW CLK STAT [0x808] ==================*/ regTmp = phy_reg_readl(SOC_AO_SCTRL_BASE_ADDR, SOC_AO_SCTRL_SC_PW_CLK_STAT0_ADDR(CALC_REG_OFFSET), SOC_AO_SCTRL_SC_PW_CLK_STAT0_pw_clk_stat0_2codecisp_START, SOC_AO_SCTRL_SC_PW_CLK_STAT0_pw_clk_stat0_2codecisp_END); printk(KERN_INFO "PW CLK STAT: 2codecisp = 0x%x, addr=0x%x\n", regTmp, (SOC_AO_SCTRL_BASE_ADDR+SOC_AO_SCTRL_SC_PW_CLK_STAT0_ADDR(CALC_REG_OFFSET))); regExpect = 0x0; if (regTmp != regExpect) { printk(KERN_ERR "ERR:PW CLK STAT: 2codecisp = 0x%x\n", regExpect); ret = -1; } regExpect = 0x0; regTmp = 0xffff; /*================== AO_SC PW ISO STAT [0x828] ==================*/ regTmp = phy_reg_readl(SOC_AO_SCTRL_BASE_ADDR, SOC_AO_SCTRL_SC_PW_ISO_STAT0_ADDR(CALC_REG_OFFSET), SOC_AO_SCTRL_SC_PW_ISO_STAT0_pw_iso_stat0_2codecisp_START, SOC_AO_SCTRL_SC_PW_ISO_STAT0_pw_iso_stat0_2codecisp_END); printk(KERN_INFO "PW ISO STAT: 2codecisp = 0x%x, addr=0x%x\n", regTmp, (SOC_AO_SCTRL_BASE_ADDR+SOC_AO_SCTRL_SC_PW_ISO_STAT0_ADDR(CALC_REG_OFFSET))); regExpect = 0x1; if (regTmp != regExpect) { printk(KERN_ERR "ERR:PW ISO STAT: 2codecisp = 0x%x\n", regExpect); ret = -1; } regExpect = 0x0; regTmp = 0xffff; /*================== AO_SC PW RST STAT [0x818] ==================*/ regTmp = phy_reg_readl(SOC_AO_SCTRL_BASE_ADDR, SOC_AO_SCTRL_SC_PW_RST_STAT0_ADDR(CALC_REG_OFFSET), SOC_AO_SCTRL_SC_PW_RST_STAT0_pw_rst_stat0_2codecisp_START, SOC_AO_SCTRL_SC_PW_RST_STAT0_pw_rst_stat0_2codecisp_END); printk(KERN_INFO "PW RST STAT: 2codecisp = 0x%x, addr=0x%x\n", regTmp, (SOC_AO_SCTRL_BASE_ADDR+SOC_AO_SCTRL_SC_PW_RST_STAT0_ADDR(CALC_REG_OFFSET))); regExpect = 0x1; if (regTmp != regExpect) { printk(KERN_ERR "ERR:PW RST STAT: 2codecisp = 0x%x\n", regExpect); ret = -1; } regExpect = 0x0; regTmp = 0xffff; } else { printk(KERN_INFO "video_harden_regdis_clkdis_isoen_rsten_check is unnecessary!. \n"); } up(&video_harden_busy_lock); return ret; }