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 */ }
static void gpio_init(void) { /* board led pins */ __gpio_as_output(0); __gpio_as_output(1); __gpio_as_output(2); __gpio_as_output(3); __gpio_as_emc(); __gpio_as_uart0(); __gpio_as_uart1(); __gpio_as_uart2(); __gpio_as_uart3(); __gpio_as_scc(); __gpio_as_lcd_master(); __gpio_as_usb(); __gpio_as_eth(); __gpio_as_pwm(); __gpio_as_ps2(); __gpio_as_uprt(); __gpio_as_output(9); /* Mem R/B */ __gpio_as_output(10); /* M/CPU Select */ __gpio_as_output(13); /* LCDM Backlight */ __gpio_as_output(14); /* C/D Pin of LCDM */ __gpio_as_output(88); /* Beeper */ __gpio_as_output(89); /* Cash Box */ // __gpio_as_output(90); /* Modem Enable */ // __gpio_as_output(91); /* INTA_N, external RTC irq */ __harb_usb0_uhc(); /* USB port 0 as host */ // __harb_usb0_udc(); /* USB port 0 as device */ }
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 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 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); }
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 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 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 _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 cm3511_power_up(void) { #if defined(CONFIG_JZ4750_AQUILA) __gpio_as_output(4*32+23); __gpio_set_pin(4*32+23); #elif defined(CONFIG_JZ4760_ALTAIR) __gpio_as_output(0*32+27); /* GPA27 */ __gpio_set_pin(0*32+27); #elif defined(CONFIG_JZ4760_LEPUS) __gpio_as_output(32 * 1 + 27); /* GPB27 */ __gpio_set_pin(32 * 1 + 27); #endif mdelay(5); }
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); }
void lcd_board_init(void) { u32 val; __gpio_as_output(DISPOFF); __gpio_set_pin(LCD_RESET); __gpio_as_output(LCD_RESET); __gpio_clear_pin(LCD_RESET); udelay(1000); __gpio_set_pin(LCD_RESET); __lcd_set_backlight_level(50); __tcu_start_counter(4); __tcu_enable_pwm_output(4); __gpio_set_pin(DISPOFF); }
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) { /* board led pins */ __gpio_as_uart0(); __gpio_as_uart1(); __gpio_as_emc(0); __gpio_as_dma(); __gpio_as_eth(); __gpio_as_pci(); __gpio_as_usbclk(); __gpio_as_output(67); __gpio_as_output(68); __gpio_as_output(69); __gpio_as_output(70); }
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"); }
static void __init board_gpio_setup(void) { /* * Most of the GPIO pins should have been initialized by the boot-loader */ /* * 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(GPIO_DISP_OFF_N); // __gpio_as_output(GPIO_LED_EN); }
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 sd_skymedi_on_off_power(void) { serial_puts("open card off on power\n"); __gpio_as_output(mmc_power_pin); mmc_power_off(); sd_mdelay(200); mmc_power_on(); sd_mdelay(800); }
/*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 ov3640_reset(void) { #if defined(CONFIG_JZ4750_AQUILA) __gpio_as_output(5*32+23); /* GPIO_IO_SWETCH_EN */ __gpio_clear_pin(5*32+23); __gpio_as_output(2*32+31); /* GPIO_BOOTSEL1 for camera rest*/ __gpio_set_pin(2*32+31); mdelay(5); __gpio_clear_pin(2*32+31); mdelay(5); __gpio_set_pin(2*32+31); #else dprintk("=======%s:%d\n", __FUNCTION__, __LINE__); __gpio_as_output(GPIO_CAMERA_RST); __gpio_clear_pin(GPIO_CAMERA_RST); mdelay(50); __gpio_set_pin(GPIO_CAMERA_RST); mdelay(50); #endif }
static void _display_pin_init(void) { int i; my__gpio_as_lcd_16bit(); __gpio_as_output(PIN_UNK_N); __gpio_set_pin(PIN_UNK_N); __gpio_as_output(PIN_CS_N); __gpio_as_output(PIN_RESET_N); DELAY; /* delay_ms(10); */ __gpio_clear_pin(PIN_CS_N); DELAY; /* delay_ms(10); */ __gpio_set_pin(PIN_RESET_N); DELAY; /* delay_ms(10); */ __gpio_clear_pin(PIN_RESET_N); DELAY; /* delay_ms(10); */ __gpio_set_pin(PIN_RESET_N); DELAY; /* delay_ms(10); */ }
void cm3511_reset(void) { #if defined(CONFIG_JZ4750_AQUILA) __gpio_as_output(5*32+23); /* GPIO_IO_SWETCH_EN */ __gpio_clear_pin(5*32+23); __gpio_as_output(2*32+31); /* GPIO_BOOTSEL1 for camera rest*/ __gpio_set_pin(2*32+31); mdelay(5); __gpio_clear_pin(2*32+31); mdelay(5); __gpio_set_pin(2*32+31); #else __gpio_as_output(GPIO_CAMERA_RST); mdelay(50); __gpio_clear_pin(GPIO_CAMERA_RST); mdelay(50); __gpio_set_pin(GPIO_CAMERA_RST); mdelay(50); #endif }
static void gpio_init(void) { /* board led pins */ __gpio_as_output(96); __gpio_as_output(97); __gpio_as_output(98); __gpio_as_output(99); __gpio_as_uart0(); __gpio_as_uart1(); __gpio_as_uart2(); __gpio_as_uart3(); __gpio_as_emc(); __gpio_as_ssi(); __gpio_as_scc(); __gpio_as_msc(); __gpio_as_lcd_master(); __gpio_as_usb(); __gpio_as_ac97(); __gpio_as_eth(); __gpio_as_ps2(); }
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 pwm_set_duty(unsigned int chn, unsigned int percent) { unsigned int full_cycles; static unsigned int old_percent=1; if (percent == 108) { OUTREG16(A_TCU_TESR, TCU_TIMER(chn)); SETREG32((A_TCU_TCSR(chn)), TCSR_PWM_EN); OUTREG32(A_TCU_TMSR, TCU_INTR_FLAG(chn)); return; } if (percent > 100) { printf("The percent of PWM should be within 100\n"); return; } if (percent == 0) { CLRREG32((A_TCU_TCSR(chn)), TCSR_PWM_EN); OUTREG32(A_TCU_TMSR, TCU_INTR_FLAG(chn)); OUTREG16(A_TCU_TECR, TCU_TIMER(chn)); if(old_percent!=0) { __gpio_as_output(4*32+20+chn); __gpio_clear_pin(4*32+20+chn); } old_percent=0; } else { if(old_percent==0) { OUTREG32(A_GPIO_PXFUNS(4), 1 << (20 + chn)); OUTREG32(A_GPIO_PXSELC(4), 1 << (20 + chn)); OUTREG32(A_GPIO_PXPES(4), 1 << (20 + chn)); } full_cycles = INREG16(A_TCU_TDFR(chn)); CLRREG32((A_TCU_TCSR(chn)), TCSR_PWM_EN); OUTREG16(A_TCU_TDHR(chn), full_cycles - (full_cycles * percent) / 110); OUTREG16(A_TCU_TCNT(chn), 0x0000); OUTREG16(A_TCU_TESR, TCU_TIMER(chn)); SETREG32((A_TCU_TCSR(chn)), TCSR_PWM_EN); old_percent=percent; } }
BOOL GPIO_IO_Init(void) { fdIO = gpio_open(); if (fdIO < 0) return FALSE; else { __gpio_as_output(AC97_CTL); /* gpio pin as output */ __gpio_as_output(RS485_SEND); /* gpio pin as output */ __gpio_as_output(IO_RED_LED); __gpio_as_output(IO_GREEN_LED); __gpio_as_output(TFT_BACK_LIGHT); //__gpio_as_input(TFT_BACK_LIGHT); __gpio_set_pin(AC97_CTL); /* output high level */ // __gpio_clear_pin(AC97_CTL); /* output low level */ __gpio_set_pin(RS485_SEND); /* output high level */ CalibrationTimeBaseValue(); return TRUE; } }
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 int auo_panel_idle(struct jz_fb_ot_info *ot) { D("Called."); #ifdef CONFIG_JZ4750_APUS __gpio_set_pin(GPIO_LCD_VCC_EN_N); #endif #ifdef CONFIG_JZ4750D_CETUS __gpio_clear_pin(GPIO_LCD_VCC_EN_N); #endif __gpio_as_output(GPIO_LCD_VCC_EN_N); return 0; }
void gpio_test(unsigned char ops, unsigned char pin) { __gpio_as_output(pin); if (ops) { // serial_puts("\nGPIO set "); // serial_put_hex(pin); __gpio_set_pin(pin); } else { // serial_puts("\nGPIO clear "); // serial_put_hex(pin); __gpio_clear_pin(pin); } // __gpio_as_input(pin); }
//---------------------------------------------------------------------- // board early init routine void board_early_init(void) { #if 0 #define CS2 (32*0+23) __gpio_as_output(CS2); while(1) { int i; __gpio_set_pin(CS2); i=480000; while(i--); __gpio_clear_pin(CS2); i=480000; while(i--); } #endif nand_gpio_init(); }