static int aml_bl_update_status(struct backlight_device *bd)
{
    struct aml_bl *amlbl = bl_get_data(bd);
    int brightness = bd->props.brightness;
#ifdef CONFIG_ARCH_MESON6  
	static int led_pwm_off = 0; 
#endif
    DPRINT("%s() brightness=%d\n", __FUNCTION__, brightness);
    DPRINT("%s() pdata->set_bl_level=%p\n", __FUNCTION__, amlbl->pdata->set_bl_level);

/*
    if (bd->props.power != FB_BLANK_UNBLANK)
        brightness = 0;
    if (bd->props.fb_blank != FB_BLANK_UNBLANK)
        brightness = 0;
*/

    if (brightness < 0)
        brightness = 0;
    else if (brightness > 255)
        brightness = 255;

#ifdef CONFIG_ARCH_MESON6           
    if (led_pwm_off && brightness > 0) {
    	switch_mod_gate_by_type(MOD_LED_PWM, 1);
    	led_pwm_off = 0;
    }
#endif /* CONFIG_ARCH_MESON6 */

#ifndef CONFIG_MESON_CS_DCDC_REGULATOR
    if ((brightness > 0) && (0 == IS_CLK_GATE_ON(VGHL_PWM))) {
        CLK_GATE_ON(VGHL_PWM);
        DPRINT("%s() CLK_GATE_ON(VGHL_PWM)\n", __FUNCTION__);
    }
#endif

    if (amlbl->pdata->set_bl_level)
        amlbl->pdata->set_bl_level(brightness);

#ifndef CONFIG_MESON_CS_DCDC_REGULATOR
    if ((brightness == 0) && (IS_CLK_GATE_ON(VGHL_PWM))) {
        CLK_GATE_OFF(VGHL_PWM);
        DPRINT("%s() CLK_GATE_OFF(VGHL_PWM)\n", __FUNCTION__);
    }
#endif

#ifdef CONFIG_ARCH_MESON6       
    if (brightness == 0) {
    	switch_mod_gate_by_type(MOD_LED_PWM, 0);
    	led_pwm_off = 1;
    }
#endif /* CONFIG_ARCH_MESON6 */

    return 0;
}
예제 #2
0
static int audiodsp_open(struct inode *node, struct file *file)
{
	DSP_PRNT("dsp_open\n");

#if MESON_CPU_TYPE >= MESON_CPU_TYPE_MESON8
	CLK_GATE_ON(AHB_BRIDGE);
#endif

#if MESON_CPU_TYPE >= MESON_CPU_TYPE_MESON6	
	switch_mod_gate_by_type(MOD_MEDIA_CPU, 1);
        /* Audio DSP firmware uses mailbox registers for communications 
	 * with host processor. And these mailbox registers unfortunately 
	 * falls into the assistant module, which is in vdec DOS clock domain.
         * So we have to make sure the clock domain is enabled/disabled when
         * audio firmware start/stop running.
         * Note the module_gating has ref count so a flag 0 does
         * not mean the vdec clock is gated off immediately.
         */
	switch_mod_gate_by_type(MOD_VDEC, 1);
#endif
	audiodsp_prevent_sleep();
	return 0;

}
예제 #3
0
int tvoutc_setmode(tvmode_t mode)
{
    const reg_t *s;
    const tvinfo_t * tvinfo;
#if MESON_CPU_TYPE >= MESON_CPU_TYPE_MESON6
    static int uboot_display_flag = 1;
#else
    static int uboot_display_flag = 0;
#endif
    if (mode >= TVMODE_MAX) {
        printk(KERN_ERR "Invalid video output modes.\n");
        return -ENODEV;
    }
    mutex_lock(&setmode_mutex);
#if MESON_CPU_TYPE >= MESON_CPU_TYPE_MESON6
//TODO
//    switch_mod_gate_by_name("venc", 1);
#endif
    tvinfo = tvinfo_mode(mode);
    if(!tvinfo) {
        printk(KERN_ERR "tvinfo %d not find\n", mode);
        mutex_unlock(&setmode_mutex);
        return 0;
    }
    printk("TV mode %s selected.\n", tvinfo->id);

#ifdef CONFIG_ARCH_MESON8B
	if( (mode!=TVMODE_480CVBS) && (mode!=TVMODE_576CVBS) )
	{
		CLK_GATE_OFF(CTS_VDAC);
		CLK_GATE_OFF(DAC_CLK);
	}
	if( (mode!=TVMODE_480I) && (mode!=TVMODE_480CVBS) &&
		(mode!=TVMODE_576I) && (mode!=TVMODE_576CVBS) )
	{
		CLK_GATE_OFF(CTS_ENCI);
		CLK_GATE_OFF(VCLK2_ENCI);
		CLK_GATE_OFF(VCLK2_VENCI1);
	}
#endif
    s = tvregs_setting_mode(mode);
    if(!s) {
        printk("display mode %d regs setting failed\n", mode);
        mutex_lock(&setmode_mutex);
        return 0;
    }
    //s = tvregsTab[mode];

    if(uboot_display_flag) {
        uboot_display_flag = 0;
        if(uboot_display_already(mode)) {
            printk("already display in uboot\n");
            mutex_unlock(&setmode_mutex);
            return 0;
        }
    }

#if (MESON_CPU_TYPE >= MESON_CPU_TYPE_MESON8)
	// for hdmi mode, disable HPLL as soon as possible
	if( (mode==TVMODE_480I) || (mode==TVMODE_480P) ||
		(mode==TVMODE_576I) || (mode==TVMODE_576P) ||
		(mode==TVMODE_720P) || (mode==TVMODE_720P_50HZ) ||
		(mode==TVMODE_1080I) || (mode==TVMODE_1080I_50HZ) ||
		(mode==TVMODE_1080P) || (mode==TVMODE_1080P_50HZ) ||
		(mode==TVMODE_1080P_24HZ) || (mode==TVMODE_4K2K_24HZ) ||
		(mode==TVMODE_4K2K_25HZ) || (mode==TVMODE_4K2K_30HZ) || (mode==TVMODE_4K2K_FAKE_5G) ||
		(mode==TVMODE_4K2K_SMPTE) || (mode==TVMODE_4K2K_60HZ) )
	{
#if MESON_CPU_TYPE == MESON_CPU_TYPE_MESONG9TV
    // NOTE: for G9TV, DO NOT TURN OFF HPLL
#else
		WRITE_CBUS_REG_BITS(HHI_VID_PLL_CNTL, 0x0, 30, 1);
#endif
	}

    cvbs_cntl_output(0);
#endif

    while (MREG_END_MARKER != s->reg)
        setreg(s++);
    printk("%s[%d]\n", __func__, __LINE__);

#ifdef CONFIG_CVBS_PERFORMANCE_COMPATIBLITY_SUPPORT
	cvbs_performance_enhancement(mode);
#endif

    if(mode >= TVMODE_VGA && mode <= TVMODE_FHDVGA){ //set VGA pinmux
        aml_write_reg32(P_PERIPHS_PIN_MUX_0, (aml_read_reg32(P_PERIPHS_PIN_MUX_0)|(3<<20)));
    }else{
	aml_write_reg32(P_PERIPHS_PIN_MUX_0, (aml_read_reg32(P_PERIPHS_PIN_MUX_0)&(~(3<<20))));
    }
printk("%s[%d] mode is %d\n", __func__, __LINE__, mode);
#if ((defined CONFIG_ARCH_MESON8) || (defined CONFIG_ARCH_MESON8B))
	// for hdmi mode, leave the hpll setting to be done by hdmi module.
	if( (mode==TVMODE_480CVBS) || (mode==TVMODE_576CVBS) )
		set_tvmode_misc(mode);
#else
	set_tvmode_misc(mode);
#endif

#ifdef CONFIG_ARCH_MESON1
	tvoutc_setclk(mode);
    printk("%s[%d]\n", __func__, __LINE__);
    enable_vsync_interrupt();
#endif
#ifdef CONFIG_AM_TV_OUTPUT2
	switch(mode)
	{
		case TVMODE_480I:
		case TVMODE_480I_RPT:
		case TVMODE_480CVBS:
		case TVMODE_576I:
		case TVMODE_576I_RPT:
		case TVMODE_576CVBS:
        aml_set_reg32_bits(P_VPU_VIU_VENC_MUX_CTRL, 1, 0, 2); //reg0x271a, select ENCI to VIU1
        aml_set_reg32_bits(P_VPU_VIU_VENC_MUX_CTRL, 1, 4, 4); //reg0x271a, Select encI clock to VDIN
        aml_set_reg32_bits(P_VPU_VIU_VENC_MUX_CTRL, 1, 8, 4); //reg0x271a,Enable VIU of ENC_I domain to VDIN;
			  break;
		case TVMODE_480P:
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
		case TVMODE_480P_59HZ:
#endif
		case TVMODE_480P_RPT:
		case TVMODE_576P:
		case TVMODE_576P_RPT:
		case TVMODE_720P:
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
		case TVMODE_720P_59HZ:
#endif
		case TVMODE_720P_50HZ:
		case TVMODE_1080I: //??
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
		case TVMODE_1080I_59HZ:
#endif
		case TVMODE_1080I_50HZ: //??
		case TVMODE_1080P:
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
		case TVMODE_1080P_59HZ:
#endif
		case TVMODE_1080P_50HZ:
		case TVMODE_1080P_24HZ:
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
		case TVMODE_1080P_23HZ:
#endif
        case TVMODE_4K2K_30HZ:
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
		case TVMODE_4K2K_29HZ:
#endif
        case TVMODE_4K2K_25HZ:
        case TVMODE_4K2K_24HZ:
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
		case TVMODE_4K2K_23HZ:
#endif
        case TVMODE_4K2K_SMPTE:
        case TVMODE_4K2K_FAKE_5G:
        case TVMODE_4K2K_60HZ:
		case TVMODE_VGA:
		case TVMODE_SVGA:
		case TVMODE_XGA:
		case TVMODE_SXGA:
		case TVMODE_WSXGA:
		case TVMODE_FHDVGA:
        default:
            aml_set_reg32_bits(P_VPU_VIU_VENC_MUX_CTRL, 2, 0, 2); //reg0x271a, select ENCP to VIU1
            aml_set_reg32_bits(P_VPU_VIU_VENC_MUX_CTRL, 2, 4, 4); //reg0x271a, Select encP clock to VDIN
            aml_set_reg32_bits(P_VPU_VIU_VENC_MUX_CTRL, 2, 8, 4); //reg0x271a,Enable VIU of ENC_P domain to VDIN;
        break;
	}
#endif

    aml_write_reg32(P_VPP_POSTBLEND_H_SIZE, tvinfo->xres);

#ifdef CONFIG_ARCH_MESON3
printk(" clk_util_clk_msr 6 = %d\n", clk_util_clk_msr(6));
printk(" clk_util_clk_msr 7 = %d\n", clk_util_clk_msr(7));
printk(" clk_util_clk_msr 8 = %d\n", clk_util_clk_msr(8));
printk(" clk_util_clk_msr 9 = %d\n", clk_util_clk_msr(9));
printk(" clk_util_clk_msr 10 = %d\n", clk_util_clk_msr(10));
printk(" clk_util_clk_msr 27 = %d\n", clk_util_clk_msr(27));
printk(" clk_util_clk_msr 29 = %d\n", clk_util_clk_msr(29));
#endif

#ifdef CONFIG_ARCH_MESON6
	if( (mode==TVMODE_480CVBS) || (mode==TVMODE_576CVBS) )
	{
		msleep(1000);

		if(get_power_level() == 0) {
		    aml_write_reg32(P_VENC_VDAC_SETTING, 0x5);
		} else {
		    aml_write_reg32(P_VENC_VDAC_SETTING, 0x7);
		}
	} else {
		if(get_power_level() == 0) {
		    aml_write_reg32(P_VENC_VDAC_SETTING, 0x0);
		} else {
		    aml_write_reg32(P_VENC_VDAC_SETTING, 0x7);
		}
	}
#endif

#if (MESON_CPU_TYPE >= MESON_CPU_TYPE_MESON8)
    if( (mode==TVMODE_480CVBS) || (mode==TVMODE_576CVBS) )
    {
        msleep(1000);

		CLK_GATE_ON(VCLK2_ENCI);
		CLK_GATE_ON(VCLK2_VENCI1);
        CLK_GATE_ON(CTS_ENCI);
        CLK_GATE_ON(CTS_VDAC);
		CLK_GATE_ON(DAC_CLK);

        cvbs_cntl_output(1);
    }
#endif
//while(1);
    mutex_unlock(&setmode_mutex);
    return 0;
}
예제 #4
0
void sd_resume(struct memory_card *card)
{
	printk("***Entered %s:%s\n", __FILE__,__func__);
	CLK_GATE_ON(SDIO);
}
예제 #5
0
void sii5293_start_vdin(sii5293_vdin *info, int width, int height, int frame_rate, int field_flag)
{
	vdin_parm_t para;

	printk("[%s]-%.3d, width = %d, height = %d, frame_rate = %d, field_flag = %d\n",
							__FUNCTION__, __LINE__, width,height,frame_rate,field_flag);

	//    printk("[%s]-%.3d, info = 0x%x\n",__FUNCTION__, __LINE__, info);
	if(info->vdin_started)
	{
		//printk("[%s]-%.3d, info->vdin_info = 0x%x\n",__FUNCTION__, __LINE__, &(info->vdin_info) );
		if( (info->vdin_info.cur_width != width) || (info->vdin_info.cur_height != height) ||
											(info->vdin_info.cur_frame_rate != frame_rate) )
		{
			stop_tvin_service(0);
			CLK_GATE_OFF(MISC_DVIN);
			info->vdin_started=0;
			printk("%s: stop vdin\n", __func__);
		}
	}

	CLK_GATE_ON(MISC_DVIN);

	if( (info->vdin_started==0) && (width>0) && (height>0) && (frame_rate>0) )
	{
		int start_pix=138, start_line_o=22, start_line_e=23, h_total=1728, v_total=625;

		info->vdin_info.cur_width = width;
		info->vdin_info.cur_height = height;
		info->vdin_info.cur_frame_rate = frame_rate;

		if(field_flag && height <= 576 )
		{
			// for rgb 576i signal from 9233, it's 720/864, not 1440/1728
			if( (width==720)&&(height==288) )
			{
				start_pix = 138;
				start_line_o = 22;
				start_line_e = 23;
				h_total = 1728;
				v_total = 625;
			}
			// for rgb 480i signal from 9233, it's 720/858, not 1440/1716
			else if( (width==720)&&(height==240) )
			{
				start_pix = 114;
				start_line_o = 18;
				start_line_e = 19;
				h_total = 1716;
				v_total = 525;
			}
			sii5293_config_dvin(1, //hs_pol_inv,          
						1, //vs_pol_inv,          
						0, //de_pol_inv,          
						0, //field_pol_inv,       
						0, //ext_field_sel,       
						3, //de_mode,             
						0, //data_comp_map,       
						0, //mode_422to444,       
						0, //dvin_clk_inv,        
						0, //vs_hs_tim_ctrl,      
						400, //hs_lead_vs_odd_min,  
						1200, //hs_lead_vs_odd_max,  
						start_pix,//sii_get_hs_backporch()*2,//0xdc, //active_start_pix_fe, 
						start_pix,//sii_get_hs_backporch()*2,//0xdc, //active_start_pix_fo, 
						start_line_e,//sii_get_vs_backporch(), //0x19, //active_start_line_fe,
						start_line_o,//sii_get_vs_backporch(),//0x19, //active_start_line_fo,
						h_total,//sii_get_h_total(), //0x672, //line_width,          
						v_total//sii_get_v_total()*2 //0x2ee //field_height
						);
		}
		else
		{
			sii5293_config_dvin(height>576?0:1, //hs_pol_inv,          
						height>576?0:1, //vs_pol_inv,          
						0, //de_pol_inv,          
						(field_flag && height>=540)?1:0, //field_pol_inv, set to 1 for 1080i
						0, //ext_field_sel,       
						3, //de_mode,             
						0, //data_comp_map,       
						0, //mode_422to444,       
						0, //dvin_clk_inv,        
						0, //vs_hs_tim_ctrl,      
						0, //hs_lead_vs_odd_min,  
						0, //hs_lead_vs_odd_max,  
						sii_get_hs_backporch(),//0xdc, //active_start_pix_fe, 
						sii_get_hs_backporch(),//0xdc, //active_start_pix_fo, 
						sii_get_vs_backporch(), //0x19, //active_start_line_fe,
						sii_get_vs_backporch(),//0x19, //active_start_line_fo,
						sii_get_h_total(), //0x672, //line_width,          
						sii_get_v_total() //0x2ee //field_height
						);       
		}        

		memset( &para, 0, sizeof(para));
		para.port  = TVIN_PORT_DVIN0;
		para.frame_rate = frame_rate;
		para.h_active = info->vdin_info.cur_width;
		para.v_active = info->vdin_info.cur_height;
		if(field_flag){
			if(info->vdin_info.cur_width == 1920 &&  
			  (info->vdin_info.cur_height == 1080 || info->vdin_info.cur_height == 540)){
				if( frame_rate == 60 )
					para.fmt = TVIN_SIG_FMT_HDMI_1920X1080I_60HZ;
				else if( frame_rate == 50 )
					para.fmt = TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_A;
				para.v_active = 1080;
			}
		/*
			else if( info->vdin_info.cur_width == 720 &&  (info->vdin_info.cur_height == 576 || info->vdin_info.cur_height == 288)){
				 para.fmt = TVIN_SIG_FMT_HDMI_720X576I_50HZ;
				 para.v_active = 576;
				 set_invert_top_bot(true);
			}
		*/
			else if(info->vdin_info.cur_width == 720 &&  
			  (info->vdin_info.cur_height == 576 || info->vdin_info.cur_height == 288)){
				para.fmt = TVIN_SIG_FMT_MAX;//TVIN_SIG_FMT_HDMI_1440X576I_50HZ;
				para.v_active = 288;
				set_invert_top_bot(true);
			}
		/*
			else if( info->vdin_info.cur_width == 720 &&  (info->vdin_info.cur_height == 480 || info->vdin_info.cur_height == 240)){
				 para.fmt = TVIN_SIG_FMT_HDMI_720X480I_60HZ;
				 para.v_active = 480;
				 set_invert_top_bot(true);
			}
		*/
			else if(info->vdin_info.cur_width == 720  &&  
			  (info->vdin_info.cur_height == 480 || info->vdin_info.cur_height == 240)){
				para.fmt = TVIN_SIG_FMT_MAX;//TVIN_SIG_FMT_HDMI_1440X480I_60HZ;
				para.v_active = 240;
				set_invert_top_bot(true);
			}
			else{
				para.fmt = TVIN_SIG_FMT_MAX+1;
				set_invert_top_bot(true);
			}
			para.scan_mode = TVIN_SCAN_MODE_INTERLACED;	
		}
		else{
			if(info->vdin_info.cur_width == 1920 &&  info->vdin_info.cur_height == 1080){
				if( info->vdin_info.cur_frame_rate == 60 )
					para.fmt = TVIN_SIG_FMT_HDMI_1920X1080P_60HZ;
				else if( info->vdin_info.cur_frame_rate == 30 )
					para.fmt = TVIN_SIG_FMT_MAX;//TVIN_SIG_FMT_HDMI_1920X1080P_30HZ;
			}
			else if(info->vdin_info.cur_width == 1280 &&  info->vdin_info.cur_height == 720){
				para.fmt = TVIN_SIG_FMT_HDMI_1280X720P_60HZ;
			}
			else if((info->vdin_info.cur_width == 1440 || info->vdin_info.cur_width == 720) &&  info->vdin_info.cur_height == 576){
				para.fmt = TVIN_SIG_FMT_HDMI_720X576P_50HZ;
			}
			else if((info->vdin_info.cur_width == 1440 || info->vdin_info.cur_width == 720) &&  info->vdin_info.cur_height == 480){
				para.fmt = TVIN_SIG_FMT_HDMI_720X480P_60HZ;
			}
			else{
				para.fmt = TVIN_SIG_FMT_MAX+1;
			}
			para.scan_mode = TVIN_SCAN_MODE_PROGRESSIVE;	
		}
		para.hsync_phase = 1;
		para.vsync_phase = 0;
		//para.hs_bp = 0;
		//para.vs_bp = 2;
		para.cfmt = TVIN_RGB444;
		para.dfmt = TVIN_YUV422;
		para.reserved = 0; //skip_num

		printk("[%s] begin start_tvin_service() !\n",__FUNCTION__);

#ifdef HDMIIN_FRAME_SKIP_MECHANISM
		if( (SKIP_STATUS_NORMAL==flag_skip_status) ||
			(SKIP_STATUS_STANDBY==flag_skip_status) ||
			(SKIP_STATUS_CABLE==flag_skip_status) )
			flag_skip_enable = 1;
#endif
		start_tvin_service(0,&para);
		info->vdin_started = 1;

		//printk("%s: %dx%d %d %d/s\n", __func__, width, height, frame_rate, field_flag);
	}

	return ;
}
예제 #6
0
static void amvdec_pg_enable(bool enable)
{
    ulong timeout;

    if (enable) {
        CLK_GATE_ON(MDEC_CLK_PIC_DC);
        CLK_GATE_ON(MDEC_CLK_DBLK);
        CLK_GATE_ON(MC_CLK);
        CLK_GATE_ON(IQIDCT_CLK);
        //CLK_GATE_ON(VLD_CLK);
        CLK_GATE_ON(AMRISC);
    } else {
        CLK_GATE_OFF(AMRISC);

        timeout = jiffies + HZ / 10;

        while (READ_MPEG_REG(MDEC_PIC_DC_STATUS) != 0) {
            if (time_after(jiffies, timeout)) {
                WRITE_MPEG_REG_BITS(MDEC_PIC_DC_CTRL, 1, 0, 1);
                WRITE_MPEG_REG_BITS(MDEC_PIC_DC_CTRL, 0, 0, 1);
                READ_MPEG_REG(MDEC_PIC_DC_STATUS);
                READ_MPEG_REG(MDEC_PIC_DC_STATUS);
                READ_MPEG_REG(MDEC_PIC_DC_STATUS);
                break;
            }
        }

        CLK_GATE_OFF(MDEC_CLK_PIC_DC);

        timeout = jiffies + HZ / 10;

        while (READ_MPEG_REG(DBLK_STATUS) & 1) {
            if (time_after(jiffies, timeout)) {
                WRITE_MPEG_REG(DBLK_CTRL, 3);
                WRITE_MPEG_REG(DBLK_CTRL, 0);
                READ_MPEG_REG(DBLK_STATUS);
                READ_MPEG_REG(DBLK_STATUS);
                READ_MPEG_REG(DBLK_STATUS);
                break;
            }
        }
        CLK_GATE_OFF(MDEC_CLK_DBLK);

        timeout = jiffies + HZ / 10;

        while (READ_MPEG_REG(MC_STATUS0) & 1) {
            if (time_after(jiffies, timeout)) {
                SET_MPEG_REG_MASK(MC_CTRL1, 0x9);
                CLEAR_MPEG_REG_MASK(MC_CTRL1, 0x9);
                READ_MPEG_REG(MC_STATUS0);
                READ_MPEG_REG(MC_STATUS0);
                READ_MPEG_REG(MC_STATUS0);
                break;
            }
        }
        CLK_GATE_OFF(MC_CLK);

        timeout = jiffies + HZ / 10;
        while (READ_MPEG_REG(DCAC_DMA_CTRL) & 0x8000) {
            if (time_after(jiffies, timeout)) {
                break;
            }
        }

        WRITE_MPEG_REG(RESET0_REGISTER, 4);
        READ_MPEG_REG(RESET0_REGISTER);
        READ_MPEG_REG(RESET0_REGISTER);
        READ_MPEG_REG(RESET0_REGISTER);
        CLK_GATE_OFF(IQIDCT_CLK);

        //CLK_GATE_OFF(VLD_CLK);
    }
}
예제 #7
0
파일: gate_init.c 프로젝트: khadas/u-boot
void ee_gate_on(void)
{

	printf("ee_gate_on ...\n");

	/*
	//if close , audio maybe have noise
	CLK_GATE_ON(AUD);
	CLK_GATE_ON(AUD2);
	CLK_GATE_ON(AUD_CLK_2);
	CLK_GATE_ON(AUD_CLK_3);
	*/
	CLK_GATE_ON(AUD_IN);
	CLK_GATE_ON(AIU_AUD_MIXER);
	CLK_GATE_ON(SANA);

	/*kernel will reopen */
	CLK_GATE_ON(CTS_ENCL);
	/* CLK_GATE_ON(CTS_ENCT); */
	CLK_GATE_ON(CTS_ENCI);
	/* CLK_GATE_ON(CTS_ENCP); */

	/*close cvbs clock*/
	CLK_GATE_ON(DAC_CLK);
	CLK_GATE_ON(CTS_VDAC);

	/* usb clock close */
	CLK_GATE_ON(USB0);
	CLK_GATE_ON(USB1);
	CLK_GATE_ON(USB_CLK);
	CLK_GATE_ON(MISC_USB0_TO_DDR);
	CLK_GATE_ON(MISC_USB1_TO_DDR);

	/* uarts close */
	CLK_GATE_ON(UART0);
	CLK_GATE_ON(UART1);
	CLK_GATE_ON(UART2);
	CLK_GATE_ON(UART3);

	CLK_GATE_ON(VCLK2_VENCP);
	CLK_GATE_ON(VCLK2_VENCT);
	CLK_GATE_ON(VCLK2_VENCT1);
	CLK_GATE_ON(VCLK2_OTHER);
	CLK_GATE_ON(VCLK2_VENCI);
	CLK_GATE_ON(VCLK2_VENCI1);
	CLK_GATE_ON(VCLK2_VENCL);
	CLK_GATE_ON(VCLK2_OTHER1);


	CLK_GATE_ON(VCLK2_ENCI);
	CLK_GATE_ON(VCLK2_ENCL);
	CLK_GATE_ON(VCLK2_ENCT);

	CLK_GATE_ON(VDEC_CLK_1);
	CLK_GATE_ON(VDEC_CLK_2);
	CLK_GATE_ON(VDEC2_CLK_1);
	CLK_GATE_ON(VDEC2_CLK_2);
	CLK_GATE_ON(HCODEC_CLK_1);
	CLK_GATE_ON(HCODEC_CLK_2);
	/* CLK_GATE_ON(HEVC_CLK_1 ); */
	/* CLK_GATE_ON(HEVC_CLK_2 ); */

	CLK_GATE_ON(MMC_A_PCLK);
	CLK_GATE_ON(MMC_B_PCLK);
	CLK_GATE_ON(MMC_C_PCLK);

	CLK_GATE_ON(LCD_AN_PHY2);
	CLK_GATE_ON(LCD_AN_PHY3);

	CLK_GATE_ON(ETHERNET);
	CLK_GATE_ON(ETH_CLK);

	CLK_GATE_ON(GE2D);
	CLK_GATE_ON(GEN_CLK);
	CLK_GATE_ON(PCM_MCLK);
	CLK_GATE_ON(PCM_SCLK);


	CLK_GATE_ON(HIU_PARSER_TOP);

	/*************************/
	CLK_GATE_ON(AHB_ARB0);
	CLK_GATE_ON(ASYNC_FIFO);
	CLK_GATE_ON(STREAM);
	CLK_GATE_ON(RANDOM_NUM_GEN);
	CLK_GATE_ON(RANDOM_NUM_GEN1);
	CLK_GATE_ON(SMART_CARD_MPEG_DOMAIN);
	CLK_GATE_ON(I2C);
	CLK_GATE_ON(SPI);
	CLK_GATE_ON(SPICC);
	CLK_GATE_ON(DOS);
	CLK_GATE_ON(SAR_ADC);
	CLK_GATE_ON(MISC_DVIN);
	CLK_GATE_ON(BT656);
	CLK_GATE_ON(BT656_2);
	CLK_GATE_ON(PDM);

	/* close AIU */
	CLK_GATE_ON(AIU_IEC958);
	CLK_GATE_ON(AIU_ICE958_AMCLK);

	CLK_GATE_ON(AIU_AMCLK_MEASURE);
	CLK_GATE_ON(AIU_AIFIFO2);
	CLK_GATE_ON(AIU_MIXER_REG);
	CLK_GATE_ON(AIU_ADC);
	CLK_GATE_ON(AIU_TOP_LEVEL);
	CLK_GATE_ON(AIU_AOCLK);
	CLK_GATE_ON(AIU_AI_TOP_GLUE);
	CLK_GATE_ON(AIU_I2S_OUT);

	CLK_GATE_ON(ENC480P);

	CLK_GATE_ON(DEMUX);

	CLK_GATE_ON(EFUSE);
	CLK_GATE_ON(BLK_MOV);
}