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

}
Beispiel #2
0
static void gpio_init(void)
{
	REG_GPIO_PXPES(0) = 0xffffffff;
	REG_GPIO_PXPES(1) = 0xffffffff;
	REG_GPIO_PXPES(2) = 0xffffffff;
	REG_GPIO_PXPES(3) = 0xffffffff;

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

	/*
	 * Initialize SDRAM pins
	 */
	__gpio_as_sdram_32bit();

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

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

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

	/*
	 * 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_CHARG_STAT_N);
	__gpio_as_input(GPIO_USB_DETE);

	__gpio_as_output(GPIO_LED_EN);
	__gpio_set_pin(GPIO_LED_EN);

	__gpio_as_input(GPIO_HP_DETECT);
	__gpio_disable_pull(GPIO_HP_DETECT);

	__gpio_as_output(GPIO_DISP_OFF_N);

	__gpio_as_output(GPIO_LED_EN);
	__gpio_set_pin(GPIO_LED_EN);
	__gpio_as_input(127);

	/* Make sure the external cs8900a won't touch the bus */
	__gpio_enable_pull(GPIO_ETH_CS);
}