HPM SDK
HPMicro Software Development Kit
hpm_pdma_drv.c File Reference
#include "hpm_common.h"
#include "hpm_pdma_drv.h"

Data Structures

struct  pdma_buf2plane_format
 

Macros

#define PDMA_SCALE_FRAC_BITS   12
 
#define PDMA_YUV_SCALE_DEFAULT_X_OFFSET   (0x800)
 
#define PDMA_ERROR_STATUS_MASK
 
#define PDMA_BUSY_STATUS_MASK
 

Typedefs

typedef struct pdma_buf2plane_format pdma_buf2plane_format_t
 

Functions

void pdma_set_block_size (PDMA_Type *ptr, pdma_blocksize_t size)
 PDMA set block size. More...
 
void pdma_enable_plane (PDMA_Type *ptr, pdma_plane_t enable_plane, bool enable)
 
void pdma_enable_irq (PDMA_Type *ptr, uint32_t mask, bool enable)
 PDMA enable/disable irq. More...
 
void pdma_get_default_config (PDMA_Type *ptr, pdma_config_t *config, display_pixel_format_t pixel_format)
 Get default configuration according to input pixel format. More...
 
void pdma_get_default_plane_config (PDMA_Type *ptr, pdma_plane_config_t *config, display_pixel_format_t pixel_format)
 Get default plane configuration according input pixel format. More...
 
void pdma_get_default_yuv2rgb_coef_config (PDMA_Type *ptr, display_yuv2rgb_coef_t *yuv2rgb_coef, display_pixel_format_t source_format)
 Get default YUV2RGB coefficient configuration according to input pixel format. More...
 
void pdma_get_default_output_config (PDMA_Type *ptr, pdma_output_config_t *config, display_pixel_format_t pixel_format)
 Get default output configuration. More...
 
void pdma_stop (PDMA_Type *ptr)
 PDMA stop. More...
 
void pdma_init (PDMA_Type *ptr, pdma_config_t *config)
 PDMA initialization. More...
 
static uint32_t pdma_pixel_format (display_pixel_format_t display_format, bool is_out_plane)
 
void pdma_config_planes (PDMA_Type *ptr, void *plane_src_config, void *plane_dst_config, void *yuv2rgb_coef)
 Configure PDMA planes. More...
 
void pdma_config_output (PDMA_Type *ptr, pdma_output_config_t *config)
 PDMA config output. More...
 
hpm_stat_t pdma_check_status (PDMA_Type *ptr, uint32_t *status)
 PDMA check status. More...
 
hpm_stat_t pdma_fill_color (PDMA_Type *ptr, uint32_t dst, uint32_t dst_width, uint32_t width, uint32_t height, uint32_t color, uint8_t alpha, display_pixel_format_t format, bool wait, uint32_t *status)
 PDMA fill color. More...
 
hpm_stat_t pdma_flip_rotate (PDMA_Type *ptr, uint32_t dst, uint32_t dst_width, uint32_t src, uint32_t src_width, uint32_t x, uint32_t y, uint32_t width, uint32_t height, pdma_flip_t flip, pdma_rotate_t rotate, uint8_t alpha, display_pixel_format_t format, bool wait, uint32_t *status)
 PDMA flip rotate plane. More...
 
hpm_stat_t pdma_blit (PDMA_Type *ptr, uint32_t dst, uint32_t dst_width, uint32_t src, uint32_t src_width, uint32_t x, uint32_t y, uint32_t width, uint32_t height, uint8_t alpha, display_pixel_format_t format, bool wait, uint32_t *status)
 PDMA blit plane. More...
 
static void pdma_calculate_scale (uint32_t t, uint32_t target_t, pdma_decimation_t *dec, uint32_t *scale)
 
hpm_stat_t pdma_scale (PDMA_Type *ptr, uint32_t dst, uint32_t dst_width, uint32_t src, uint32_t src_width, uint32_t x, uint32_t y, uint32_t width, uint32_t height, uint32_t target_width, uint32_t target_height, uint8_t alpha, display_pixel_format_t format, bool wait, uint32_t *status)
 PDMA scale plane. More...
 
void pdma_get_default_blit_option (pdma_blit_option_t *op)
 PDMA get default blit option. More...
 
hpm_stat_t pdma_blit_ex (PDMA_Type *ptr, display_buf_t *dst, display_buf_t *src, pdma_blit_option_t *op, bool wait, uint32_t *status)
 PDMA blit plane by option. More...
 

Variables

static const pdma_buf2plane_format_t plane_format_tab [display_buf_format_max]
 
static const pdma_buf2plane_format_t out_format_tab [display_buf_format_max]
 

Macro Definition Documentation

◆ PDMA_BUSY_STATUS_MASK

#define PDMA_BUSY_STATUS_MASK
Value:
#define PDMA_STAT_BLOCKY_MASK
Definition: hpm_pdma_regs.h:183
#define PDMA_STAT_BLOCKX_MASK
Definition: hpm_pdma_regs.h:192

◆ PDMA_ERROR_STATUS_MASK

#define PDMA_ERROR_STATUS_MASK
Value:
#define PDMA_STAT_AXI_0_WRITE_ERR_MASK
Definition: hpm_pdma_regs.h:220
#define PDMA_STAT_AXI_1_READ_ERR_MASK
Definition: hpm_pdma_regs.h:230
#define PDMA_STAT_AXI_0_READ_ERR_MASK
Definition: hpm_pdma_regs.h:240

◆ PDMA_SCALE_FRAC_BITS

#define PDMA_SCALE_FRAC_BITS   12

◆ PDMA_YUV_SCALE_DEFAULT_X_OFFSET

#define PDMA_YUV_SCALE_DEFAULT_X_OFFSET   (0x800)

Typedef Documentation

◆ pdma_buf2plane_format_t

Function Documentation

◆ pdma_calculate_scale()

static void pdma_calculate_scale ( uint32_t  t,
uint32_t  target_t,
pdma_decimation_t dec,
uint32_t *  scale 
)
static

◆ pdma_enable_plane()

void pdma_enable_plane ( PDMA_Type ptr,
pdma_plane_t  enable_plane,
bool  enable 
)

◆ pdma_pixel_format()

static uint32_t pdma_pixel_format ( display_pixel_format_t  display_format,
bool  is_out_plane 
)
static

Variable Documentation

◆ out_format_tab

const pdma_buf2plane_format_t out_format_tab[display_buf_format_max]
static
Initial value:
= {
}
@ display_buf_format_argb8888
Definition: hpm_display_common.h:152
@ display_buf_format_y8
Definition: hpm_display_common.h:158
@ display_buf_format_yuyv
Definition: hpm_display_common.h:156
@ display_buf_format_bgra8888
Definition: hpm_display_common.h:153
@ display_buf_format_rgb565_swap
Definition: hpm_display_common.h:155
@ display_buf_format_uyvy
Definition: hpm_display_common.h:157
@ display_buf_format_rgb565
Definition: hpm_display_common.h:154
@ display_byteorder_a0a1a2a3
Definition: hpm_display_common.h:64
@ display_byteorder_a3a2a1a0
Definition: hpm_display_common.h:61
@ display_byteorder_a2a3a0a1
Definition: hpm_display_common.h:62
@ display_pixel_format_rgb565
Definition: hpm_display_common.h:47
@ display_pixel_format_y8
Definition: hpm_display_common.h:53
@ display_pixel_format_argb8888
Definition: hpm_display_common.h:46
@ display_pixel_format_ycbcr422
Definition: hpm_display_common.h:52

◆ plane_format_tab