void board_powerdown_device(void){

	/*From hlguo's needed just for z800 board ...
	 *these pins as flows should be set to output and clear it
	 */
	__gpio_clear_pin(32*0+16);
	__gpio_clear_pin(32*0+17);
	__gpio_clear_pin(32*1+20);
	__gpio_clear_pin(32*1+23);
	__gpio_clear_pin(32*1+25);
	__gpio_clear_pin(32*3+27);
	__gpio_clear_pin(32*4+26);
	__gpio_clear_pin(32*5+11);
	__gpio_clear_pin(32*4+4);
	__gpio_clear_pin(32*4+11);

	__gpio_as_output(32*0+16);
	__gpio_as_output(32*0+16);
	__gpio_as_output(32*1+20);
	__gpio_as_output(32*1+23);
	__gpio_as_output(32*1+25);
	__gpio_as_output(32*3+27);
	__gpio_as_output(32*4+26);
	__gpio_as_output(32*5+11);
	__gpio_as_output(32*4+4);
	__gpio_as_output(32*4+11);

	mdelay(200);
}
void init_gpio(void)
{
#if defined(CONFIG_JZ4760_CRATER)
	//volatile int i=10000000;

	/* set lcd function pin to low to avoid powering up lcd partially. */
	__gpio_clear_lcd_24bit();
	__gpio_as_output(GPIO_LCD_DISP_N);
	__gpio_clear_pin(GPIO_LCD_DISP_N);

	//while(i--);
	//__gpio_as_output(GPIO_LCD_VCC_EN_N);
	//__gpio_set_pin(GPIO_LCD_VCC_EN_N);
#endif	

#if defined(CONFIG_JZ4760_Z800)
/*
 * In z800 board PA30 is used as charge enable, we need to enable 
 * it before start system as a default.
 */
__gpio_clear_pin(32*0+27);
__gpio_as_output(32*0+27);
#endif

/* Init nand pins */
#if (CFG_NAND_BW8 == 1)
        __gpio_as_nand_8bit(1);
#else
        __gpio_as_nand_16bit(1);
#endif

/*Init lcd pins*/
#if defined(CONFIG_JZ4760_ANDROID_LCD_TRULY_TFT_ER61581)
	__gpio_as_lcd_16bit();
#elif defined(CONFIG_JZ4760_ANDROID_LCD_YUE_TFT_YL10922NT)
	__gpio_as_lcd_16bit();
#elif defined(CONFIG_JZ4760_PT701_8) || defined(CONFIG_JZ4760_PT701) || defined(CONFIG_JZ4760_TABLET_P2) || defined(CONFIG_JZ4760_LEPUS) || defined(CONFIG_JZ4760_PX7_2R) || defined(CONFIG_JZ4760_TABLET_8II)
	__gpio_as_lcd_24bit();
#elif defined(CONFIG_JZ4760_ANDROID_LCD_PROBE)
	__gpio_as_lcd_16bit();
#endif

        /*
         * Initialize UART1 pins
         */
#if CFG_UART_BASE == UART0_BASE
        __gpio_as_uart0();
#elif CFG_UART_BASE == UART1_BASE
        __gpio_as_uart1();
#elif CFG_UART_BASE == UART2_BASE
        __gpio_as_uart2();
#else /* CFG_UART_BASE == UART1_BASE */
        __gpio_as_uart3();
#endif

#if defined(CONFIG_JZ4760_PT701_8)
	__gpio_clear_pin(GPIO_SPK_EN); // close speaker	
#endif

}
Example #3
0
void	Write373_2(U8 val, U8 mask)
{
	static  U8 old_data = 0;
        U8 data;
        U8 tmp = 0;

        data = old_data;
        data &= ~mask;
        tmp = val & mask;
        data |= tmp;
        old_data = data;
	
	__gpio_as_output(LE_373_2);
 
        __gpio_clear_pin(LE_373_2);
        __gpio_clear_pin(LE_373_2);

        __gpio_clear_port(2) = 0xff;
        __gpio_set_port(2) = old_data;

        __gpio_set_pin(LE_373_2);
        __gpio_set_pin(LE_373_2);
        __gpio_set_pin(LE_373_2);
        __gpio_clear_pin(LE_373_2);
}
Example #4
0
static void gpio_init(void)
{
	__gpio_as_output(96);	/* board led */
	__gpio_as_output(104);	/* cim */
	__gpio_as_output(105);	/* lcd module backlight */
	__gpio_as_output(106);	/* ac97 */
	__gpio_as_output(107);	/* uart */

	__gpio_clear_pin(104);	/* enable cim power */
	__gpio_clear_pin(105);	/* turn on lcd module backlight */
	__gpio_set_pin(106);	/* ac97 enable */
	__gpio_set_pin(107);	/* uart enable */

	__gpio_as_uart0();
	__gpio_as_uart1();
	__gpio_as_uart2();
	__gpio_as_uart3();
	__gpio_as_emc();
	__gpio_as_lcd_master();
	__gpio_as_usb();
	__gpio_as_ac97();
	__gpio_as_cim();
	__gpio_as_eth();
	__harb_usb0_uhc(); /* USB port 0 as host port */
}
int board_private_init(void)
{
	unsigned int signature = 0;

	/*add board privater gpio here ,it while be called by boot_main to nitialization*/
	/*init GPIO_KEYPAD_5x5*/
	__gpio_clear_pin(GPIO_COL0);
	__gpio_as_output(GPIO_COL0);

	__gpio_set_pin(GPIO_ROW0);
	__gpio_as_output(GPIO_ROW0);
 
	__gpio_clear_pin(GPIO_COL2);
	__gpio_as_output(GPIO_COL2);
	
	__gpio_clear_pin(GPIO_COL3);
	__gpio_as_output(GPIO_COL3);
	
	__gpio_clear_pin(GPIO_COL4);
	__gpio_as_output(GPIO_COL4);
	
    /*Add for the hibernate function and the other function*/
    /*Do first battery set up detect and then hibernate or power on*/
    if ((REG_RTC_HWRSR & 0x10)){
        serial_puts_info("Ready to into hibernate mode ... \n");
        jz_pm_do_hibernate();
    	}
	/*Check the recovery signature,if exist,skip the charge_detect func.*/

	signature = cpm_get_scrpad();
	if ((signature == RECOVERY_SIGNATURE) || (signature == RECOVERY_SIGNATURE_SEC)) {
		if (signature == RECOVERY_SIGNATURE_SEC)
			cpm_set_scrpad(0);
		goto skip_chgdet;
	}
	/*Usb Cable detection ,If connected ,then do charge else skip it*/

	if(charge_detect()){
		charge_logo_display();
		}
    /*
     * enable vibrator to tell user power on.
     */
    __gpio_set_pin(32*5+10);
    __gpio_as_output(32*5+10);
    mdelay(100);
	__gpio_clear_pin(32*5+10);
	
skip_chgdet:	
	/*Before Enter the system,check the battery status,
		If low battery,then Enter the hibernate mode */
		while(low_battery_detect() && !charge_detect()){
			low_battery_warning();
			jz_pm_do_hibernate();
		}

}
Example #6
0
static void gpio_init(void)
{
	/*
	 * Initialize NAND Flash Pins
	 */
	__gpio_as_nand();

	/*
	 * Initialize SDRAM pins
	 */
	__gpio_as_sdram_16bit_4720();
	/*
	 * Initialize UART0 pins
	 */
	__gpio_as_uart0();

	/*
	 * Initialize MSC pins
	 */
	__gpio_as_msc();

	/*
	 * Initialize LCD pins
	 */
	__gpio_as_lcd_18bit();

	/*
	 * Initialize SSI pins
	 */
//	__gpio_as_ssi();

	/*
	 * Initialize I2C pins
	 */
//	__gpio_as_i2c();

	/*
	 * Initialize Other pins
	 */
	__gpio_as_output(GPIO_SD_VCC_EN_N);
	__gpio_clear_pin(GPIO_SD_VCC_EN_N);

	__gpio_as_input(GPIO_SD_CD_N);
	__gpio_disable_pull(GPIO_SD_CD_N);

//	__gpio_as_input(GPIO_SD_WP);
//	__gpio_disable_pull(GPIO_SD_WP);

	__gpio_as_input(GPIO_DC_DETE_N);
//	__gpio_as_input(GPIO_CHARG_STAT_N);
	__gpio_as_input(GPIO_USB_DETE);
	__gpio_as_output(119);
	__gpio_clear_pin(119);
	__gpio_as_output(GPIO_DISP_OFF_N);
}
Example #7
0
static void gpio_init(void)
{
	unsigned int i;

	/* Initialize NAND Flash Pins */
	__gpio_as_nand();

	/* Initialize SDRAM pins */
	__gpio_as_sdram_16bit_4720();

	/* Initialize LCD pins */
	__gpio_as_lcd_18bit();

	/* Initialize MSC pins */
	__gpio_as_msc();

	/* Initialize Other pins */
	for (i = 0; i < 7; i++) {
		__gpio_as_input(GPIO_KEYIN_BASE + i);
		__gpio_enable_pull(GPIO_KEYIN_BASE + i);
	}

	for (i = 0; i < 8; i++) {
		__gpio_as_output(GPIO_KEYOUT_BASE + i);
		__gpio_clear_pin(GPIO_KEYOUT_BASE + i);
	}

	__gpio_as_input(GPIO_KEYIN_8);
	__gpio_enable_pull(GPIO_KEYIN_8);

	/* enable the TP4, TP5 as UART0 */
	__gpio_jtag_to_uart0();

	__gpio_as_output(GPIO_AUDIO_POP);
	__gpio_set_pin(GPIO_AUDIO_POP);

	__gpio_as_output(GPIO_LCD_CS);
	__gpio_clear_pin(GPIO_LCD_CS);

	__gpio_as_output(GPIO_AMP_EN);
	__gpio_clear_pin(GPIO_AMP_EN);

	__gpio_as_output(GPIO_SDPW_EN);
	__gpio_disable_pull(GPIO_SDPW_EN);
	__gpio_clear_pin(GPIO_SDPW_EN);

	__gpio_as_input(GPIO_SD_DETECT);
	__gpio_disable_pull(GPIO_SD_DETECT);

	__gpio_as_input(GPIO_USB_DETECT);
	__gpio_enable_pull(GPIO_USB_DETECT);
}
Example #8
0
static void mmc_power_off()
{
	int i;
	for(i=0;i<6;i++){
		__gpio_as_output(18+i);
		__gpio_clear_pin(18+i);
	}
	//set power pin level
	if(power_off_level > 0)		
		__gpio_set_pin(mmc_power_pin);  	
	else		
		__gpio_clear_pin(mmc_power_pin);
}
Example #9
0
void cm3511_power_down(void)
{
#if defined(CONFIG_JZ4750_AQUILA)
	__gpio_as_output(4*32+23);
	__gpio_clear_pin(4*32+23);
#elif defined(CONFIG_JZ4760_ALTAIR)
	__gpio_as_output(0*32+27);
	__gpio_clear_pin(0*32+27);
#elif defined(CONFIG_JZ4760_LEPUS)
	__gpio_as_output(32 * 1 + 27); /* GPB27 */
	__gpio_clear_pin(32 * 1 + 27);
#endif
	mdelay(5);
}
static void _display_pin_init(void)
{
    my__gpio_as_lcd_16bit();
    __gpio_as_output(PIN_CS_N);
    __gpio_as_output(PIN_RESET_N);
    __gpio_clear_pin(PIN_CS_N);

    __gpio_set_pin(PIN_RESET_N);
    DELAY;
    __gpio_clear_pin(PIN_RESET_N);
    DELAY;
    __gpio_set_pin(PIN_RESET_N);
    DELAY;
}
Example #11
0
void ov3640_power_up(void)
{
	dprintk("=======%s:%d\n", __FUNCTION__, __LINE__);
#if defined(CONFIG_JZ4750_AQUILA)
	__gpio_as_output(4*32+23);
	__gpio_clear_pin(4*32+23);
#elif defined(CONFIG_JZ4760_ALTAIR)
	__gpio_as_output(0*32+27);
	__gpio_clear_pin(0*32+27);
#elif defined(CONFIG_JZ4760_LEPUS)
	__gpio_as_output(32 * 1 + 27); /* GPB27 */
	__gpio_clear_pin(32 * 1 + 27);
#endif
	mdelay(5);
}
Example #12
0
//control SENSOR ON or OFF 
void GPIO_HY7131_Power(BOOL Switch)
{
	if (Switch)
		__gpio_clear_pin(USB_POWER_PIN); /* output low level */
	else
		__gpio_set_pin(USB_POWER_PIN); /* output high level */
}
Example #13
0
U32  Scan164(void)
{
    U32 val = 0;
    int i = 0;

	if(GetEscPin() == 1)
	{
		return 5;
	}

	__gpio_clear_pin(LCD_CS);	
	Write164Byte(0xff);
	if(Get164Input() == 0)
	{
		return 4;
	}

	Write164Bit(0);

	for(i=0; i<3; i++)
	{
		if(Get164Input() == 0)
		{
			return i + 1;
		}
		Write164Bit(1);
	}

    return 0;
}
Example #14
0
void llock_gpio_init(void)
{
	L3000PortInit();
	OLED_PIN_INIT();
	__gpio_as_input(PIN_KEY_DEL);
	__gpio_as_output(LE_373_1);
	__gpio_clear_pin(LE_373_1);
	//__gpio_as_output(LE_373_2);
	//__gpio_clear_pin(LE_373_2);
	//__gpio_as_output(LE_244);
	//__gpio_set_pin(LE_244);

	__gpio_set_pin(OLED_PIN_DATA0);
	__gpio_set_pin(OLED_PIN_DATA0+1);
	__gpio_set_pin(OLED_PIN_DATA0+2);
	__gpio_set_pin(OLED_PIN_DATA0+3);
	__gpio_set_pin(OLED_PIN_DATA0+4);
	__gpio_set_pin(OLED_PIN_DATA0+5);
	__gpio_set_pin(OLED_PIN_DATA0+6);
	__gpio_set_pin(OLED_PIN_DATA0+7);
	
	__gpio_as_output(MTRPWR_EN);
	__gpio_set_pin(MTRPWR_EN);
	__gpio_as_input(GP_KEYSCAN);

	Write373(1, LEDR);
	Write373(1, LEDG);
	Write373(1, BEEP);
}
Example #15
0
void GPIOSetLevel(BYTE IOPIN, int High)
{
	if (High)
		__gpio_clear_pin(IO_DOOR_SENSOR-(IOPIN&0x0f));
	else
		__gpio_set_pin(IO_DOOR_SENSOR-(IOPIN&0x0f));
}
Example #16
0
//H/W exist some problems, so don't use it, we will fixed it on the next version
void GPIO_AC97_Mute(BOOL Switch)
{
	if (Switch)
		__gpio_clear_pin(AC97_CTL);
	else
		__gpio_set_pin(AC97_CTL);
}
Example #17
0
void GPIO_WIEGAND_LED(BYTE GPIOPIN, BOOL Light)
{
	if (Light)
		__gpio_set_pin(GPIOPIN);
	else
		__gpio_clear_pin(GPIOPIN);
}
Example #18
0
void board_led(unsigned char ch)
{
	if (ch)
		__gpio_clear_pin(96); /* led on */
	else
		__gpio_set_pin(96);   /* led off */
}
Example #19
0
void GPIOSetLevel(BYTE IOPIN, int High)
{
        if (High)
                __gpio_clear_pin(GPIOCvtTbl[IOPIN]);
        else
                __gpio_set_pin(GPIOCvtTbl[IOPIN]);
}
Example #20
0
//control the USB0 power/LCD backgound light 
void GPIO_LCD_USB0_Power(BOOL Switch)
{
	if (Switch)
		__gpio_clear_pin(LCM_BACK_LIGHT); /* output low level */
	else
		__gpio_set_pin(LCM_BACK_LIGHT); /* output high level */
}
void kfm701a21_1a_panel_display_pin_init(void)
{
	__gpio_as_output(LCD_RESET_PIN);
	__gpio_as_output(LCD_CS_PIN);

	__gpio_clear_pin(LCD_CS_PIN);
	mdelay(20);

	__gpio_set_pin(LCD_RESET_PIN);
	mdelay(10);
	__gpio_clear_pin(LCD_RESET_PIN);
	mdelay(10);
	__gpio_set_pin(LCD_RESET_PIN);
	mdelay(80);

	serial_puts_info("kfm701a21_1a panel display pin init\n");
}
Example #22
0
//void GPIO_TFT_BACK_LIGHT(BOOL Switch)
void GPIO_TFT_BACK_LIGHT(BOOL Switch,int mode)
{

        if (Switch)
                __gpio_clear_pin(TFT_BACK_LIGHT); /* output low level */
        else
                __gpio_set_pin(TFT_BACK_LIGHT); /* output high level */
}
Example #23
0
void GPIO_RS485_Status(U32 SendMode)
{
	if (SendMode)
		__gpio_set_pin(RS485_SEND);      /* output high level */
	else
		__gpio_clear_pin(RS485_SEND);      /* output low level */
	DelayUS(1000);
}
Example #24
0
static int auo_panel_off(struct jz_fb_ot_info *ot)
{
	D("Called.");

	__gpio_clear_pin(GPIO_LCD_PWM);
	__gpio_as_output(GPIO_LCD_PWM);	

	return 0;
}
Example #25
0
static void mmc_power_on()
{
	if(power_off_level > 0)		
		__gpio_clear_pin(mmc_power_pin);	
	else		
		__gpio_set_pin(mmc_power_pin);

	mmc_init_gpio();
} 
Example #26
0
/*test power pin setting error or not */
static void sd_skymedi_off_power(void)
{
	int i;
	serial_puts("open card off  power test\n");
	__gpio_as_output(mmc_power_pin);
	//set power pin level
	if(power_off_level > 0)		
		__gpio_set_pin(mmc_power_pin);  	
	else		
		__gpio_clear_pin(mmc_power_pin);

	//去掉GPIO漏电对电影控制引脚检查的影响
	for(i=0;i<6;i++){
		__gpio_as_output(18+i);
		__gpio_clear_pin(18+i);
	}
	sd_mdelay(20);
}
Example #27
0
void Write373(U8 val, U8 mask)
{
	static	U8 old_data = 0;
	U8 tmp = 0;

	if(val) old_data |= mask;
	else old_data &= ~mask;

	__gpio_clear_pin(LE_373_1);
	__gpio_clear_pin(LE_373_1);
	
	__gpio_clear_port(2) = 0xff << 8;
	__gpio_set_port(2) = old_data << 8;
	
	__gpio_set_pin(LE_373_1);
	__gpio_set_pin(LE_373_1);
	__gpio_set_pin(LE_373_1);
	__gpio_clear_pin(LE_373_1);
}
static void inline set_lcd_power_on(void)
{
	/*Enable lcd power by act8600 or gpio*/
	__gpio_as_output(GPIO_LCD_POWERON);
	__gpio_set_pin(GPIO_LCD_POWERON);

	__gpio_as_output(GPIO_LCD_DISP_N);
	__gpio_clear_pin(GPIO_LCD_DISP_N);
	mdelay(50);
	__gpio_set_pin(GPIO_LCD_DISP_N);
}
Example #29
0
static void dancing(void)
{
	static unsigned int count = 0;

	count ++;
	count &= 1;
	if (count)
		__gpio_set_pin(GPIO_LED_EN);
	else
		__gpio_clear_pin(GPIO_LED_EN);
}
Example #30
0
void GPIO__USB_Host(BOOL Switch)
{
	if (Switch)
	{
		 __gpio_set_pin(USB_HOST_CTL); /* output high level */
	}
	else
	{
		__gpio_clear_pin(USB_HOST_CTL); /* output low level */
	}
}