csl_ataaux.h

来自「ccs下对dm6446的测试程序」· C头文件 代码 · 共 2,567 行 · 第 1/5 页

H
2,567
字号
     @endverbatim * *   <b> Return Value </b>  CSL_AtaIodftMisr * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  None * *   @b Modifies *   @n None * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        CSL_AtaIodftMisr   response;        response = CSL_ataGetMISRResult (hAta);     @endverbatim *  ============================================================================ */CSL_IDEF_INLINECSL_AtaIodftMisr CSL_ataGetMISRResult (    CSL_AtaHandle                       hAta){    CSL_AtaIodftMisr  response;    response.misr  = (Uint32) hAta->regs->IODFTM.TLMR;    response.misr2 = (Uint32) hAta->regs->IODFTM.TLMR2;    response.misr3 = (Uint32) hAta->regs->IODFTM.TLMR3;    return response;}/* *  Control command functions of ATA *//* FOR PRIMARY *//** ============================================================================ *   @n@b CSL_ataP_PIOEnable * *   @b Description *      Enables IDE Decode. PIO transactions decoded. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  PIO transactions decoded. * *   @b Modifies *   @n ata IDETIMP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        ...        CSL_ataP_PIOEnable (hAta);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_PIOEnable (    CSL_AtaHandle         hAta){    CSL_FINS(hAta->regs->CONFIG.IDETIMP, ATA_IDETIMP_IDEEN, 1);}/** ============================================================================ *   @n@b CSL_ataP_PIODisable * *   @b Description *      PIO transactions not decoded. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  PIO transactions not decoded. * *   @b Modifies *   @n ata IDETIMP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        ...        CSL_ataP_PIODisable (hAta);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_PIODisable (    CSL_AtaHandle          hAta){    CSL_FINS(hAta->regs->CONFIG.IDETIMP, ATA_IDETIMP_IDEEN, 0);}/** ============================================================================ *   @n@b CSL_ataP_DMAStartRead * *   @b Description *      Starts DMA operation read from device. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance        loadVal      Value to be loaded into the register     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  Starts DMA operation of reading. * *   @b Modifies *   @n ata BMIDTPP, UDMACTL, BMICP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        Uint32             loadVal;        ...        CSL_ataP_DMAStartRead (hAta, loadVal);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_DMAStartRead (    CSL_AtaHandle            hAta,    Uint32                   loadVal){    if (loadVal != NULL) {        /* if "loadVal" is non-NULL, it specifies DMA Descriptor pointer */        CSL_FINS(hAta->regs->DMAENGINE.BMIDTPP, ATA_BMIDTPP_BMIDTP,                 (((Uint32) loadVal) >> 2));    }    /* configure for MW-DMA */    CSL_FINS(hAta->regs->CONFIG.UDMACTL, ATA_UDMACTL_UDMAP0, 0);    CSL_FINS(hAta->regs->CONFIG.UDMACTL, ATA_UDMACTL_UDMAP1, 0);    /* read from device */    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMADIR, 1);    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMASTART, 1);}/** ============================================================================ *   @n@b CSL_ataP_DMAStartWrite * *   @b Description *      Starts DMA operation write from device. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance        loadVal      Value to be loaded into the register     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  Starts DMA operation of writing. * *   @b Modifies *   @n ata BMIDTPP, UDMACTL, BMICP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        Uint32             loadVal;        ...        CSL_ataP_DMAStartWrite (hAta, loadVal);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_DMAStartWrite (    CSL_AtaHandle             hAta,    Uint32                    loadVal){    if (loadVal != NULL) {        /* if "loadVal" is non-NULL, it specifies DMA Descriptor pointer */        CSL_FINS(hAta->regs->DMAENGINE.BMIDTPP, ATA_BMIDTPP_BMIDTP,                 (((Uint32) loadVal) >> 2));    }    /* configure for MW-DMA */    CSL_FINS(hAta->regs->CONFIG.UDMACTL, ATA_UDMACTL_UDMAP0, 0);    CSL_FINS(hAta->regs->CONFIG.UDMACTL, ATA_UDMACTL_UDMAP1, 0);    /* write to device */    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMADIR, 0);    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMASTART, 1);}/** ============================================================================ *   @n@b CSL_ataP_UDMAStartRead * *   @b Description *      Starts UDMA operation of reading. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance        loadVal      Value to be loaded into the register     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  Starts UDMA operation of reading. * *   @b Modifies *   @n ata BMIDTPP, UDMACTL, BMICP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        Uint32             loadVal;        ...        CSL_ataP_UDMAStartRead (hAta, loadVal);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_UDMAStartRead (    CSL_AtaHandle             hAta,    Uint32                    loadVal){    if (loadVal != NULL) {        /* if "loadVal" is non-NULL, it specifies DMA Descriptor pointer */        CSL_FINS(hAta->regs->DMAENGINE.BMIDTPP, ATA_BMIDTPP_BMIDTP,                 (((Uint32) loadVal) >> 2));    }    /* configure for UDMA */    CSL_FINS(hAta->regs->CONFIG.UDMACTL, ATA_UDMACTL_UDMAP0, 1);    CSL_FINS(hAta->regs->CONFIG.UDMACTL, ATA_UDMACTL_UDMAP1, 1);    /* read from device */    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMADIR, 1);    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMASTART, 1);}/** ============================================================================ *   @n@b CSL_ataP_UDMAStartWrite * *   @b Description *      Starts UDMA operation of writing. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance        loadVal      Value to be loaded into the register     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  Starts UDMA operation of writing. * *   @b Modifies *   @n ata BMIDTPP, UDMACTL, BMICP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        Uint32             loadVal;        ...        CSL_ataP_UDMAStartWrite (hAta, loadVal);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_UDMAStartWrite (    CSL_AtaHandle              hAta,    Uint32                     loadVal){    if (loadVal != NULL) {        /* if "loadVal" is non-NULL, it specifies DMA Descriptor pointer */        CSL_FINS(hAta->regs->DMAENGINE.BMIDTPP, ATA_BMIDTPP_BMIDTP,                 (((Uint32) loadVal) >> 2));    }    /* configure for UDMA */    CSL_FINS(hAta->regs->CONFIG.UDMACTL, ATA_UDMACTL_UDMAP0, 1);    CSL_FINS(hAta->regs->CONFIG.UDMACTL, ATA_UDMACTL_UDMAP1, 1);    /* write to device */    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMADIR, 0);    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMASTART, 1);}/** ============================================================================ *   @n@b CSL_ataP_DMA_UDMA_Stop * *   @b Description *      Stop DMA & UDMA operations. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  DMA & UDMA operations stopped. * *   @b Modifies *   @n ata BMICP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        ...        CSL_ataP_DMA_UDMA_Stop (hAta);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_DMA_UDMA_Stop (    CSL_AtaHandle             hAta){    CSL_FINS(hAta->regs->DMAENGINE.BMICP, ATA_BMICP_DMASTART, 0);}/** ============================================================================ *   @n@b CSL_ataP_IORDYTimeOutClear * *   @b Description *      Clear IORDY TimeOut pin. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  IORDY TimeOut pin cleared. * *   @b Modifies *   @n ata BMISP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        ...        CSL_ataP_IORDYTimeOutClear (hAta);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_IORDYTimeOutClear (    CSL_AtaHandle                 hAta){    CSL_FINS(hAta->regs->DMAENGINE.BMISP, ATA_BMISP_IORDYINT, 1);}/** ============================================================================ *   @n@b CSL_ataP_IntrStatusClear * *   @b Description *      Clear Interrupt status pin. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  Interrupt status pin cleared. * *   @b Modifies *   @n ata BMISP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        ...        CSL_ataP_IntrStatusClear (hAta);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_IntrStatusClear (    CSL_AtaHandle               hAta){    CSL_FINS(hAta->regs->DMAENGINE.BMISP, ATA_BMISP_INTRSTAT, 1);}/** ============================================================================ *   @n@b CSL_ataP_DMAErrorClear * *   @b Description *      Clear DMA Error pin. * *   @b Arguments *   @verbatim        hAta         Handle to the ATA instance     @endverbatim * *   <b> Return Value </b> *       None * *   <b> Pre Condition </b> *   @n  None * *   <b> Post Condition </b> *   @n  DMA Error pin cleared. * *   @b Modifies *   @n ata BMISP register. * *   @b Example *   @verbatim        CSL_AtaHandle      hAta;        ...        CSL_ataP_DMAErrorClear (hAta);        ...     @endverbatim * =========================================================================== */CSL_IDEF_INLINEvoid CSL_ataP_DMAErrorClear (    CSL_AtaHandle             hAta){    CSL_FINS(hAta->regs->DMAENGINE.BMISP, ATA_BMISP_DMAERROR, 1);}/** ============================================================================ *   @n@b CSL_ataP_DMADescTable *

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?