/*""FILE COMMENT""******************************************************* * System Name : EXDMAC API for RX62Nxx * File Name : r_pdl_exdmac.h * Version : 1.02 * Contents : EXDMAC API header * Customer : * Model : * Order : * CPU : RX * Compiler : RXC * OS : Nothing * Programmer : * Note : ************************************************************************ * Copyright, 2011. Renesas Electronics Corporation * and Renesas Solutions Corporation ************************************************************************ * History : 2011.04.08 * : Ver 1.02 * : CS-5 release. *""FILE COMMENT END""**************************************************/ #ifndef R_PDL_EXDMAC_H #define R_PDL_EXDMAC_H #include "r_pdl_common_defs_RX62Nxx.h" /* Function prototypes */ bool R_EXDMAC_Create( uint8_t, uint32_t, uint16_t, uint8_t, void *, void *, uint16_t, uint16_t, int32_t, uint32_t, uint32_t, void *, uint8_t ); bool R_EXDMAC_Destroy( uint8_t ); bool R_EXDMAC_Control( uint8_t, uint16_t, void *, void *, uint16_t, uint16_t, int32_t, uint32_t, uint32_t ); bool R_EXDMAC_GetStatus( uint8_t, uint8_t *, uint32_t *, uint32_t *, uint16_t *, uint16_t * ); /* Transfer mode selection */ #define PDL_EXDMAC_NORMAL 0x00000001ul #define PDL_EXDMAC_REPEAT 0x00000002ul #define PDL_EXDMAC_BLOCK 0x00000004ul #define PDL_EXDMAC_CLUSTER 0x00000008ul #define PDL_EXDMAC_SOURCE 0x00000010ul #define PDL_EXDMAC_DESTINATION 0x00000020ul /* Address addition direction selection */ #define PDL_EXDMAC_SOURCE_ADDRESS_FIXED 0x00000040ul #define PDL_EXDMAC_SOURCE_ADDRESS_PLUS 0x00000080ul #define PDL_EXDMAC_SOURCE_ADDRESS_MINUS 0x00000100ul #define PDL_EXDMAC_SOURCE_ADDRESS_OFFSET 0x00000200ul #define PDL_EXDMAC_DESTINATION_ADDRESS_FIXED 0x00000400ul #define PDL_EXDMAC_DESTINATION_ADDRESS_PLUS 0x00000800ul #define PDL_EXDMAC_DESTINATION_ADDRESS_MINUS 0x00001000ul #define PDL_EXDMAC_DESTINATION_ADDRESS_OFFSET 0x00002000ul /* Address mode selection */ #define PDL_EXDMAC_ADDRESS_MODE_READ 0x00004000ul #define PDL_EXDMAC_ADDRESS_MODE_WRITE 0x00008000ul #define PDL_EXDMAC_ADDRESS_MODE_DUAL 0x00010000ul /* Transfer data size */ #define PDL_EXDMAC_SIZE_8 0x00020000ul #define PDL_EXDMAC_SIZE_16 0x00040000ul #define PDL_EXDMAC_SIZE_32 0x00080000ul /* Pin selection */ #define PDL_EXDMAC_PIN_A 0x0001u #define PDL_EXDMAC_PIN_B 0x0002u #define PDL_EXDMAC_PIN_C 0x0004u /* EDACKn pin output control */ #define PDL_EXDMAC_EDACK_DISABLE 0x0008u #define PDL_EXDMAC_EDACK_LOW 0x0010u #define PDL_EXDMAC_EDACK_HIGH 0x0020u #define PDL_EXDMAC_EDACK_SYNC 0x0040u #define PDL_EXDMAC_EDACK_WAIT 0x0080u /* Trigger selection */ #define PDL_EXDMAC_TRIGGER_SW 0x0100u #define PDL_EXDMAC_TRIGGER_RISING 0x0200u #define PDL_EXDMAC_TRIGGER_FALLING 0x0400u #define PDL_EXDMAC_TRIGGER_LOW 0x0800u #define PDL_EXDMAC_TRIGGER_MTU1 0x1000u /* Interrupt generation */ #define PDL_EXDMAC_IRQ_END 0x01u #define PDL_EXDMAC_IRQ_ESCAPE_END 0x02u #define PDL_EXDMAC_IRQ_REPEAT_SIZE_END 0x04u #define PDL_EXDMAC_IRQ_EXT_SOURCE 0x08u #define PDL_EXDMAC_IRQ_EXT_DESTINATION 0x10u /* DTC trigger control */ #define PDL_EXDMAC_DTC_TRIGGER_DISABLE 0x20u #define PDL_EXDMAC_DTC_TRIGGER_ENABLE 0x40u /* Enable / suspend control */ #define PDL_EXDMAC_ENABLE 0x0001u #define PDL_EXDMAC_SUSPEND 0x0002u /* Software trigger control */ #define PDL_EXDMAC_START 0x0004u #define PDL_EXDMAC_START_RUN 0x0008u #define PDL_EXDMAC_STOP 0x0010u /* Transfer end interrupt flag control */ #define PDL_EXDMAC_CLEAR_DTIF 0x0020u #define PDL_EXDMAC_CLEAR_ESIF 0x0040u /* Modify registers selection */ #define PDL_EXDMAC_UPDATE_SOURCE 0x0080u #define PDL_EXDMAC_UPDATE_DESTINATION 0x0100u #define PDL_EXDMAC_UPDATE_COUNT 0x0200u #define PDL_EXDMAC_UPDATE_SIZE 0x0400u #define PDL_EXDMAC_UPDATE_OFFSET 0x0800u #define PDL_EXDMAC_UPDATE_REPEAT_SOURCE 0x1000u #define PDL_EXDMAC_UPDATE_REPEAT_DESTINATION 0x2000u #endif /* End of file */