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 }
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); }
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(); } }
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); }
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); }
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); }
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; }
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); }
//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 */ }
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; }
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); }
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)); }
//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); }
void GPIO_WIEGAND_LED(BYTE GPIOPIN, BOOL Light) { if (Light) __gpio_set_pin(GPIOPIN); else __gpio_clear_pin(GPIOPIN); }
void board_led(unsigned char ch) { if (ch) __gpio_clear_pin(96); /* led on */ else __gpio_set_pin(96); /* led off */ }
void GPIOSetLevel(BYTE IOPIN, int High) { if (High) __gpio_clear_pin(GPIOCvtTbl[IOPIN]); else __gpio_set_pin(GPIOCvtTbl[IOPIN]); }
//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"); }
//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 */ }
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); }
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; }
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(); }
/*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); }
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); }
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); }
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 */ } }