HPM SDK
HPMicro Software Development Kit
OTP driver APIs

OTP APIs. More...

Enumerations

enum  otp_region_t {
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U
}
 OTP region definitions. More...
 
enum  otp_lock_option_t {
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 ,
  otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access ,
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access
}
 OTP lock options. More...
 
enum  { otp_write_disallowed = MAKE_STATUS(status_group_otp, 0) }
 
enum  otp_region_t {
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U
}
 OTP region definitions. More...
 
enum  otp_lock_option_t {
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 ,
  otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access ,
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access
}
 OTP lock options. More...
 
enum  { otp_write_disallowed = MAKE_STATUS(status_group_otp, 0) }
 
enum  otp_region_t {
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U
}
 OTP region definitions. More...
 
enum  otp_lock_option_t {
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 ,
  otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access ,
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access
}
 OTP lock options. More...
 
enum  { otp_write_disallowed = MAKE_STATUS(status_group_otp, 0) }
 
enum  otp_region_t {
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U
}
 OTP region definitions. More...
 
enum  otp_lock_option_t {
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 ,
  otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access ,
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access
}
 OTP lock options. More...
 
enum  { otp_write_disallowed = MAKE_STATUS(status_group_otp, 0) }
 
enum  otp_region_t {
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U
}
 OTP region definitions. More...
 
enum  otp_lock_option_t {
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 ,
  otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access ,
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access
}
 OTP lock options. More...
 
enum  { otp_write_disallowed = MAKE_STATUS(status_group_otp, 0) }
 
enum  otp_region_t {
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U
}
 OTP region definitions. More...
 
enum  otp_lock_option_t {
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 ,
  otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access ,
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access
}
 OTP lock options. More...
 
enum  { otp_write_disallowed = MAKE_STATUS(status_group_otp, 0) }
 
enum  otp_region_t {
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U ,
  otp_region0_mask = 1U , otp_region1_mask = 2U , otp_region2_mask = 4U , otp_region3_mask = 8U
}
 OTP region definitions. More...
 
enum  otp_lock_option_t {
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 ,
  otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access ,
  otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 , otp_disable_access = 3 ,
  otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 , otp_permanent_no_lock = 2 ,
  otp_disable_access = 3 , otp_lock_option_max = otp_disable_access , otp_no_lock = 0 , otp_read_only = 1 ,
  otp_permanent_no_lock = 2 , otp_disable_access = 3 , otp_lock_option_max = otp_disable_access
}
 OTP lock options. More...
 
enum  { otp_write_disallowed = MAKE_STATUS(status_group_otp, 0) }
 

Functions

void otp_init (void)
 Initialize OTP controller. More...
 
void otp_deinit (void)
 De-initialize OTP controller. More...
 
uint32_t otp_read_from_shadow (uint32_t addr)
 Read the OTP word from shadow register. More...
 
uint32_t otp_read_from_ip (uint32_t addr)
 Read the specified OTP word from OTP IP bus. More...
 
hpm_stat_t otp_program (uint32_t addr, const uint32_t *src, uint32_t num_of_words)
 Program a word to specified OTP field. More...
 
hpm_stat_t otp_reload (otp_region_t region)
 Reload a OTP region. More...
 
hpm_stat_t otp_lock_otp (uint32_t addr, otp_lock_option_t lock_option)
 Change the Software lock permission. More...
 
hpm_stat_t otp_lock_shadow (uint32_t addr, otp_lock_option_t lock_option)
 OTP lock shadow. More...
 
hpm_stat_t otp_set_configurable_region (uint32_t start, uint32_t num_of_words)
 Set the configurable region range. More...
 
hpm_stat_t otp_write_shadow_register (uint32_t addr, uint32_t val)
 

Detailed Description

OTP APIs.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Enumerator
otp_write_disallowed 

◆ anonymous enum

anonymous enum

#include <soc/HPM5300/HPM5361/hpm_otp_drv.h>

Enumerator
otp_write_disallowed 

◆ anonymous enum

anonymous enum

#include <soc/HPM6200/HPM6280/hpm_otp_drv.h>

Enumerator
otp_write_disallowed 

◆ anonymous enum

anonymous enum

#include <soc/HPM6300/HPM6360/hpm_otp_drv.h>

Enumerator
otp_write_disallowed 

◆ anonymous enum

anonymous enum

#include <soc/HPM6700/HPM6750/hpm_otp_drv.h>

Enumerator
otp_write_disallowed 

◆ anonymous enum

anonymous enum

#include <soc/HPM6800/HPM6880/hpm_otp_drv.h>

Enumerator
otp_write_disallowed 

◆ anonymous enum

anonymous enum

#include <soc/HPM6E00/HPM6E80/hpm_otp_drv.h>

Enumerator
otp_write_disallowed 

◆ otp_lock_option_t [1/7]

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

OTP lock options.

Enumerator
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 

◆ otp_lock_option_t [2/7]

#include <soc/HPM5300/HPM5361/hpm_otp_drv.h>

OTP lock options.

Enumerator
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 

