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); }
//////////////////////////////////////////////////// // 功能: // 输入: // 输出: // 返回: // 说明: //////////////////////////////////////////////////// int DacInit(void) { int i; // 全局变量初始化 hDacMutex = kMutexCreate(); hDacSema = kSemaCreate(0); ListInit(&DacList); gVolumeSpeaker = 99; bHeadphoneIn = 0; #ifdef DAC_SAVE_PCM dac_offset = 0; dac_source_offset = 0; #endif //初始化结构体数据 kmemset(&DacDevice,0,sizeof(RESAMPLE)); kmemset((BYTE*)NullBuf,0xff,DAC_PCMBUF_SIZE); //初始化缓冲 for( i = 0 ; i < MAX_PCMBUFS ; i++ ) DacDevice.BufFlag[i] = DAC_BUF_WRITE; // 创建DAC设备写线程 KernelThread(PRIO_USER-11, DacWriteThread, 0, 0); #if defined(CONFIG_ERAPHONE_IO) __gpio_as_input(CONFIG_ERAPHONE_IO); __gpio_enable_pull(CONFIG_ERAPHONE_IO); #endif //初始化播放声音的GPIO端口 SetMoseCe(0); //D类功放开机去喀嚓音的特殊处理 #if defined(CONFIG_MAC_BDS6100) || defined(CONFIG_MAC_ND800) || defined(CONFIG_MAC_ASKMI1388) || defined(CONFIG_MAC_BDS6100A) || defined(CONFIG_MAC_NP7000) \ || defined( CONFIG_MAC_NP2300 ) || defined(CONFIG_MAC_NP5800) || defined(CONFIG_MAC_NP6800) SetPowerAmplifier(1); SetPowerAmplifier(0); #else SetPowerAmplifier(0); #endif #if defined(CODEC_ALWAYS_OPEN) MediaDraveInit(1); //如果是CODEC一直开启模式,则初始化时打开CODEC #endif return 0; }
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); }