X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Fcortex-m3%2Fdrv%2Fdmac_sam3.c;h=e97066860e792f27b7a6f0d882f0ea3a0a075ca0;hb=4229991b9a3b7cc09ef8899e02fb12f7075fe28f;hp=764bb8660484f1469da498f4f63d521f95fb040b;hpb=f9344771c58957fe73566e97cffcab3c8acafacc;p=bertos.git diff --git a/bertos/cpu/cortex-m3/drv/dmac_sam3.c b/bertos/cpu/cortex-m3/drv/dmac_sam3.c index 764bb866..e9706686 100644 --- a/bertos/cpu/cortex-m3/drv/dmac_sam3.c +++ b/bertos/cpu/cortex-m3/drv/dmac_sam3.c @@ -109,26 +109,15 @@ struct DmacCh dmac_ch[] = }, }; - /* We use event to signal the end of conversion */ -static Event data_ready; static Dmac dmac[DMAC_CHANNEL_CNT]; static uint8_t dmac_ch_enabled; -void dmac_configureDmacLLI(int ch, DmacDesc *lli, size_t transfer_size, uint32_t cfg, uint32_t ctrla, uint32_t ctrlb) -{ - DMAC_CHDR = BV(ch); - - *dmac_ch[ch].cfg = cfg | DMAC_CFG_FIFOCFG_ALAP_CFG | (0x1 << DMAC_CFG_AHB_PROT_SHIFT); - lli->ctrla = ctrla | (transfer_size & DMAC_CTRLA_BTSIZE_MASK); - lli->ctrlb = ctrlb;// & ~BV(DMAC_CTRLB_IEN); - *dmac_ch[ch].desc = (uint32_t)lli; -} - - -void dmac_configureDmaCfgLLI(int ch, DmacDesc *lli, uint32_t cfg) +void dmac_setLLITransfer(int ch, DmacDesc *lli, uint32_t cfg) { DMAC_CHDR = BV(ch); + reg32_t reg = DMAC_EBCISR; + (void)reg; *dmac_ch[ch].cfg = cfg | DMAC_CFG_FIFOCFG_ALAP_CFG | (0x1 << DMAC_CFG_AHB_PROT_SHIFT); *dmac_ch[ch].desc = (uint32_t)lli; @@ -160,6 +149,7 @@ int dmac_start(int ch) return -1; } DMAC_CHER = BV(ch); + dmac_ch_enabled |= BV(ch); return 0; }