static void gpio_init(void) { /* * Initialize NAND Flash Pins */ __gpio_as_nand(); /* * Initialize SDRAM pins */ __gpio_as_sdram_16bit_4725(); /* * Initialize UART0 pins */ __gpio_as_uart0(); /* * Initialize LCD pins */ __gpio_as_lcd_18bit(); /* * Initialize MSC pins */ __gpio_as_msc(); /* * Initialize SSI pins */ __gpio_as_ssi(); /* * Initialize I2C pins */ __gpio_as_i2c(); /* * Initialize MSC pins */ __gpio_as_msc(); /* * Initialize Other pins */ __gpio_as_input(GPIO_SD_DETECT); __gpio_disable_pull(GPIO_SD_DETECT); }
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); }
/* init mmc/sd card we assume that the card is in the slot */ static int mmc_init(void) { int retries; u8 *resp; __gpio_as_msc(); __msc_reset(); MMC_IRQ_MASK(); REG_CPM_MSCCDR = __cpm_get_pllout2()%24000000 ? __cpm_get_pllout2()/24000000 : __cpm_get_pllout2()/24000000 - 1; REG_CPM_CPCCR |= CPM_CPCCR_CE; REG_MSC_CLKRT = 7; //250k REG_MSC_RDTO = 0xffffffff; resp = mmc_cmd(12, 0, 0x41, MSC_CMDAT_RESPONSE_R1); /* reset */ resp = mmc_cmd(0, 0, 0x80, 0); resp = mmc_cmd(8, 0x1aa, 0x1, MSC_CMDAT_RESPONSE_R1); resp = mmc_cmd(55, 0, 0x1, MSC_CMDAT_RESPONSE_R1); if(!(resp[0] & 0x20) && (resp[5] != 0x37)) { resp = mmc_cmd(1, 0x40ff8000, 0x3, MSC_CMDAT_RESPONSE_R3); retries = 500; while (retries-- && resp && !(resp[4] & 0x80)) { resp = mmc_cmd(1, 0x40300000, 0x3, MSC_CMDAT_RESPONSE_R3); udelay(1000); udelay(1000); } if ((resp[4] & 0x80 ) == 0x80) serial_puts("MMC init ok\n"); else serial_puts("MMC init fail\n"); if((resp[4] & 0x60) == 0x40) highcap = 1; else highcap = 0; /* try to get card id */ resp = mmc_cmd(2, 0, 0x2, MSC_CMDAT_RESPONSE_R2); resp = mmc_cmd(3, 0x10, 0x1, MSC_CMDAT_RESPONSE_R1); REG_MSC_CLKRT = 2; /* 16/1 MHz */ resp = mmc_cmd(7, 0x10, 0x1, MSC_CMDAT_RESPONSE_R1); resp = mmc_cmd(6, 0x3b70101, 0x441, MSC_CMDAT_RESPONSE_R1); while(!(REG_MSC_STAT & MSC_STAT_PRG_DONE)) ; REG_MSC_IREG |= MSC_IREG_PRG_DONE; } else sd_init(); return 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); }
/* init mmc/sd card we assume that the card is in the slot */ int mmc_init(void) { int retries, wait; u8 *resp; __gpio_as_msc(); __msc_reset(); MMC_IRQ_MASK(); REG_MSC_CLKRT = 7; //250k REG_MSC_RDTO = 0xffffffff; serial_puts("\n\nMMC/SD INIT\n"); /* reset */ resp = mmc_cmd(0, 0, 0x80, 0); resp = mmc_cmd(8, 0x1aa, 0x1, MSC_CMDAT_RESPONSE_R1); resp = mmc_cmd(55, 0, 0x1, MSC_CMDAT_RESPONSE_R1); if(!(resp[0] & 0x20) && (resp[5] != 0x37)) { serial_puts("MMC card found!\n"); resp = mmc_cmd(1, 0x40ff8000, 0x3, MSC_CMDAT_RESPONSE_R3); retries = 100; while (retries-- && resp && !(resp[4] & 0x80)) { resp = mmc_cmd(1, 0x40300000, 0x3, MSC_CMDAT_RESPONSE_R3); sd_mdelay(10); } if ((resp[4] & 0x80) == 0x80) serial_puts("MMC init ok\n"); else serial_puts("MMC init fail\n"); if((resp[4] & 0x60) == 0x40) highcap = 1; else highcap = 0; /* try to get card id */ resp = mmc_cmd(2, 0, 0x2, MSC_CMDAT_RESPONSE_R2); resp = mmc_cmd(3, 0x10, 0x1, MSC_CMDAT_RESPONSE_R1); REG_MSC_CLKRT = 0; /* 16/1 MHz */ resp = mmc_cmd(7, 0x10, 0x1, MSC_CMDAT_RESPONSE_R1); resp = mmc_cmd(6, 0x3b70101, 0x441, MSC_CMDAT_RESPONSE_R1); } else sd_init(); return 0; }
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); }
/* init mmc/sd card we assume that the card is in the slot */ static int mmc_init(void) { int retries; u8 *resp; __gpio_as_msc(); __msc_reset(); MMC_IRQ_MASK(); __cpm_select_msc_clk(0,1); REG_MSC_CLKRT = 7; //250k resp = mmc_cmd(12, 0, 0x41, MSC_CMDAT_RESPONSE_R1); /* reset */ resp = mmc_cmd(0, 0, 0x80, 0); resp = mmc_cmd(8, 0x1aa, 0x1, MSC_CMDAT_RESPONSE_R1); resp = mmc_cmd(55, 0, 0x1, MSC_CMDAT_RESPONSE_R1); if(!(resp[0] & 0x20) && (resp[5] != 0x37)) { resp = mmc_cmd(1, 0xff8000, 0x3, MSC_CMDAT_RESPONSE_R3); retries = 500; while (retries-- && resp && !(resp[4] & 0x80)) { resp = mmc_cmd(1, 0x40300000, 0x3, MSC_CMDAT_RESPONSE_R3); udelay(1000); udelay(1000); } if (resp[4]== 0x80) serial_puts("MMC init ok\n"); else serial_puts("MMC init fail\n"); /* try to get card id */ resp = mmc_cmd(2, 0, 0x2, MSC_CMDAT_RESPONSE_R2); resp = mmc_cmd(3, 0x10, 0x1, MSC_CMDAT_RESPONSE_R1); REG_MSC_CLKRT = 2; /* 16/1 MHz */ resp = mmc_cmd(7, 0x10, 0x1, MSC_CMDAT_RESPONSE_R1); resp = mmc_cmd(6, 0x3b70101, 0x401, MSC_CMDAT_RESPONSE_R1); } else sd_init(); return 0; }
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 gpio_init(void) { /* * Initialize SDRAM pins */ __gpio_as_sdram_32bit(); /* * Initialize UART0 pins */ __gpio_as_uart0(); /* * Initialize NAND Flash Pins */ __gpio_as_nand(); /* * Initialize LCD pins */ __gpio_as_lcd_18bit(); /* * Initialize MSC pins */ __gpio_as_msc(); /* * 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); }
static void gpio_init(void) { /* * 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 */ unsigned int i; 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); } /* enable the TP4, TP5 as UART0 */ __gpio_jtag_to_uart0(); /* * Initialize UART0 pins, in Ben NanoNote uart0 and keyin8 use the * same gpio, init the gpio as uart0 cause a keyboard bug. so for * end user we disable the uart0 */ if (__gpio_get_pin(GPIO_KEYIN_BASE + 2) == 0){ /* if pressed [S] */ printf("[S] pressed, enable UART0\n"); gd->boot_option |= BOOT_WITH_ENABLE_UART; __gpio_as_uart0(); } else { __gpio_as_input(GPIO_KEYIN_8); __gpio_enable_pull(GPIO_KEYIN_8); } __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); if (__gpio_get_pin(GPIO_KEYIN_BASE + 3) == 0) { printf("[M] pressed, boot from sd card\n"); gd->boot_option |= BOOT_FROM_SDCARD; } }
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); }