HPM SDK
HPMicro Software Development Kit
hpm_ppi_drv.h File Reference
#include "hpm_common.h"
#include "hpm_soc_ip_feature.h"
#include "hpm_ppi_regs.h"

Go to the source code of this file.

Data Structures

struct  ppi_clk_pin_config_t
 clock pin config structure More...
 
struct  ppi_cs_pin_config_t
 cs pin config structure More...
 
struct  ppi_cmd_config_t
 cmd config structure More...
 

Enumerations

enum  ppi_cs_idle_polarity_t { ppi_cs_idle_pol_low = 0 , ppi_cs_idle_pol_high }
 cs pin idle polarity More...
 
enum  ppi_dm_valid_polarity_t { ppi_dm_valid_pol_high = 0 , ppi_dm_valid_pol_low }
 dm pin valid polarity More...
 
enum  ppi_ctrl_polarity_t { ppi_ctrl_pol_low = 0 , ppi_ctrl_pol_high }
 ctrl pin polarity More...
 
enum  ppi_ctrl_pin_dir_t { ppi_ctrl_pin_dir_input = 0 , ppi_ctrl_pin_dir_output }
 ctrl pin direction More...
 
enum  ppi_clk_output_mode_t { ppi_clk_output_by_cmd_clk_output = 0 , ppi_clk_always_output }
 clock pin output mode More...
 
enum  ppi_irq_mask_t { ppi_irq_tm_out_mask = PPI_IRQ_EN_IRQ_TMOUT_EN_MASK }
 irq mask More...
 
enum  ppi_port_size_t { ppi_port_size_8bits = 0 , ppi_port_size_16bits , ppi_port_size_32bits }
 port size More...
 
enum  ppi_byte_sel_t { ppi_byte_sel_0_7_bits = 0 , ppi_byte_sel_8_15_bits , ppi_byte_sel_16_23_bits , ppi_byte_sel_24_31_bits }
 cmd byte select More...
 
enum  ppi_ad_func_t { ppi_ad_func_data = 0 , ppi_ad_func_addr }
 cmd address and data function More...
 
enum  ppi_ad_pin_dir_t { ppi_ad_pin_dir_output = 0 , ppi_ad_pin_dir_input }
 cmd address and data pins direction More...
 

Functions

static void ppi_set_reset (PPI_Type *ppi, bool reset)
 set ppi software reset More...
 
static void ppi_config_cs_pin_polarity (PPI_Type *ppi, uint8_t index, ppi_cs_idle_polarity_t pol)
 config cs pin work valid polarity More...
 
static void ppi_config_dm_pin_polarity (PPI_Type *ppi, uint8_t index, ppi_dm_valid_polarity_t pol)
 config dm pin work polarity More...
 
static void ppi_config_ctrl_pin_polarity (PPI_Type *ppi, uint8_t index, ppi_ctrl_polarity_t pol)
 config ctrl pin work polarity, output and input ctrl pin polarity has different meaning More...
 
static void ppi_set_ctrl_pin_dir (PPI_Type *ppi, uint8_t index, ppi_ctrl_pin_dir_t dir)
 set ctrl pin direction More...
 
static void ppi_config_timeout (PPI_Type *ppi, uint16_t timeout_cnt, bool enable)
 config timeout More...
 
static void ppi_set_irq_enable (PPI_Type *ppi, uint32_t mask)
 set irq enable More...
 
static void ppi_set_irq_disable (PPI_Type *ppi, uint32_t mask)
 set irq disable More...
 
static uint32_t ppi_get_irq_enable_status (PPI_Type *ppi)
 get irq enable status More...
 
static uint32_t ppi_get_irq_status (PPI_Type *ppi)
 get irq status More...
 
static void ppi_clear_irq_flag (PPI_Type *ppi, uint32_t mask)
 clear irq flag More...
 
static void ppi_set_clk_pin_enable (PPI_Type *ppi)
 set clk pin enable More...
 
static void ppi_set_clk_pin_disable (PPI_Type *ppi)
 set clk pin disable More...
 
void ppi_config_clk_pin (PPI_Type *ppi, ppi_clk_pin_config_t *config)
 config clock pin output More...
 
void ppi_config_cs_pin (PPI_Type *ppi, uint8_t index, ppi_cs_pin_config_t *config)
 config cs pin More...
 
void ppi_config_cmd (PPI_Type *ppi, uint8_t index, ppi_cmd_config_t *config)
 config cmd More...
 
uint32_t ppi_ns2cycle (uint32_t freq_in_hz, uint32_t ns)
 convert ns to cycle More...