static int __init mt_init_dma(void) { int i; g_nr_apdma_allocated = 0; for (i = 0; i < NR_GDMA_CHANNEL; i++) { mt_reset_dma(i); } // mt6577_irq_set_sens(MT6577_GDMA1_IRQ_ID, MT65xx_LEVEL_SENSITIVE); // mt6577_irq_set_polarity(MT6577_GDMA1_IRQ_ID, MT65xx_POLARITY_LOW); if (request_irq(MT_GDMA1_IRQ_ID, gdma1_irq_handler, IRQF_TRIGGER_LOW, "GDMA1", NULL)) { printk(KERN_ERR"GDMA1 IRQ LINE NOT AVAILABLE!!\n"); } // enable_irq(MT6577_GDMA1_IRQ_ID); // mt6577_irq_set_sens(MT6577_GDMA2_IRQ_ID, MT65xx_LEVEL_SENSITIVE); // mt6577_irq_set_polarity(MT6577_GDMA2_IRQ_ID, MT65xx_POLARITY_LOW); if (request_irq(MT_GDMA2_IRQ_ID, gdma2_irq_handler, IRQF_TRIGGER_LOW, "GDMA2", NULL)) { printk(KERN_ERR"GDMA2 IRQ LINE NOT AVAILABLE!!\n"); } printk("[APDMA] Init APDMA OK\n"); emi_mpu_notifier_register(MST_ID_MMPERI_4, gdma1_check_mpu_violation); // enable_irq(MT6577_GDMA2_IRQ_ID); return 0; }
int musbfsh_platform_init(struct musbfsh *musbfsh) { INFO("musbfsh_platform_init++\n"); if(!musbfsh){ ERR("musbfsh_platform_init,error,musbfsh is NULL"); return -1; } musbfsh->board_set_vbus = mt65xx_usb11_vbus; musbfsh->board_set_power = mt65xx_usb11_poweron; hwPowerOn(MT65XX_POWER_LDO_VUSB, VOL_3300, "USB11"); // don't need to power on PHY for every resume mt65xx_usb11_poweron(true); emi_mpu_notifier_register(MST_ID_MMPERI_2, musbfs_check_mpu_violation); return 0; }
int __init musb_platform_init(struct musb *musb) { int err; #ifdef CONFIG_USB_MTK_HDRC_HCD if (is_host_enabled(musb)) { musb->board_set_vbus = mtk_set_vbus; //<2013/03/27-23263-stevenchen, Correct GPIO12 & GPIO38 configuration to low down standby current. #ifndef CONFIG_MT6589_FPGA #ifndef MTK_BQ24196_SUPPORT #ifndef MTK_BQ24157_SUPPORT mt_set_gpio_mode(GPIO_OTG_DRVVBUS_PIN,GPIO_OTG_DRVVBUS_PIN_M_GPIO);//should set GPIO2 as gpio mode. mt_set_gpio_dir(GPIO_OTG_DRVVBUS_PIN,GPIO_DIR_OUT); mt_get_gpio_pull_enable(GPIO_OTG_DRVVBUS_PIN); mt_set_gpio_pull_select(GPIO_OTG_DRVVBUS_PIN,GPIO_PULL_UP); #endif #endif #endif //>2013/03/27-23263-stevenchen } #endif musb->nIrq = MT6589_USB0_IRQ_ID; musb->dma_irq= (int)SHARE_IRQ; musb->fifo_cfg = fifo_cfg; musb->fifo_cfg_size = ARRAY_SIZE(fifo_cfg); musb->fifo_cfg_host = fifo_cfg_host; musb->fifo_cfg_host_size = ARRAY_SIZE(fifo_cfg_host); mtk_musb->power = FALSE; mtk_musb->is_host = FALSE; mtk_musb->fifo_size = 8*1024; #ifndef CONFIG_MT6589_FPGA hwPowerOn(MT65XX_POWER_LDO_VUSB, VOL_3300, "VUSB_LDO"); printk("%s, enable VBUS_LDO \n", __func__); #endif musb_platform_enable(musb); emi_mpu_notifier_register(MST_ID_MMPERI_1, musb_check_mpu_violation); musb->isr = mt_usb_interrupt; musb_writel(musb->mregs,MUSB_HSDMA_INTR,0xff | (0xff << DMA_INTR_UNMASK_SET_OFFSET)); DBG(2,"musb platform init %x\n",musb_readl(musb->mregs,MUSB_HSDMA_INTR)); musb_writel(musb->mregs,USB_L1INTM,TX_INT_STATUS | RX_INT_STATUS | USBCOM_INT_STATUS | DMA_INT_STATUS); err = device_create_file(musb->controller,&dev_attr_cmode); return 0; }