static int emd_power_on(int bootmode) { EMD_MSG_INF("chr","emd_power_on, bootmode=%d\n",bootmode); #ifdef CONFIG_MTK_DT_USB_SUPPORT #ifdef CONFIG_PM_RUNTIME /* make sure usb device tree is waked up so that usb is ready */ usb11_auto_resume(); #endif #endif cm_do_md_power_on(bootmode); cm_register_irq_cb(0,ext_md_wdt_irq_cb); cm_register_irq_cb(1,ext_md_wakeup_irq_cb); cm_register_irq_cb(2,ext_md_exception_irq_cb); EMD_MSG_INF("chr","let_ext_md_go...\n"); let_ext_md_go(); return 0; }
void cm_gpio_setup(void) { #if 1 mt_set_gpio_mode(GPIO_6280_USB_SW1, GPIO_MODE_00); mt_set_gpio_mode(GPIO_6280_USB_SW2, GPIO_MODE_00); mt_set_gpio_dir(GPIO_6280_USB_SW1, GPIO_DIR_OUT); mt_set_gpio_dir(GPIO_6280_USB_SW2, GPIO_DIR_OUT); mt_set_gpio_out(GPIO_6280_USB_SW1, GPIO_OUT_ZERO); mt_set_gpio_out(GPIO_6280_USB_SW2, GPIO_OUT_ZERO); /* Press MT6280 DL key to enter download mode * GPIO_6280_KCOL0(GPIO_KCOL0)=0 */ mt_set_gpio_mode(GPIO_6280_KCOL0, GPIO_MODE_00); mt_set_gpio_dir(GPIO_6280_KCOL0, GPIO_DIR_OUT); mt_set_gpio_out(GPIO_6280_KCOL0, GPIO_OUT_ZERO); /* Power on MT6280: * Pull high GPIO_6280_RST, 0->1 */ mt_set_gpio_mode(GPIO_6280_RST, GPIO_MODE_00); mt_set_gpio_dir(GPIO_6280_RST, GPIO_DIR_OUT); //mt_set_gpio_out(GPIO_6280_RST, GPIO_OUT_ZERO); //msleep(200); //mt_set_gpio_mode(GPIO_6280_RST, GPIO_MODE_00); //mt_set_gpio_dir(GPIO_6280_RST, GPIO_DIR_OUT); //mt_set_gpio_out(GPIO_6280_RST, GPIO_OUT_ONE); //msleep(10); /* Press MT6280 DL key to enter download mode * GPIO_6280_KCOL0(GPIO_KCOL0)=0 */ mt_set_gpio_mode(GPIO_6280_KCOL0, GPIO_MODE_00); mt_set_gpio_dir(GPIO_6280_KCOL0, GPIO_DIR_OUT); //mt_set_gpio_out(GPIO_6280_KCOL0, GPIO_OUT_ONE); cm_do_md_power_off(); cm_do_md_power_on(); //printk("[%s] 2modem download .. while(1)...\n", "mt6280"); #endif #if 0 // MD wake up AP pin mt_set_gpio_pull_enable(GPIO_DT_MD_WK_AP_PIN, !0); mt_set_gpio_pull_select(GPIO_DT_MD_WK_AP_PIN, 1); mt_set_gpio_dir(GPIO_DT_MD_WK_AP_PIN, 0); mt_set_gpio_mode(GPIO_DT_MD_WK_AP_PIN, GPIO_DT_MD_WK_AP_PIN_M_EINT); // EINT3 // AP wake up MD pin mt_set_gpio_mode(GPIO_DT_AP_WK_MD_PIN, GPIO_DT_AP_WK_MD_PIN_M_GPIO); // GPIO Mode mt_set_gpio_dir(GPIO_DT_AP_WK_MD_PIN, 1); mt_set_gpio_out(GPIO_DT_AP_WK_MD_PIN, 0); // Rest MD pin mt_set_gpio_mode(GPIO_DT_MD_RST_PIN, GPIO_DT_MD_RST_PIN_M_GPIO); //GPIO202 is reset pin mt_set_gpio_pull_enable(GPIO_DT_MD_RST_PIN, 0); mt_set_gpio_pull_select(GPIO_DT_MD_RST_PIN, 1); mt_set_gpio_dir(GPIO_DT_MD_RST_PIN, 1); mt_set_gpio_out(GPIO_DT_MD_RST_PIN, 0);// Default @ reset state // MD power key pin mt_set_gpio_mode(GPIO_DT_MD_PWR_KEY_PIN, GPIO_DT_MD_PWR_KEY_PIN_M_GPIO); //GPIO 200 is power key mt_set_gpio_pull_enable(GPIO_DT_MD_PWR_KEY_PIN, 0); mt_set_gpio_dir(GPIO_DT_MD_PWR_KEY_PIN, 0);// Using input floating //mt_set_gpio_out(GPIO_DT_MD_PWR_KEY_PIN, 1);// Default @ reset state // MD WDT irq pin mt_set_gpio_pull_enable(GPIO_DT_MD_WDT_PIN, !0); mt_set_gpio_pull_select(GPIO_DT_MD_WDT_PIN, 1); mt_set_gpio_dir(GPIO_DT_MD_WDT_PIN, 0); mt_set_gpio_mode(GPIO_DT_MD_WDT_PIN, GPIO_DT_MD_WDT_PIN_M_EINT); // EINT9 // MD Download pin //....... #endif }