1
0

add P4 & P5

This commit is contained in:
2025-11-24 15:44:12 +01:00
parent bd24f1fb79
commit f6fa6d94ce
1120 changed files with 576492 additions and 83 deletions

View File

@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Release Notes for ST25DV-I2C Component Driver</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<link rel="stylesheet" href="_htmresc/mini-st.css" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<div class="row">
<div class="col-sm-12 col-lg-4">
<div class="card fluid">
<div class="sectione dark">
<center>
<h1 id="release-notes-for-st25dv-i2c-component-driver"><small>Release Notes for</small> <mark>ST25DV-I2C Component Driver</mark></h1>
<p>Copyright © 2020 STMicroelectronics<br />
</p>
<a href="https://www.st.com" class="logo"><img src="_htmresc/st_logo.png" alt="ST logo" /></a>
</center>
</div>
</div>
<h1 id="license">License</h1>
<p>Licensed by ST under BSD 3-Clause license (the "License"). You may not use this package except in compliance with the License. You may obtain a copy of the License at:</p>
<p><a href="https://opensource.org/licenses/BSD-3-Clause">https://opensource.org/licenses/BSD-3-Clause</a></p>
<h1 id="purpose">Purpose</h1>
<p>This directory contains the ST25DV-I2C component drivers.</p>
</div>
<div class="col-sm-12 col-lg-8">
<h1 id="update-history">Update History</h1>
<div class="collapse">
<input type="checkbox" id="collapse-section19" checked aria-hidden="true"> <label for="collapse-section19" aria-hidden="true">V1.0.0 / 30-April-2020</label>
<div>
<h2 id="main-changes">Main Changes</h2>
<ul>
<li>First official release.</li>
</ul>
</div>
</div>
</div>
</div>
<footer class="sticky">
For complete documentation on <mark>STM32 Microcontrollers</mark> , visit: <a href="http://www.st.com/STM32">http://www.st.com/STM32</a>
</footer>
</body>
</html>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,459 @@
/**
******************************************************************************
* @file st25dv.h
* @author MMY Application Team
* @brief This file provides set of driver functions to manage communication
* @brief between MCU and ST25DV chip
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
* All rights reserved.</center></h2>
*
* This software component is licensed by ST under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef ST25DV_H
#define ST25DV_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "st25dv_reg.h"
/** @addtogroup BSP
* @{
*/
/** @addtogroup ST25DV
* @{
*/
/* Exported types ------------------------------------------------------------*/
/**
* @brief ST25DV Enable Disable enumerator definition.
*/
typedef enum
{
ST25DV_DISABLE = 0,
ST25DV_ENABLE
} ST25DV_EN_STATUS;
/**
* @brief ST25DV Energy Harvesting mode enumerator definition.
*/
typedef enum
{
ST25DV_EH_ACTIVE_AFTER_BOOT = 0,
ST25DV_EH_ON_DEMAND
} ST25DV_EH_MODE_STATUS;
/**
* @brief ST25DV FIELD status enumerator definition.
*/
typedef enum
{
ST25DV_FIELD_OFF = 0,
ST25DV_FIELD_ON
} ST25DV_FIELD_STATUS;
/**
* @brief ST25DV VCC status enumerator definition
*/
typedef enum
{
ST25DV_VCC_OFF = 0,
ST25DV_VCC_ON
} ST25DV_VCC_STATUS;
/**
* @brief ST25DV protection status enumerator definition
*/
typedef enum
{
ST25DV_NO_PROT = 0,
ST25DV_WRITE_PROT,
ST25DV_READ_PROT,
ST25DV_READWRITE_PROT
} ST25DV_PROTECTION_CONF;
/**
* @brief ST25DV area protection enumerator definition.
*/
typedef enum
{
ST25DV_PROT_ZONE1 = 0,
ST25DV_PROT_ZONE2,
ST25DV_PROT_ZONE3,
ST25DV_PROT_ZONE4
} ST25DV_PROTECTION_ZONE;
/**
* @brief ST25DV password protection status enumerator definition.
*/
typedef enum
{
ST25DV_NOT_PROTECTED = 0,
ST25DV_PROT_PASSWD1,
ST25DV_PROT_PASSWD2,
ST25DV_PROT_PASSWD3
} ST25DV_PASSWD_PROT_STATUS;
/**
* @brief ST25DV lock status enumerator definition.
*/
typedef enum
{
ST25DV_UNLOCKED = 0,
ST25DV_LOCKED
} ST25DV_LOCK_STATUS;
/**
* @brief ST25DV Number of Blocks for the CCFile enumerator definition.
*/
typedef enum
{
ST25DV_CCFILE_1BLCK = 0,
ST25DV_CCFILE_2BLCK
} ST25DV_CCFILE_BLOCK;
/**
* @brief ST25DV session status enumerator definition.
*/
typedef enum
{
ST25DV_SESSION_CLOSED = 0,
ST25DV_SESSION_OPEN
} ST25DV_I2CSSO_STATUS;
/**
* @brief ST25DV area end address enumerator definition.
*/
typedef enum
{
ST25DV_ZONE_END1 = 0,
ST25DV_ZONE_END2,
ST25DV_ZONE_END3
} ST25DV_END_ZONE;
/**
* @brief ST25DV IT pulse duration enumerator definition.
*/
typedef enum
{
ST25DV_302_US = 0,
ST25DV_264_US,
ST25DV_226_US,
ST25DV_188_US,
ST25DV_151_US,
ST25DV_113_US,
ST25DV_75_US,
ST25DV_37_US
} ST25DV_PULSE_DURATION;
/**
* @brief ST25DV Mailbox Current Message enumerator definition
*/
typedef enum
{
ST25DV_NO_MSG = 0,
ST25DV_HOST_MSG,
ST25DV_RF_MSG
} ST25DV_CURRENT_MSG;
/**
* @brief ST25DV EH Ctrl structure definition
*/
typedef struct
{
ST25DV_EN_STATUS EH_EN_Mode;
ST25DV_EN_STATUS EH_on;
ST25DV_EN_STATUS Field_on;
ST25DV_EN_STATUS VCC_on;
} ST25DV_EH_CTRL;
/**
* @brief ST25DV GPO structure definition
*/
typedef struct
{
ST25DV_EN_STATUS GPO_RFUser_en;
ST25DV_EN_STATUS GPO_RFActivity_en;
ST25DV_EN_STATUS GPO_RFInterrupt_en;
ST25DV_EN_STATUS GPO_FieldChange_en;
ST25DV_EN_STATUS GPO_RFPutMsg_en;
ST25DV_EN_STATUS GPO_RFGetMsg_en;
ST25DV_EN_STATUS GPO_RFWrite_en;
ST25DV_EN_STATUS GPO_Enable;
} ST25DV_GPO;
/**
* @brief ST25DV RF Management structure definition.
*/
typedef struct
{
ST25DV_EN_STATUS RfDisable;
ST25DV_EN_STATUS RfSleep;
} ST25DV_RF_MNGT;
/**
* @brief ST25DV RF Area protection structure definition.
*/
typedef struct
{
ST25DV_PASSWD_PROT_STATUS PasswdCtrl;
ST25DV_PROTECTION_CONF RWprotection;
} ST25DV_RF_PROT_ZONE;
/**
* @brief ST25DV I2C Area protection structure definition.
*/
typedef struct
{
ST25DV_PROTECTION_CONF ProtectZone1;
ST25DV_PROTECTION_CONF ProtectZone2;
ST25DV_PROTECTION_CONF ProtectZone3;
ST25DV_PROTECTION_CONF ProtectZone4;
} ST25DV_I2C_PROT_ZONE;
/**
* @brief ST25DV MB_CTRL_DYN register structure definition.
*/
typedef struct
{
uint8_t MbEnable;
uint8_t HostPutMsg;
uint8_t RfPutMsg;
uint8_t HostMissMsg;
uint8_t RFMissMsg;
ST25DV_CURRENT_MSG CurrentMsg;
} ST25DV_MB_CTRL_DYN_STATUS;
/**
* @brief ST25DV Lock CCFile structure definition.
*/
typedef struct
{
ST25DV_LOCK_STATUS LckBck0;
ST25DV_LOCK_STATUS LckBck1;
} ST25DV_LOCK_CCFILE;
/**
* @brief ST25DV Memory size structure definition.
*/
typedef struct
{
uint8_t BlockSize;
uint16_t Mem_Size;
} ST25DV_MEM_SIZE;
/**
* @brief ST25DV UID information structure definition.
*/
typedef struct
{
uint32_t MsbUid;
uint32_t LsbUid;
} ST25DV_UID;
/**
* @brief ST25DV Password structure definition.
*/
typedef struct
{
uint32_t MsbPasswd;
uint32_t LsbPasswd;
} ST25DV_PASSWD;
typedef int32_t (*ST25DV_Init_Func) (void);
typedef int32_t (*ST25DV_DeInit_Func) (void);
typedef uint32_t (*ST25DV_GetTick_Func) (void);
typedef int32_t (*ST25DV_Write_Func)(uint16_t, uint16_t, const uint8_t*, uint16_t);
typedef int32_t (*ST25DV_Read_Func) (uint16_t, uint16_t, uint8_t*, uint16_t);
typedef int32_t (*ST25DV_IsReady_Func) (uint16_t, const uint32_t);
typedef struct {
ST25DV_Init_Func Init;
ST25DV_DeInit_Func DeInit;
ST25DV_IsReady_Func IsReady;
ST25DV_Write_Func Write;
ST25DV_Read_Func Read;
ST25DV_GetTick_Func GetTick;
} ST25DV_IO_t;
typedef struct {
ST25DV_IO_t IO ;
st25dv_ctx_t Ctx ;
uint32_t IsInitialized;
} ST25DV_Object_t;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
* @brief NFCTAG standard driver API structure definition.
*/
typedef struct
{
int32_t (*Init)( void* );
int32_t (*ReadID)( void*, uint8_t * const );
int32_t (*IsReady)( void*, const uint32_t );
int32_t (*GetITStatus)( void*, uint16_t * const );
int32_t (*ConfigIT)( void*, const uint16_t );
int32_t (*ReadData)( void*, uint8_t * const, const uint16_t, const uint16_t );
int32_t (*WriteData)( void*, const uint8_t * const, const uint16_t, const uint16_t );
} NFCTAG_DrvTypeDef;
typedef struct
{
int32_t (*Init)( ST25DV_Object_t* );
int32_t (*ReadID)( ST25DV_Object_t*, uint8_t * const );
int32_t (*IsReady)( ST25DV_Object_t*, const uint32_t );
int32_t (*GetITStatus)( ST25DV_Object_t*, uint16_t * const );
int32_t (*ConfigIT)( ST25DV_Object_t*, const uint16_t );
int32_t (*ReadData)( ST25DV_Object_t*, uint8_t * const, const uint16_t, const uint16_t );
int32_t (*WriteData)( ST25DV_Object_t*, const uint8_t * const, const uint16_t, const uint16_t );
} ST25DV_Drv_t;
#endif
/* Exported constants --------------------------------------------------------*/
/** @brief ST25DV 4Kbits ICref */
#define I_AM_ST25DV04 0x24
/** @brief ST25DV 16/64Kbits ICref */
#define I_AM_ST25DV64 0x26
/** @brief Check ST25DV Open Drain version */
#define ST25DV_AM_I_OPEN_DRAIN(x) (((x) == 0x26) || ((x) == 0x24))
/** @brief Check ST25DV CMOS version */
#define ST25DV_AM_I_CMOS(x) (((x) == 0x27) || ((x) == 0x25))
#ifndef NULL
#define NULL (void *) 0
#endif
/** @brief I2C address to be used for ST25DV Data accesses. */
#define ST25DV_ADDR_DATA_I2C 0xA6
/** @brief I2C address to be used for ST25DV System accesses. */
#define ST25DV_ADDR_SYST_I2C 0xAE
/** @brief I2C Time out (ms), min value : (Max write bytes) / (Internal page write) * tw (256/4)*5. */
#define ST25DV_WRITE_TIMEOUT 320
/** @brief Size of the ST25DV write buffer. */
#define ST25DV_MAX_WRITE_BYTE 256
/** @brief Size of the ST25DVMailbox memory. */
#define ST25DV_MAX_MAILBOX_LENGTH 256
/** @brief Offset of ST25DV dynamic registers. */
#define ST25DV_IS_DYNAMIC_REGISTER 0x2000
/* External variables --------------------------------------------------------*/
/* NFCTAG driver structure */
extern ST25DV_Drv_t St25Dv_Drv;
/* Exported macro ------------------------------------------------------------*/
/* Imported functions ------------------------------------------------------- */
/* Exported functions ------------------------------------------------------- */
int32_t ST25DV_ReadRegister( ST25DV_Object_t*, uint8_t * const, const uint16_t, const uint16_t );
int32_t ST25DV_WriteRegister( ST25DV_Object_t*, const uint8_t * const, const uint16_t, const uint16_t );
int32_t ST25DV_RegisterBusIO (ST25DV_Object_t* pObj, ST25DV_IO_t *pIO);
int32_t ST25DV_ReadMemSize( ST25DV_Object_t* pObj, ST25DV_MEM_SIZE * const pSizeInfo );
int32_t ST25DV_ReadICRev(ST25DV_Object_t* pObj, uint8_t * const pICRev );
int32_t ST25DV_ReadITPulse(ST25DV_Object_t* pObj, ST25DV_PULSE_DURATION * const pITtime );
int32_t ST25DV_WriteITPulse(ST25DV_Object_t* pObj, const ST25DV_PULSE_DURATION ITtime );
int32_t ST25DV_ReadUID(ST25DV_Object_t* pObj, ST25DV_UID * const pUid );
int32_t ST25DV_ReadDSFID(ST25DV_Object_t* pObj, uint8_t * const pDsfid );
int32_t ST25DV_ReadDsfidRFProtection(ST25DV_Object_t* pObj, ST25DV_LOCK_STATUS * const pLockDsfid );
int32_t ST25DV_ReadAFI(ST25DV_Object_t* pObj, uint8_t * const pAfi );
int32_t ST25DV_ReadAfiRFProtection(ST25DV_Object_t* pObj, ST25DV_LOCK_STATUS * const pLockAfi );
int32_t ST25DV_ReadI2CProtectZone(ST25DV_Object_t* pObj, ST25DV_I2C_PROT_ZONE * const pProtZone );
int32_t ST25DV_WriteI2CProtectZonex( ST25DV_Object_t* pObj, const ST25DV_PROTECTION_ZONE Zone, const ST25DV_PROTECTION_CONF ReadWriteProtection );
int32_t ST25DV_ReadLockCCFile( ST25DV_Object_t* pObj, ST25DV_LOCK_CCFILE * const pLockCCFile );
int32_t ST25DV_WriteLockCCFile( ST25DV_Object_t* pObj, const ST25DV_CCFILE_BLOCK NbBlockCCFile, const ST25DV_LOCK_STATUS LockCCFile );
int32_t ST25DV_ReadLockCFG( ST25DV_Object_t* pObj, ST25DV_LOCK_STATUS * const pLockCfg );
int32_t ST25DV_WriteLockCFG( ST25DV_Object_t* pObj, const ST25DV_LOCK_STATUS LockCfg );
int32_t ST25DV_PresentI2CPassword( ST25DV_Object_t* pObj, const ST25DV_PASSWD PassWord );
int32_t ST25DV_WriteI2CPassword( ST25DV_Object_t* pObj, const ST25DV_PASSWD PassWord );
int32_t ST25DV_ReadRFZxSS( ST25DV_Object_t* pObj, const ST25DV_PROTECTION_ZONE Zone, ST25DV_RF_PROT_ZONE * const pRfprotZone );
int32_t ST25DV_WriteRFZxSS( ST25DV_Object_t* pObj, const ST25DV_PROTECTION_ZONE Zone, const ST25DV_RF_PROT_ZONE RfProtZone );
int32_t ST25DV_ReadEndZonex( ST25DV_Object_t* pObj, const ST25DV_END_ZONE EndZone, uint8_t * pEndZ );
int32_t ST25DV_WriteEndZonex( ST25DV_Object_t* pObj, const ST25DV_END_ZONE EndZone, const uint8_t EndZ );
int32_t ST25DV_InitEndZone( ST25DV_Object_t* pObj );
int32_t ST25DV_CreateUserZone( ST25DV_Object_t* pObj, uint16_t Zone1Length, uint16_t Zone2Length, uint16_t Zone3Length, uint16_t Zone4Length );
int32_t ST25DV_ReadMemSize( ST25DV_Object_t* pObj, ST25DV_MEM_SIZE * const pSizeInfo );
int32_t ST25DV_ReadEHMode( ST25DV_Object_t* pObj, ST25DV_EH_MODE_STATUS * const pEH_mode );
int32_t ST25DV_WriteEHMode( ST25DV_Object_t* pObj, const ST25DV_EH_MODE_STATUS EH_mode );
int32_t ST25DV_ReadRFMngt( ST25DV_Object_t* pObj, ST25DV_RF_MNGT * const pRF_Mngt );
int32_t ST25DV_WriteRFMngt( ST25DV_Object_t* pObj, const uint8_t Rfmngt );
int32_t ST25DV_GetRFDisable( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pRFDisable );
int32_t ST25DV_SetRFDisable( ST25DV_Object_t* pObj );
int32_t ST25DV_ResetRFDisable( ST25DV_Object_t* pObj );
int32_t ST25DV_GetRFSleep( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pRFSleep );
int32_t ST25DV_SetRFSleep( ST25DV_Object_t* pObj );
int32_t ST25DV_ResetRFSleep( ST25DV_Object_t* pObj );
int32_t ST25DV_ReadMBMode( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pMB_mode );
int32_t ST25DV_WriteMBMode( ST25DV_Object_t* pObj, const ST25DV_EN_STATUS MB_mode );
int32_t ST25DV_ReadMBWDG( ST25DV_Object_t* pObj, uint8_t * const pWdgDelay );
int32_t ST25DV_WriteMBWDG( ST25DV_Object_t* pObj, const uint8_t WdgDelay );
int32_t ST25DV_ReadMailboxData( ST25DV_Object_t* pObj, uint8_t * const pData, const uint16_t TarAddr, const uint16_t NbByte );
int32_t ST25DV_WriteMailboxData( ST25DV_Object_t* pObj, const uint8_t * const pData, const uint16_t NbByte );
int32_t ST25DV_ReadMailboxRegister( ST25DV_Object_t* pObj, uint8_t * const pData, const uint16_t TarAddr, const uint16_t NbByte );
int32_t ST25DV_WriteMailboxRegister( ST25DV_Object_t* pObj, const uint8_t * const pData, const uint16_t TarAddr, const uint16_t NbByte );
int32_t ST25DV_ReadI2CSecuritySession_Dyn( ST25DV_Object_t* pObj, ST25DV_I2CSSO_STATUS * const pSession );
int32_t ST25DV_ReadITSTStatus_Dyn( ST25DV_Object_t* pObj, uint8_t * const pITStatus );
int32_t ST25DV_ReadGPO_Dyn( ST25DV_Object_t* pObj, uint8_t *GPOConfig );
int32_t ST25DV_GetGPO_en_Dyn( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pGPO_en );
int32_t ST25DV_SetGPO_en_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_ResetGPO_en_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_ReadEHCtrl_Dyn( ST25DV_Object_t* pObj, ST25DV_EH_CTRL * const pEH_CTRL );
int32_t ST25DV_GetEHENMode_Dyn( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pEH_Val );
int32_t ST25DV_SetEHENMode_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_ResetEHENMode_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_GetEHON_Dyn( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pEHON );
int32_t ST25DV_GetRFField_Dyn( ST25DV_Object_t* pObj, ST25DV_FIELD_STATUS * const pRF_Field );
int32_t ST25DV_GetVCC_Dyn( ST25DV_Object_t* pObj, ST25DV_VCC_STATUS * const pVCC );
int32_t ST25DV_ReadRFMngt_Dyn( ST25DV_Object_t* pObj, ST25DV_RF_MNGT * const pRF_Mngt );
int32_t ST25DV_WriteRFMngt_Dyn( ST25DV_Object_t* pObj, const uint8_t RF_Mngt );
int32_t ST25DV_GetRFDisable_Dyn( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pRFDisable );
int32_t ST25DV_SetRFDisable_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_ResetRFDisable_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_GetRFSleep_Dyn( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pRFSleep );
int32_t ST25DV_SetRFSleep_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_ResetRFSleep_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_ReadMBCtrl_Dyn( ST25DV_Object_t* pObj, ST25DV_MB_CTRL_DYN_STATUS * const pCtrlStatus );
int32_t ST25DV_GetMBEN_Dyn( ST25DV_Object_t* pObj, ST25DV_EN_STATUS * const pMBEN );
int32_t ST25DV_SetMBEN_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_ResetMBEN_Dyn( ST25DV_Object_t* pObj );
int32_t ST25DV_ReadMBLength_Dyn( ST25DV_Object_t* pObj, uint8_t * const pMBLength );
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* ST25DV_H */
/******************* (C) COPYRIGHT 2016 STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,501 @@
/**
******************************************************************************
* @file st25dv_reg.h
* @author MMY Application Team
* @brief This file provides set of functions to access st25dv-i2c registers.
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
* All rights reserved.</center></h2>
*
* This software component is licensed by ST under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
******************************************************************************
*/
#ifndef ST25DV_REG_H
#define ST25DV_REG_H
#include <cmsis_compiler.h>
/* Registers i2c address */
/** @brief ST25DV GPO register address. */
#define ST25DV_GPO_REG 0x0000
/** @brief ST25DV IT duration register address. */
#define ST25DV_ITTIME_REG 0x0001
/** @brief ST25DV Energy Harvesting register address. */
#define ST25DV_EH_MODE_REG 0x0002
/** @brief ST25DV RF management register address. */
#define ST25DV_RF_MNGT_REG 0x0003
/** @brief ST25DV Area 1 security register address. */
#define ST25DV_RFA1SS_REG 0x0004
/** @brief ST25DV Area 1 end address register address. */
#define ST25DV_ENDA1_REG 0x0005
/** @brief ST25DV Area 2 security register address. */
#define ST25DV_RFA2SS_REG 0x0006
/** @brief ST25DV Area 2 end address register address. */
#define ST25DV_ENDA2_REG 0x0007
/** @brief ST25DV Area 3 security register address. */
#define ST25DV_RFA3SS_REG 0x0008
/** @brief ST25DV Area 3 end address register address. */
#define ST25DV_ENDA3_REG 0x0009
/** @brief ST25DV Area 4 security register address. */
#define ST25DV_RFA4SS_REG 0x000A
/** @brief ST25DV I2C security register address. */
#define ST25DV_I2CSS_REG 0x000B
/** @brief ST25DV Capability Container lock register address. */
#define ST25DV_LOCKCCFILE_REG 0x000C
/** @brief ST25DV Mailbox mode register address. */
#define ST25DV_MB_MODE_REG 0x000D
/** @brief ST25DV Mailbox Watchdog register address. */
#define ST25DV_MB_WDG_REG 0x000E
/** @brief ST25DV Configuration lock register address. */
#define ST25DV_LOCKCFG_REG 0x000F
/** @brief ST25DV DSFID lock register address. */
#define ST25DV_LOCKDSFID_REG 0x0010
/** @brief ST25DV AFI lock register address. */
#define ST25DV_LOCKAFI_REG 0x0011
/** @brief ST25DV DSFID register address. */
#define ST25DV_DSFID_REG 0x0012
/** @brief ST25DV AFI register address. */
#define ST25DV_AFI_REG 0x0013
/** @brief ST25DV Memory size register address. */
#define ST25DV_MEM_SIZE_LSB_REG 0x0014
/** @brief ST25DV Memory size register address. */
#define ST25DV_MEM_SIZE_MSB_REG 0x0015
/** @brief ST25DV Block size register address. */
#define ST25DV_BLK_SIZE_REG 0x0016
//** @brief ST25DV ICref register address. */
#define ST25DV_ICREF_REG 0x0017
/** @brief ST25DV UID register address. */
#define ST25DV_UID_REG 0x0018
/** @brief ST25DV IC revision register address. */
#define ST25DV_ICREV_REG 0x0020
/** @brief ST25DV I2C password register address. */
#define ST25DV_I2CPASSWD_REG 0x0900
/* Dynamic Registers i2c address */
/** @brief ST25DV GPO dynamic register address. */
#define ST25DV_GPO_DYN_REG 0x2000
/** @brief ST25DV Energy Harvesting control dynamic register address. */
#define ST25DV_EH_CTRL_DYN_REG 0x2002
/** @brief ST25DV RF management dynamic register address. */
#define ST25DV_RF_MNGT_DYN_REG 0x2003
/** @brief ST25DV I2C secure session opened dynamic register address. */
#define ST25DV_I2C_SSO_DYN_REG 0x2004
/** @brief ST25DV Interrupt status dynamic register address. */
#define ST25DV_ITSTS_DYN_REG 0x2005
/** @brief ST25DV Mailbox control dynamic register address. */
#define ST25DV_MB_CTRL_DYN_REG 0x2006
/** @brief ST25DV Mailbox message length dynamic register address. */
#define ST25DV_MBLEN_DYN_REG 0x2007
/** @brief ST25DV Mailbox buffer address. */
#define ST25DV_MAILBOX_RAM_REG 0x2008
/* Registers fields definitions */
/* MB_MODE */
#define ST25DV_MB_MODE_RW_SHIFT (0)
#define ST25DV_MB_MODE_RW_FIELD 0xFE
#define ST25DV_MB_MODE_RW_MASK 0x01
/* MB_LEN_Dyn */
#define ST25DV_MBLEN_DYN_MBLEN_SHIFT (0)
#define ST25DV_MBLEN_DYN_MBLEN_FIELD 0x00
#define ST25DV_MBLEN_DYN_MBLEN_MASK 0xFF
/* MB_CTRL_Dyn */
#define ST25DV_MB_CTRL_DYN_MBEN_SHIFT (0)
#define ST25DV_MB_CTRL_DYN_MBEN_FIELD 0xFE
#define ST25DV_MB_CTRL_DYN_MBEN_MASK 0x01
#define ST25DV_MB_CTRL_DYN_HOSTPUTMSG_SHIFT (1)
#define ST25DV_MB_CTRL_DYN_HOSTPUTMSG_FIELD 0xFD
#define ST25DV_MB_CTRL_DYN_HOSTPUTMSG_MASK 0x02
#define ST25DV_MB_CTRL_DYN_RFPUTMSG_SHIFT (2)
#define ST25DV_MB_CTRL_DYN_RFPUTMSG_FIELD 0xFB
#define ST25DV_MB_CTRL_DYN_RFPUTMSG_MASK 0x04
#define ST25DV_MB_CTRL_DYN_STRESERVED_SHIFT (3)
#define ST25DV_MB_CTRL_DYN_STRESERVED_FIELD 0xF7
#define ST25DV_MB_CTRL_DYN_STRESERVED_MASK 0x08
#define ST25DV_MB_CTRL_DYN_HOSTMISSMSG_SHIFT (4)
#define ST25DV_MB_CTRL_DYN_HOSTMISSMSG_FIELD 0xEF
#define ST25DV_MB_CTRL_DYN_HOSTMISSMSG_MASK 0x10
#define ST25DV_MB_CTRL_DYN_RFMISSMSG_SHIFT (5)
#define ST25DV_MB_CTRL_DYN_RFMISSMSG_FIELD 0xDF
#define ST25DV_MB_CTRL_DYN_RFMISSMSG_MASK 0x20
#define ST25DV_MB_CTRL_DYN_CURRENTMSG_SHIFT (6)
#define ST25DV_MB_CTRL_DYN_CURRENTMSG_FIELD 0x3F
#define ST25DV_MB_CTRL_DYN_CURRENTMSG_MASK 0xC0
/* MB_WDG */
#define ST25DV_MB_WDG_DELAY_SHIFT (0)
#define ST25DV_MB_WDG_DELAY_FIELD 0xF8
#define ST25DV_MB_WDG_DELAY_MASK 0x07
/* GPO */
#define ST25DV_GPO_RFUSERSTATE_SHIFT (0)
#define ST25DV_GPO_RFUSERSTATE_FIELD 0xFE
#define ST25DV_GPO_RFUSERSTATE_MASK 0x01
#define ST25DV_GPO_RFACTIVITY_SHIFT (1)
#define ST25DV_GPO_RFACTIVITY_FIELD 0xFD
#define ST25DV_GPO_RFACTIVITY_MASK 0x02
#define ST25DV_GPO_RFINTERRUPT_SHIFT (2)
#define ST25DV_GPO_RFINTERRUPT_FIELD 0xFB
#define ST25DV_GPO_RFINTERRUPT_MASK 0x04
#define ST25DV_GPO_FIELDCHANGE_SHIFT (3)
#define ST25DV_GPO_FIELDCHANGE_FIELD 0xF7
#define ST25DV_GPO_FIELDCHANGE_MASK 0x08
#define ST25DV_GPO_RFPUTMSG_SHIFT (4)
#define ST25DV_GPO_RFPUTMSG_FIELD 0xEF
#define ST25DV_GPO_RFPUTMSG_MASK 0x10
#define ST25DV_GPO_RFGETMSG_SHIFT (5)
#define ST25DV_GPO_RFGETMSG_FIELD 0xDF
#define ST25DV_GPO_RFGETMSG_MASK 0x20
#define ST25DV_GPO_RFWRITE_SHIFT (6)
#define ST25DV_GPO_RFWRITE_FIELD 0xBF
#define ST25DV_GPO_RFWRITE_MASK 0x40
#define ST25DV_GPO_ENABLE_SHIFT (7)
#define ST25DV_GPO_ENABLE_FIELD 0x7F
#define ST25DV_GPO_ENABLE_MASK 0x80
#define ST25DV_GPO_ALL_SHIFT (0)
#define ST25DV_GPO_ALL_MASK 0xFF
/* GPO_Dyn */
#define ST25DV_GPO_DYN_RFUSERSTATE_SHIFT (0)
#define ST25DV_GPO_DYN_RFUSERSTATE_FIELD 0xFE
#define ST25DV_GPO_DYN_RFUSERSTATE_MASK 0x01
#define ST25DV_GPO_DYN_RFACTIVITY_SHIFT (1)
#define ST25DV_GPO_DYN_RFACTIVITY_FIELD 0xFD
#define ST25DV_GPO_DYN_RFACTIVITY_MASK 0x02
#define ST25DV_GPO_DYN_RFINTERRUPT_SHIFT (2)
#define ST25DV_GPO_DYN_RFINTERRUPT_FIELD 0xFB
#define ST25DV_GPO_DYN_RFINTERRUPT_MASK 0x04
#define ST25DV_GPO_DYN_FIELDCHANGE_SHIFT (3)
#define ST25DV_GPO_DYN_FIELDCHANGE_FIELD 0xF7
#define ST25DV_GPO_DYN_FIELDCHANGE_MASK 0x08
#define ST25DV_GPO_DYN_RFPUTMSG_SHIFT (4)
#define ST25DV_GPO_DYN_RFPUTMSG_FIELD 0xEF
#define ST25DV_GPO_DYN_RFPUTMSG_MASK 0x10
#define ST25DV_GPO_DYN_RFGETMSG_SHIFT (5)
#define ST25DV_GPO_DYN_RFGETMSG_FIELD 0xDF
#define ST25DV_GPO_DYN_RFGETMSG_MASK 0x20
#define ST25DV_GPO_DYN_RFWRITE_SHIFT (6)
#define ST25DV_GPO_DYN_RFWRITE_FIELD 0xBF
#define ST25DV_GPO_DYN_RFWRITE_MASK 0x40
#define ST25DV_GPO_DYN_ENABLE_SHIFT (7)
#define ST25DV_GPO_DYN_ENABLE_FIELD 0x7F
#define ST25DV_GPO_DYN_ENABLE_MASK 0x80
#define ST25DV_GPO_DYN_ALL_SHIFT (0)
#define ST25DV_GPO_DYN_ALL_MASK 0xFF
/* ITTIME */
#define ST25DV_ITTIME_DELAY_SHIFT (0)
#define ST25DV_ITTIME_DELAY_FIELD 0xFC
#define ST25DV_ITTIME_DELAY_MASK 0x03
/* ITSTS_Dyn */
#define ST25DV_ITSTS_DYN_RFUSERSTATE_SHIFT (0)
#define ST25DV_ITSTS_DYN_RFUSERSTATE_FIELD 0xFE
#define ST25DV_ITSTS_DYN_RFUSERSTATE_MASK 0x01
#define ST25DV_ITSTS_DYN_RFACTIVITY_SHIFT (1)
#define ST25DV_ITSTS_DYN_RFACTIVITY_FIELD 0xFD
#define ST25DV_ITSTS_DYN_RFACTIVITY_MASK 0x02
#define ST25DV_ITSTS_DYN_RFINTERRUPT_SHIFT (2)
#define ST25DV_ITSTS_DYN_RFINTERRUPT_FIELD 0xFB
#define ST25DV_ITSTS_DYN_RFINTERRUPT_MASK 0x04
#define ST25DV_ITSTS_DYN_FIELDFALLING_SHIFT (3)
#define ST25DV_ITSTS_DYN_FIELDFALLING_FIELD 0xF7
#define ST25DV_ITSTS_DYN_FIELDFALLING_MASK 0x08
#define ST25DV_ITSTS_DYN_FIELDRISING_SHIFT (4)
#define ST25DV_ITSTS_DYN_FIELDRISING_FIELD 0xEF
#define ST25DV_ITSTS_DYN_FIELDRISING_MASK 0x10
#define ST25DV_ITSTS_DYN_RFPUTMSG_SHIFT (5)
#define ST25DV_ITSTS_DYN_RFPUTMSG_FIELD 0xDF
#define ST25DV_ITSTS_DYN_RFPUTMSG_MASK 0x20
#define ST25DV_ITSTS_DYN_RFGETMSG_SHIFT (6)
#define ST25DV_ITSTS_DYN_RFGETMSG_FIELD 0xBF
#define ST25DV_ITSTS_DYN_RFGETMSG_MASK 0x40
#define ST25DV_ITSTS_DYN_RFWRITE_SHIFT (7)
#define ST25DV_ITSTS_DYN_RFWRITE_FIELD 0x7F
#define ST25DV_ITSTS_DYN_RFWRITE_MASK 0x80
/* EH_MODE */
#define ST25DV_EH_MODE_SHIFT (0)
#define ST25DV_EH_MODE_FIELD 0xFE
#define ST25DV_EH_MODE_MASK 0x01
/* EH_CTRL_Dyn */
#define ST25DV_EH_CTRL_DYN_EH_EN_SHIFT (0)
#define ST25DV_EH_CTRL_DYN_EH_EN_FIELD 0xFE
#define ST25DV_EH_CTRL_DYN_EH_EN_MASK 0x01
#define ST25DV_EH_CTRL_DYN_EH_ON_SHIFT (1)
#define ST25DV_EH_CTRL_DYN_EH_ON_FIELD 0xFD
#define ST25DV_EH_CTRL_DYN_EH_ON_MASK 0x02
#define ST25DV_EH_CTRL_DYN_FIELD_ON_SHIFT (2)
#define ST25DV_EH_CTRL_DYN_FIELD_ON_FIELD 0xFB
#define ST25DV_EH_CTRL_DYN_FIELD_ON_MASK 0x04
#define ST25DV_EH_CTRL_DYN_VCC_ON_SHIFT (3)
#define ST25DV_EH_CTRL_DYN_VCC_ON_FIELD 0xF7
#define ST25DV_EH_CTRL_DYN_VCC_ON_MASK 0x08
#define ST25DV_EH_CTRL_DYN_ALL_SHIFT (0)
#define ST25DV_EH_CTRL_DYN_ALL_MASK 0x0F
/* RF_MNGT */
#define ST25DV_RF_MNGT_RFDIS_SHIFT (0)
#define ST25DV_RF_MNGT_RFDIS_FIELD 0xFE
#define ST25DV_RF_MNGT_RFDIS_MASK 0x01
#define ST25DV_RF_MNGT_RFSLEEP_SHIFT (1)
#define ST25DV_RF_MNGT_RFSLEEP_FIELD 0xFD
#define ST25DV_RF_MNGT_RFSLEEP_MASK 0x02
#define ST25DV_RF_MNGT_ALL_SHIFT (0)
#define ST25DV_RF_MNGT_ALL_MASK 0x03
/* RF_MNGT_Dyn */
#define ST25DV_RF_MNGT_DYN_RFDIS_SHIFT (0)
#define ST25DV_RF_MNGT_DYN_RFDIS_FIELD 0xFE
#define ST25DV_RF_MNGT_DYN_RFDIS_MASK 0x01
#define ST25DV_RF_MNGT_DYN_RFSLEEP_SHIFT (1)
#define ST25DV_RF_MNGT_DYN_RFSLEEP_FIELD 0xFD
#define ST25DV_RF_MNGT_DYN_RFSLEEP_MASK 0x02
#define ST25DV_RF_MNGT_DYN_ALL_SHIFT (0)
#define ST25DV_RF_MNGT_DYN_ALL_MASK 0x03
/* RFA1SS */
#define ST25DV_RFA1SS_PWDCTRL_SHIFT (0)
#define ST25DV_RFA1SS_PWDCTRL_FIELD 0xFC
#define ST25DV_RFA1SS_PWDCTRL_MASK 0x03
#define ST25DV_RFA1SS_RWPROT_SHIFT (2)
#define ST25DV_RFA1SS_RWPROT_FIELD 0xF3
#define ST25DV_RFA1SS_RWPROT_MASK 0x0C
#define ST25DV_RFA1SS_ALL_SHIFT (0)
#define ST25DV_RFA1SS_ALL_MASK 0x0F
/* RFA2SS */
#define ST25DV_RFA2SS_PWDCTRL_SHIFT (0)
#define ST25DV_RFA2SS_PWDCTRL_FIELD 0xFC
#define ST25DV_RFA2SS_PWDCTRL_MASK 0x03
#define ST25DV_RFA2SS_RWPROT_SHIFT (2)
#define ST25DV_RFA2SS_RWPROT_FIELD 0xF3
#define ST25DV_RFA2SS_RWPROT_MASK 0x0C
#define ST25DV_RFA2SS_ALL_SHIFT (0)
#define ST25DV_RFA2SS_ALL_MASK 0x0F
/* RFA3SS */
#define ST25DV_RFA3SS_PWDCTRL_SHIFT (0)
#define ST25DV_RFA3SS_PWDCTRL_FIELD 0xFC
#define ST25DV_RFA3SS_PWDCTRL_MASK 0x03
#define ST25DV_RFA3SS_RWPROT_SHIFT (2)
#define ST25DV_RFA3SS_RWPROT_FIELD 0xF3
#define ST25DV_RFA3SS_RWPROT_MASK 0x0C
#define ST25DV_RFA3SS_ALL_SHIFT (0)
#define ST25DV_RFA3SS_ALL_MASK 0x0F
/* RFA4SS */
#define ST25DV_RFA4SS_PWDCTRL_SHIFT (0)
#define ST25DV_RFA4SS_PWDCTRL_FIELD 0xFC
#define ST25DV_RFA4SS_PWDCTRL_MASK 0x03
#define ST25DV_RFA4SS_RWPROT_SHIFT (2)
#define ST25DV_RFA4SS_RWPROT_FIELD 0xF3
#define ST25DV_RFA4SS_RWPROT_MASK 0x0C
#define ST25DV_RFA4SS_ALL_SHIFT (0)
#define ST25DV_RFA4SS_ALL_MASK 0x0F
/* I2CSS */
#define ST25DV_I2CSS_PZ1_SHIFT (0)
#define ST25DV_I2CSS_PZ1_FIELD 0xFC
#define ST25DV_I2CSS_PZ1_MASK 0x03
#define ST25DV_I2CSS_PZ2_SHIFT (2)
#define ST25DV_I2CSS_PZ2_FIELD 0xF3
#define ST25DV_I2CSS_PZ2_MASK 0x0C
#define ST25DV_I2CSS_PZ3_SHIFT (4)
#define ST25DV_I2CSS_PZ3_FIELD 0xCF
#define ST25DV_I2CSS_PZ3_MASK 0x30
#define ST25DV_I2CSS_PZ4_SHIFT (6)
#define ST25DV_I2CSS_PZ4_FIELD 0x3F
#define ST25DV_I2CSS_PZ4_MASK 0xC0
/* LOCKCCFILE */
#define ST25DV_LOCKCCFILE_BLCK0_SHIFT (0)
#define ST25DV_LOCKCCFILE_BLCK0_FIELD 0xFE
#define ST25DV_LOCKCCFILE_BLCK0_MASK 0x01
#define ST25DV_LOCKCCFILE_BLCK1_SHIFT (1)
#define ST25DV_LOCKCCFILE_BLCK1_FIELD 0xFD
#define ST25DV_LOCKCCFILE_BLCK1_MASK 0x02
#define ST25DV_LOCKCCFILE_ALL_SHIFT (0)
#define ST25DV_LOCKCCFILE_ALL_MASK 0x03
/* LOCKCFG */
#define ST25DV_LOCKCFG_B0_SHIFT (0)
#define ST25DV_LOCKCFG_B0_FIELD 0xFE
#define ST25DV_LOCKCFG_B0_MASK 0x01
/* I2C_SSO_Dyn */
#define ST25DV_I2C_SSO_DYN_I2CSSO_SHIFT (0)
#define ST25DV_I2C_SSO_DYN_I2CSSO_FIELD 0xFE
#define ST25DV_I2C_SSO_DYN_I2CSSO_MASK 0x01
/**
* @brief ST25DV status enumerator definition.
*/
#define ST25DV_OK (0)
#define ST25DV_ERROR (-1)
#define ST25DV_BUSY (-2)
#define ST25DV_TIMEOUT (-3)
#define ST25DV_NACK (-102)
typedef int32_t (*ST25DV_WriteReg_Func)(void *, uint16_t, const uint8_t*, uint16_t);
typedef int32_t (*ST25DV_ReadReg_Func) (void *, uint16_t, uint8_t*, uint16_t);
typedef struct {
ST25DV_WriteReg_Func WriteReg;
ST25DV_ReadReg_Func ReadReg;
void *handle;
} st25dv_ctx_t;
int32_t st25dv_get_icref (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_enda1 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_enda1 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_enda2 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_enda2 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_enda3 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_enda3 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_dsfid (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_afi (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mem_size_msb (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_blk_size (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mem_size_lsb (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_icrev (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_uid (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_i2cpasswd (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_i2cpasswd (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_lockdsfid (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_lockafi (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_mode_rw (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_mb_mode_rw (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_mblen_dyn_mblen (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_ctrl_dyn_mben (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_mb_ctrl_dyn_mben (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_mb_ctrl_dyn_hostputmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_ctrl_dyn_rfputmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_ctrl_dyn_streserved (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_ctrl_dyn_hostmissmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_ctrl_dyn_rfmissmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_ctrl_dyn_currentmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_ctrl_dyn_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_mb_wdg_delay (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_mb_wdg_delay (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_rfuserstate (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_rfuserstate (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_rfactivity (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_rfactivity (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_rfinterrupt (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_rfinterrupt (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_fieldchange (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_fieldchange (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_rfputmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_rfputmsg (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_rfgetmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_rfgetmsg (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_rfwrite (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_rfwrite (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_enable (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_enable (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_rfuserstate (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_rfuserstate (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_rfactivity (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_rfactivity (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_rfinterrupt (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_rfinterrupt (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_fieldchange (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_fieldchang (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_rfputmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_rfputmsg (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_rfgetmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_rfgetmsg (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_rfwrite (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_rfwrite (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_enable (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_enable (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_gpo_dyn_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_gpo_dyn_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_ittime_delay (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_ittime_delay (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_itsts_dyn_rfuserstate (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_itsts_dyn_rfactivity (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_itsts_dyn_rfinterrupt (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_itsts_dyn_fieldfalling (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_itsts_dyn_fieldrising (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_itsts_dyn_rfputmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_itsts_dyn_rfgetmsg (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_itsts_dyn_rfwrite (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_itsts_dyn_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_eh_mode (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_eh_mode (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_eh_ctrl_dyn_eh_en (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_eh_ctrl_dyn_eh_en (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_eh_ctrl_dyn_eh_on (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_eh_ctrl_dyn_field_on (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_eh_ctrl_dyn_vcc_on (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_eh_ctrl_dyn_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_get_rf_mngt_rfdis (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rf_mngt_rfdis (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rf_mngt_rfsleep (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rf_mngt_rfsleep (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rf_mngt_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rf_mngt_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rf_mngt_dyn_rfdis (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rf_mngt_dyn_rfdis (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rf_mngt_dyn_rfsleep (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rf_mngt_dyn_rfsleep (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rf_mngt_dyn_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rf_mngt_dyn_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa1ss_pwdctrl (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa1ss_pwdctrl (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa1ss_rwprot (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa1ss_rwprot (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa1ss_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa1ss_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa2ss_pwdctrl (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa2ss_pwdctrl (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa2ss_rwprot (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa2ss_rwprot (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa2ss_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa2ss_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa3ss_pwdctrl (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa3ss_pwdctrl (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa3ss_rwprot (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa3ss_rwprot (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa3ss_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa3ss_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa4ss_pwdctrl (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa4ss_pwdctrl (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa4ss_rwprot (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa4ss_rwprot (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_rfa4ss_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_rfa4ss_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_i2css_pz1 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_i2css_pz1 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_i2css_pz2 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_i2css_pz2 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_i2css_pz3 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_i2css_pz3 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_i2css_pz4 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_i2css_pz4 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_i2css_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_i2css_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_lockccfile_blck0 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_lockccfile_blck0 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_lockccfile_blck1 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_lockccfile_blck1 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_lockccfile_all (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_lockccfile_all (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_lockcfg_b0 (st25dv_ctx_t *ctx, uint8_t *value);
int32_t st25dv_set_lockcfg_b0 (st25dv_ctx_t *ctx, const uint8_t *value);
int32_t st25dv_get_i2c_sso_dyn_i2csso (st25dv_ctx_t *ctx, uint8_t *value);
#endif