uint32 SDPAM_INTCEnableIRQ(SDMMC_PORT_E nSDCPort) { #if SDMMC_NO_PLATFORM return TRUE; #else uint32 ret = 0; if(nSDCPort == SDC0) { ret = irq_handler_enable(RKPLAT_IRQ_SDMMC); } else if(nSDCPort == SDC1) { ret = irq_handler_enable(RKPLAT_IRQ_SDIO); } else { ret = irq_handler_enable(RKPLAT_IRQ_EMMC); } if(ret == 0) { return TRUE; } else { return FALSE; } #endif }
/* * rkpm wakeup gpio init */ void rk_pm_wakeup_gpio_init(void) { int irq = gpio_to_irq(RK_WAKEUP_KEY_PIN); /* gpio pin just use to wakeup, no need isr handle */ irq_install_handler(irq, -1, NULL); irq_set_irq_type(irq, IRQ_TYPE_LEVEL_LOW); irq_handler_enable(irq); }
/* * rkpm wakeup gpio init */ void rk_pm_wakeup_gpio_init(void) { int irq = INVALID_GPIO, wakeup_gpio = INVALID_GPIO; #ifdef CONFIG_OF_LIBFDT struct fdt_gpio_state * gpio_dt = NULL; gpio_dt = rkkey_get_powerkey(); if (gpio_dt != NULL) { wakeup_gpio = gpio_dt->gpio; } #endif irq = gpio_to_irq(wakeup_gpio); if (irq != INVALID_GPIO) { /* gpio pin just use to wakeup, no need isr handle */ irq_install_handler(irq, (interrupt_handler_t *)-1, NULL); irq_set_irq_type(irq, IRQ_TYPE_LEVEL_LOW); irq_handler_enable(irq); } }