37 #ifndef __ALT_DMA_PROGRAM_H__ 38 #define __ALT_DMA_PROGRAM_H__ 78 #define ALT_DMA_PROGRAM_CACHE_LINE_SIZE (32) 86 #define ALT_DMA_PROGRAM_CACHE_LINE_COUNT (16) 101 #ifndef ALT_DMA_PROGRAM_PROVISION_BUFFER_SIZE 102 #define ALT_DMA_PROGRAM_PROVISION_BUFFER_SIZE (ALT_DMA_PROGRAM_CACHE_LINE_SIZE * ALT_DMA_PROGRAM_CACHE_LINE_COUNT) 114 uint16_t buffer_start;
286 uint32_t current, uint32_t * progress);
448 ALT_DMA_PROGRAM_INST_MOD_t mod);
491 uint32_t iterations);
515 ALT_DMA_PROGRAM_INST_MOD_t mod);
615 ALT_DMA_PROGRAM_INST_MOD_t mod);
765 #define ALT_DMA_CCR_OPT_SAF (0 << 0) 767 #define ALT_DMA_CCR_OPT_SAI (1 << 0) 769 #define ALT_DMA_CCR_OPT_SA_DEFAULT ALT_DMA_CCR_OPT_SAI 775 #define ALT_DMA_CCR_OPT_SS8 (0 << 1) 777 #define ALT_DMA_CCR_OPT_SS16 (1 << 1) 779 #define ALT_DMA_CCR_OPT_SS32 (2 << 1) 781 #define ALT_DMA_CCR_OPT_SS64 (3 << 1) 783 #define ALT_DMA_CCR_OPT_SS128 (4 << 1) 785 #define ALT_DMA_CCR_OPT_SS_DEFAULT ALT_DMA_CCR_OPT_SS8 791 #define ALT_DMA_CCR_OPT_SB1 (0x0 << 4) 793 #define ALT_DMA_CCR_OPT_SB2 (0x1 << 4) 795 #define ALT_DMA_CCR_OPT_SB3 (0x2 << 4) 797 #define ALT_DMA_CCR_OPT_SB4 (0x3 << 4) 799 #define ALT_DMA_CCR_OPT_SB5 (0x4 << 4) 801 #define ALT_DMA_CCR_OPT_SB6 (0x5 << 4) 803 #define ALT_DMA_CCR_OPT_SB7 (0x6 << 4) 805 #define ALT_DMA_CCR_OPT_SB8 (0x7 << 4) 807 #define ALT_DMA_CCR_OPT_SB9 (0x8 << 4) 809 #define ALT_DMA_CCR_OPT_SB10 (0x9 << 4) 811 #define ALT_DMA_CCR_OPT_SB11 (0xa << 4) 813 #define ALT_DMA_CCR_OPT_SB12 (0xb << 4) 815 #define ALT_DMA_CCR_OPT_SB13 (0xc << 4) 817 #define ALT_DMA_CCR_OPT_SB14 (0xd << 4) 819 #define ALT_DMA_CCR_OPT_SB15 (0xe << 4) 821 #define ALT_DMA_CCR_OPT_SB16 (0xf << 4) 823 #define ALT_DMA_CCR_OPT_SB_DEFAULT ALT_DMA_CCR_OPT_SB1 829 #define ALT_DMA_CCR_OPT_SP(imm3) ((imm3) << 8) 831 #define ALT_DMA_CCR_OPT_SP_DEFAULT ALT_DMA_CCR_OPT_SP(0) 837 #define ALT_DMA_CCR_OPT_SC(imm4) ((imm4) << 11) 839 #define ALT_DMA_CCR_OPT_SC_DEFAULT ALT_DMA_CCR_OPT_SC(0) 845 #define ALT_DMA_CCR_OPT_DAF (0 << 14) 847 #define ALT_DMA_CCR_OPT_DAI (1 << 14) 849 #define ALT_DMA_CCR_OPT_DA_DEFAULT ALT_DMA_CCR_OPT_DAI 855 #define ALT_DMA_CCR_OPT_DS8 (0 << 15) 857 #define ALT_DMA_CCR_OPT_DS16 (1 << 15) 859 #define ALT_DMA_CCR_OPT_DS32 (2 << 15) 861 #define ALT_DMA_CCR_OPT_DS64 (3 << 15) 863 #define ALT_DMA_CCR_OPT_DS128 (4 << 15) 865 #define ALT_DMA_CCR_OPT_DS_DEFAULT ALT_DMA_CCR_OPT_DS8 871 #define ALT_DMA_CCR_OPT_DB1 (0x0 << 18) 873 #define ALT_DMA_CCR_OPT_DB2 (0x1 << 18) 875 #define ALT_DMA_CCR_OPT_DB3 (0x2 << 18) 877 #define ALT_DMA_CCR_OPT_DB4 (0x3 << 18) 879 #define ALT_DMA_CCR_OPT_DB5 (0x4 << 18) 881 #define ALT_DMA_CCR_OPT_DB6 (0x5 << 18) 883 #define ALT_DMA_CCR_OPT_DB7 (0x6 << 18) 885 #define ALT_DMA_CCR_OPT_DB8 (0x7 << 18) 887 #define ALT_DMA_CCR_OPT_DB9 (0x8 << 18) 889 #define ALT_DMA_CCR_OPT_DB10 (0x9 << 18) 891 #define ALT_DMA_CCR_OPT_DB11 (0xa << 18) 893 #define ALT_DMA_CCR_OPT_DB12 (0xb << 18) 895 #define ALT_DMA_CCR_OPT_DB13 (0xc << 18) 897 #define ALT_DMA_CCR_OPT_DB14 (0xd << 18) 899 #define ALT_DMA_CCR_OPT_DB15 (0xe << 18) 901 #define ALT_DMA_CCR_OPT_DB16 (0xf << 18) 903 #define ALT_DMA_CCR_OPT_DB_DEFAULT ALT_DMA_CCR_OPT_DB1 909 #define ALT_DMA_CCR_OPT_DP(imm3) ((imm3) << 22) 911 #define ALT_DMA_CCR_OPT_DP_DEFAULT ALT_DMA_CCR_OPT_DP(0) 917 #define ALT_DMA_CCR_OPT_DC(imm4) ((imm4) << 25) 919 #define ALT_DMA_CCR_OPT_DC_DEFAULT ALT_DMA_CCR_OPT_DC(0) 925 #define ALT_DMA_CCR_OPT_ES8 (0 << 28) 927 #define ALT_DMA_CCR_OPT_ES16 (1 << 28) 929 #define ALT_DMA_CCR_OPT_ES32 (2 << 28) 931 #define ALT_DMA_CCR_OPT_ES64 (3 << 28) 933 #define ALT_DMA_CCR_OPT_ES128 (4 << 28) 935 #define ALT_DMA_CCR_OPT_ES_DEFAULT ALT_DMA_CCR_OPT_ES8 938 #define ALT_DMA_CCR_OPT_DEFAULT \ 939 (ALT_DMA_CCR_OPT_SB1 | ALT_DMA_CCR_OPT_SS8 | ALT_DMA_CCR_OPT_SAI | \ 940 ALT_DMA_CCR_OPT_SP(0) | ALT_DMA_CCR_OPT_SC(0) | \ 941 ALT_DMA_CCR_OPT_DB1 | ALT_DMA_CCR_OPT_DS8 | ALT_DMA_CCR_OPT_DAI | \ 942 ALT_DMA_CCR_OPT_DP(0) | ALT_DMA_CCR_OPT_DC(0) | \ ALT_STATUS_CODE alt_dma_program_DMAWFP(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PERIPH_t periph, ALT_DMA_PROGRAM_INST_MOD_t mod)
Definition: alt_dma_program.c:1003
ALT_STATUS_CODE alt_dma_program_update_reg(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_REG_t reg, uint32_t val)
Definition: alt_dma_program.c:187
ALT_STATUS_CODE alt_dma_program_DMAST(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_INST_MOD_t mod)
Definition: alt_dma_program.c:849
ALT_STATUS_CODE alt_dma_program_DMANOP(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:764
enum ALT_DMA_EVENT_e ALT_DMA_EVENT_t
ALT_STATUS_CODE alt_dma_program_DMAGO(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_CHANNEL_t channel, uint32_t val, ALT_DMA_SECURITY_t sec)
Definition: alt_dma_program.c:355
ALT_STATUS_CODE alt_dma_program_progress_reg(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_REG_t reg, uint32_t current, uint32_t *progress)
Definition: alt_dma_program.c:147
ALT_STATUS_CODE alt_dma_program_uninit(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:98
Definition: alt_dma_program.h:176
ALT_STATUS_CODE alt_dma_program_DMARMB(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:786
ALT_STATUS_CODE alt_dma_program_DMAWFE(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_EVENT_t evt, bool invalid)
Definition: alt_dma_program.c:955
enum ALT_DMA_PROGRAM_INST_MOD_e ALT_DMA_PROGRAM_INST_MOD_t
ALT_STATUS_CODE alt_dma_program_DMASTZ(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:933
#define ALT_DMA_PROGRAM_CACHE_LINE_SIZE
Definition: alt_dma_program.h:78
enum ALT_DMA_PERIPH_e ALT_DMA_PERIPH_t
Definition: alt_dma_program.h:196
ALT_STATUS_CODE alt_dma_program_DMAWMB(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:1050
ALT_DMA_PROGRAM_INST_MOD_e
Definition: alt_dma_program.h:170
ALT_STATUS_CODE alt_dma_program_DMAADDH(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_REG_t addr_reg, uint16_t val)
Definition: alt_dma_program.c:222
ALT_STATUS_CODE alt_dma_program_DMAADNH(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_REG_t addr_reg, uint16_t val)
Definition: alt_dma_program.c:261
Definition: alt_dma_program.h:190
ALT_STATUS_CODE alt_dma_program_DMALP(ALT_DMA_PROGRAM_t *pgm, uint32_t iterations)
Definition: alt_dma_program.c:521
enum ALT_DMA_CHANNEL_e ALT_DMA_CHANNEL_t
ALT_DMA_PROGRAM_REG_e
Definition: alt_dma_program.h:137
enum ALT_DMA_SECURITY_e ALT_DMA_SECURITY_t
ALT_STATUS_CODE alt_dma_program_DMAKILL(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:415
ALT_STATUS_CODE alt_dma_program_DMALD(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_INST_MOD_t mod)
Definition: alt_dma_program.c:437
Definition: alt_dma_program.h:183
ALT_STATUS_CODE alt_dma_program_DMASEV(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_EVENT_t evt)
Definition: alt_dma_program.c:808
ALT_STATUS_CODE alt_dma_program_DMAFLUSHP(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PERIPH_t periph)
Definition: alt_dma_program.c:325
ALT_STATUS_CODE alt_dma_program_DMAMOV(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_REG_t chan_reg, uint32_t val)
Definition: alt_dma_program.c:703
ALT_STATUS_CODE alt_dma_program_init(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:80
Definition: alt_dma_program.h:146
ALT_STATUS_CODE alt_dma_program_DMASTP(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_INST_MOD_t mod, ALT_DMA_PERIPH_t periph)
Definition: alt_dma_program.c:889
#define ALT_DMA_PROGRAM_PROVISION_BUFFER_SIZE
Definition: alt_dma_program.h:102
ALT_STATUS_CODE alt_dma_program_clear(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:103
ALT_STATUS_CODE alt_dma_program_DMALPEND(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_INST_MOD_t mod)
Definition: alt_dma_program.c:574
struct ALT_DMA_PROGRAM_s ALT_DMA_PROGRAM_t
int32_t ALT_STATUS_CODE
Definition: hwlib.h:60
Definition: alt_dma_program.h:110
enum ALT_DMA_PROGRAM_REG_e ALT_DMA_PROGRAM_REG_t
Definition: alt_dma_program.h:143
ALT_STATUS_CODE alt_dma_program_validate(const ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:117
ALT_STATUS_CODE alt_dma_program_DMAEND(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:300
ALT_STATUS_CODE alt_dma_program_DMALPFE(ALT_DMA_PROGRAM_t *pgm)
Definition: alt_dma_program.c:672
Definition: alt_dma_program.h:140
ALT_STATUS_CODE alt_dma_program_DMALDP(ALT_DMA_PROGRAM_t *pgm, ALT_DMA_PROGRAM_INST_MOD_t mod, ALT_DMA_PERIPH_t periph)
Definition: alt_dma_program.c:477