MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / rthw_sdctrl_init

Function rthw_sdctrl_init

bsp/ft2004/drivers/drv_sdctrl.c:578–628  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

576}
577
578int rthw_sdctrl_init(void)
579{
580
581 FtsdCtrl_t *ft_sdctrl_p;
582#ifdef BSP_SDC_USE_IRQ
583 FSdCtrl_Config_t *config_p;
584 FSdCtrl_NormalIrqSelect_t normalIrqFlgs = 0;
585#endif
586
587 rt_kprintf("rthw_sdctrl_init \r\n");
588 RT_ASSERT(rthw_sdctrl_create(&sdctrl_class) == RT_EOK);
589 ft_sdctrl_p = &sdctrl_class.ft_sdctrl;
590
591 FSdCtrl_Reset(ft_sdctrl_p, (pFtsdCtrl_delayTimer_t)rthw_sdctrl_delay);
592 FsdCtrl_Init(ft_sdctrl_p);
593
594#ifdef BSP_SDC_USE_IRQ
595 config_p = &ft_sdctrl_p->config;
596#ifdef BSP_SDC_IRQ_CARD_REMOVE
597 normalIrqFlgs |= NORMAL_IRQ_CR;
598
599#endif
600 normalIrqFlgs |= NORMAL_IRQ_CC;
601 /* register handler irq enable bit and wait callback */
602 FSdCtrl_SetHandler(ft_sdctrl_p, FTSDCTRL_CMDIRQID, rthw_sdctrl_nomarl_callback, ft_sdctrl_p);
603 FSdCtrl_NormalIrqSet(ft_sdctrl_p, normalIrqFlgs);
604 FSdCtrl_CmdWaitRegister(ft_sdctrl_p, rthw_sdctrl_cmd_wait);
605
606 FSdCtrl_SetHandler(ft_sdctrl_p, FTSDCTRL_DMADATAIRQID, rthw_sdctrl_dma_callback, ft_sdctrl_p);
607 FSdCtrl_BdIrqSet(ft_sdctrl_p, BD_IRQ_TRS | BD_IRQ_RESPE);
608 FSdCtrl_WriteWaitRegister(ft_sdctrl_p, rthw_sdctrl_write_wait);
609 FSdCtrl_ReadWaitRegister(ft_sdctrl_p, rthw_sdctrl_read_wait);
610
611 config_p->workMode = FTSDCTRL_CMD_IRQ_MASK | FTSDCTRL_DATA_WRITE_IRQ_MASK | FTSDCTRL_DATA_READ_IRQ_MASK;
612
613#else
614
615#endif
616
617 /* install normal irq */
618
619 rt_hw_interrupt_install(ft_sdctrl_p->config.normalIrqNum, rthw_sdctrl_normal_irq,
620 &sdctrl_class.ft_sdctrl, "normalIrq");
621 rt_hw_interrupt_umask(ft_sdctrl_p->config.normalIrqNum);
622
623 rt_hw_interrupt_install(ft_sdctrl_p->config.dmaIrqNum, rthw_sdctrl_dma_irq,
624 &sdctrl_class.ft_sdctrl, "dmaIrq");
625 rt_hw_interrupt_umask(ft_sdctrl_p->config.dmaIrqNum);
626
627 return 0;
628}
629
630INIT_DEVICE_EXPORT(rthw_sdctrl_init);
631

Callers

nothing calls this directly

Calls 12

rt_kprintfFunction · 0.85
rthw_sdctrl_createFunction · 0.85
FSdCtrl_ResetFunction · 0.85
FsdCtrl_InitFunction · 0.85
FSdCtrl_SetHandlerFunction · 0.85
FSdCtrl_NormalIrqSetFunction · 0.85
FSdCtrl_CmdWaitRegisterFunction · 0.85
FSdCtrl_BdIrqSetFunction · 0.85
FSdCtrl_ReadWaitRegisterFunction · 0.85
rt_hw_interrupt_installFunction · 0.50
rt_hw_interrupt_umaskFunction · 0.50

Tested by

no test coverage detected