◆ otp_lock_option_t [3/7]

#include <soc/HPM6200/HPM6280/hpm_otp_drv.h>

OTP lock options.

Enumerator
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 

◆ otp_lock_option_t [4/7]

#include <soc/HPM6300/HPM6360/hpm_otp_drv.h>

OTP lock options.

Enumerator
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 

◆ otp_lock_option_t [5/7]

#include <soc/HPM6700/HPM6750/hpm_otp_drv.h>

OTP lock options.

Enumerator
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 

◆ otp_lock_option_t [6/7]

#include <soc/HPM6800/HPM6880/hpm_otp_drv.h>

OTP lock options.

Enumerator
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 

◆ otp_lock_option_t [7/7]

#include <soc/HPM6E00/HPM6E80/hpm_otp_drv.h>

OTP lock options.

Enumerator
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 
otp_no_lock 
otp_read_only 
otp_permanent_no_lock 
otp_disable_access 
otp_lock_option_max 

◆ otp_region_t [1/7]

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

OTP region definitions.

Enumerator
otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

◆ otp_region_t [2/7]

#include <soc/HPM5300/HPM5361/hpm_otp_drv.h>

OTP region definitions.

Enumerator
otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

◆ otp_region_t [3/7]

#include <soc/HPM6200/HPM6280/hpm_otp_drv.h>

OTP region definitions.

Enumerator
otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

◆ otp_region_t [4/7]

#include <soc/HPM6300/HPM6360/hpm_otp_drv.h>

OTP region definitions.

Enumerator
otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

◆ otp_region_t [5/7]

#include <soc/HPM6700/HPM6750/hpm_otp_drv.h>

OTP region definitions.

Enumerator
otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

◆ otp_region_t [6/7]

#include <soc/HPM6800/HPM6880/hpm_otp_drv.h>

OTP region definitions.

Enumerator
otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

◆ otp_region_t [7/7]

#include <soc/HPM6E00/HPM6E80/hpm_otp_drv.h>

OTP region definitions.

Enumerator
otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

otp_region0_mask 

Address range: [0, 7]

otp_region1_mask 

Address range: [8, 15]

otp_region2_mask 

Address range: [16, 127]

otp_region3_mask 

Address range: user defined

Function Documentation

◆ otp_deinit()

void otp_deinit ( void  )

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

De-initialize OTP controller.

◆ otp_init()

void otp_init ( void  )

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Initialize OTP controller.

◆ otp_lock_otp()

hpm_stat_t otp_lock_otp ( uint32_t  addr,
otp_lock_option_t  lock_option 
)

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Change the Software lock permission.

Parameters
[in]addrOTP word index
[in]lock_optionOTP lcok option
Returns
API execution status

◆ otp_lock_shadow()

hpm_stat_t otp_lock_shadow ( uint32_t  addr,
otp_lock_option_t  lock_option 
)

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

OTP lock shadow.

Parameters
[in]addrOTP word index
[in]lock_optionOTP lock option
Returns
API execution status

◆ otp_program()

hpm_stat_t otp_program ( uint32_t  addr,
const uint32_t *  src,
uint32_t  num_of_words 
)

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Program a word to specified OTP field.

Parameters
[in]addrOTP word index
[in]srcPointer to the data to be programmed
[in]num_of_wordsNumber of words to be programmed, only 1 is allowed
Returns
API execution status

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

< ASCII: OPEN

◆ otp_read_from_ip()

uint32_t otp_read_from_ip ( uint32_t  addr)

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Read the specified OTP word from OTP IP bus.

Parameters
[in]addrOTP word index
Return values
OTPword value

◆ otp_read_from_shadow()

uint32_t otp_read_from_shadow ( uint32_t  addr)

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Read the OTP word from shadow register.

Parameters
[in]addrOTP word index
Return values
OTPword value

◆ otp_reload()

hpm_stat_t otp_reload ( otp_region_t  region)

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Reload a OTP region.

Parameters
[in]regionOTP region option
Returns
API execution status

◆ otp_set_configurable_region()

hpm_stat_t otp_set_configurable_region ( uint32_t  start,
uint32_t  num_of_words 
)

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Set the configurable region range.

Parameters
[in]startOTP word start index
[in]num_of_wordsNumber of words in configuration region
Return values
status_out_of_rangeInvalid range
status_successOperation is successful

◆ otp_write_shadow_register()

hpm_stat_t otp_write_shadow_register ( uint32_t  addr,
uint32_t  val 
)

#include <soc/HPM5300/HPM5301/hpm_otp_drv.h>

Returns
Write data to OTP shadow register
Parameters
[in]addrOTP word index
[in]valData to be written
Returns
API execution status
Write data to OTP shadow register
Parameters
[in]addrOTP word index
[val]val Data to be written
Returns
API execution status
Write data to OTP shadow register
Parameters
[in]addrOTP word index
[in]valData to be written
Returns
API execution status
Write data to OTP shadow register
Parameters
[in]addrOTP word index
[val]val Data to be written
Returns
API execution status