rt-thread-official/bsp/rx/RPDL/r_pdl_exdmac.h

149 lines
4.0 KiB
C

/*""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 */