Make sure docs are updated / settings_md (push) Canceled after 0s
Build firmware / test (push) Canceled after 0s
Build firmware / build-SITL-Windows (push) Canceled after 0s
Build firmware / build-SITL-Mac (push) Canceled after 0s
Build firmware / build-SITL-Linux (push) Canceled after 0s
Build firmware / build-SITL-Linux-arm64 (push) Canceled after 0s
Build firmware / upload-artifacts (push) Canceled after 0s
Build firmware / build-single-target (push) Canceled after 0s
Build firmware / build (9) (push) Canceled after 0s
Build firmware / build (8) (push) Canceled after 0s
Build firmware / build (7) (push) Canceled after 0s
Build firmware / build (6) (push) Canceled after 0s
Build firmware / build (5) (push) Canceled after 0s
Build firmware / build (4) (push) Canceled after 0s
Build firmware / build (3) (push) Canceled after 0s
Build firmware / build (2) (push) Canceled after 0s
Build firmware / build (14) (push) Canceled after 0s
Build firmware / build (13) (push) Canceled after 0s
Build firmware / build (12) (push) Canceled after 0s
Build firmware / build (11) (push) Canceled after 0s
Build firmware / build (10) (push) Canceled after 0s
Build firmware / build (1) (push) Canceled after 0s
Build firmware / build (0) (push) Canceled after 0s
Build firmware / detect (push) Canceled after 0s
Build pre-release / build (push) Canceled after 0s
Build pre-release / Release (push) Canceled after 0s
1077 lines
27 KiB
C
1077 lines
27 KiB
C
/**
|
|
******************************************************************************
|
|
* @file ft5336_reg.c
|
|
* @author MCD Application Team
|
|
* @brief This file provides unitary register function to control the ft5336 Touch
|
|
*
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* <h2><center>© Copyright (c) 2015 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
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "ft5336_reg.h"
|
|
|
|
/** @addtogroup BSP
|
|
* @{
|
|
*/
|
|
|
|
/** @addtogroup Component
|
|
* @{
|
|
*/
|
|
|
|
/** @defgroup FT5336 FT5336
|
|
* @{
|
|
*/
|
|
/**
|
|
* @brief Read FT5336 registers.
|
|
* @param ctx Component context
|
|
* @param reg Component reg to read from
|
|
* @param pdata pointer to data to be read
|
|
* @param length Length of data to read
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_read_reg(ft5336_ctx_t *ctx, uint8_t reg, uint8_t* pdata, uint16_t length)
|
|
{
|
|
return ctx->ReadReg(ctx->handle, reg, pdata, length);
|
|
}
|
|
|
|
/**
|
|
* @brief Write FT5336 registers.
|
|
* @param ctx Component context
|
|
* @param reg Component reg to write to
|
|
* @param pdata pointer to data to be written
|
|
* @param length Length of data to write
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_write_reg(ft5336_ctx_t *ctx, uint8_t reg, uint8_t *pdata, uint16_t length)
|
|
{
|
|
return ctx->WriteReg(ctx->handle, reg, pdata, length);
|
|
}
|
|
|
|
/**
|
|
* @brief Set FT5336 working mode
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_DEV_MODE_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_dev_mode_w(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
int32_t ret;
|
|
uint8_t tmp;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_DEV_MODE_REG, &tmp, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
tmp &= ~FT5336_DEV_MODE_BIT_MASK;
|
|
tmp |= value << FT5336_DEV_MODE_BIT_POSITION;
|
|
|
|
ret = ft5336_write_reg(ctx, FT5336_DEV_MODE_REG, &tmp, 1);
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 working mode
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_DEV_MODE_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_dev_mode_r(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_DEV_MODE_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_DEV_MODE_BIT_MASK;
|
|
*value = *value >> FT5336_DEV_MODE_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 gesture ID
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_GEST_ID_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_gest_id(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_GEST_ID_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Touch Data Status
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of Touch Data Status register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_td_status(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_TD_STAT_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_TD_STATUS_BIT_MASK;
|
|
*value = *value >> FT5336_TD_STATUS_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 First X Event Flag
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P1_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p1_xh_ef(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P1_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P1_XH_EF_BIT_MASK;
|
|
*value = *value >> FT5336_P1_XH_EF_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 First X High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P1_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p1_xh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P1_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P1_XH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P1_XH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 First X Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P1_XL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p1_xl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P1_XL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 First Touch ID
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P1_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p1_yh_tid(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P1_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P1_YH_TID_BIT_MASK;
|
|
*value = *value >> FT5336_P1_YH_TID_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 First Y High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P1_YH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p1_yh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P1_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P1_YH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P1_YH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 First Y Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P1_YL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p1_yl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P1_YL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 First Touch pressure
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P1_WEIGHT_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p1_weight(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P1_WEIGHT_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 First Touch area
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P1_MISC_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p1_misc(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P1_MISC_REG, (uint8_t *)value, 1);
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P1_MISC_BIT_MASK;
|
|
*value = *value >> FT5336_P1_MISC_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Second X Event Flag
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P2_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p2_xh_ef(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P2_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P2_XH_EF_BIT_MASK;
|
|
*value = *value >> FT5336_P2_XH_EF_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Second X High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P2_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p2_xh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P2_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P2_XH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P2_XH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Second X Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P2_XL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p2_xl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P2_XL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Second Touch ID
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P2_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p2_yh_tid(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P2_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P2_YH_TID_BIT_MASK;
|
|
*value = *value >> FT5336_P2_YH_TID_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Second Y High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P2_YH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p2_yh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P2_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P2_YH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P2_YH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Second Y Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P2_YL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p2_yl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P2_YL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Second Touch pressure
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P2_WEIGHT_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p2_weight(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P2_WEIGHT_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Second Touch area
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P2_MISC_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p2_misc(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P2_MISC_REG, (uint8_t *)value, 1);
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P2_MISC_BIT_MASK;
|
|
*value = *value >> FT5336_P2_MISC_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Third X Event Flag
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P3_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p3_xh_ef(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P3_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P3_XH_EF_BIT_MASK;
|
|
*value = *value >> FT5336_P3_XH_EF_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Third X High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P3_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p3_xh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P3_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P3_XH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P3_XH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Third X Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P3_XL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p3_xl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P3_XL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Third Touch ID
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P3_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p3_yh_tid(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P3_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P3_YH_TID_BIT_MASK;
|
|
*value = *value >> FT5336_P3_YH_TID_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Third Y High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P3_YH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p3_yh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P3_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P3_YH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P3_YH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Third Y Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P3_YL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p3_yl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P3_YL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Third Touch pressure
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P3_WEIGHT_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p3_weight(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P3_WEIGHT_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Third Touch area
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P3_MISC_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p3_misc(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P3_MISC_REG, (uint8_t *)value, 1);
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P3_MISC_BIT_MASK;
|
|
*value = *value >> FT5336_P3_MISC_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fourth X Event Flag
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P4_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p4_xh_ef(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P4_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P4_XH_EF_BIT_MASK;
|
|
*value = *value >> FT5336_P4_XH_EF_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fourth X High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P4_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p4_xh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P4_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P4_XH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P4_XH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fourth X Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P4_XL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p4_xl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P4_XL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fourth Touch ID
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P4_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p4_yh_tid(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P4_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P4_YH_TID_BIT_MASK;
|
|
*value = *value >> FT5336_P4_YH_TID_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fourth Y High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P4_YH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p4_yh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P4_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P4_YH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P4_YH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fourth Y Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P4_YL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p4_yl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P4_YL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fourth Touch pressure
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P4_WEIGHT_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p4_weight(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P4_WEIGHT_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fourth Touch area
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P4_MISC_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p4_misc(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P4_MISC_REG, (uint8_t *)value, 1);
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P4_MISC_BIT_MASK;
|
|
*value = *value >> FT5336_P4_MISC_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fifth X Event Flag
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P5_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p5_xh_ef(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P5_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P5_XH_EF_BIT_MASK;
|
|
*value = *value >> FT5336_P5_XH_EF_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fifth X High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P5_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p5_xh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P5_XH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P5_XH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P5_XH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fifth X Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P5_XL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p5_xl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P5_XL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fifth Touch ID
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P5_XH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p5_yh_tid(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P5_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P5_YH_TID_BIT_MASK;
|
|
*value = *value >> FT5336_P5_YH_TID_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fifth Y High Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P5_YH_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p5_yh_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P5_YH_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P5_YH_TP_BIT_MASK;
|
|
*value = *value >> FT5336_P5_YH_TP_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fifth Y Low Touch Position
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P5_YL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p5_yl_tp(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P5_YL_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fifth Touch pressure
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P5_WEIGHT_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p5_weight(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_P5_WEIGHT_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Get FT5336 Fifth Touch area
|
|
* @param ctx Component context
|
|
* @param value pointer to the value of FT5336_P5_MISC_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_p5_misc(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_P5_MISC_REG, (uint8_t *)value, 1);
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_P5_MISC_BIT_MASK;
|
|
*value = *value >> FT5336_P5_MISC_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Set FT5336 Threshold for touch detection
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_TH_GROUP_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_th_group(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_TH_GROUP_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set FT5336 Filter function coefficient
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_TH_DIFF_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_th_diff(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_TH_DIFF_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Control the Switch between Active and Monitoring Mode
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_CTRL_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_ctrl(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_CTRL_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set the time period of switching from Active mode to Monitor
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_TIMEENTERMONITOR_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_time_enter_monitor(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_TIMEENTERMONITOR_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set rate in Active mode
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_PERIODACTIVE_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_period_active(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_PERIODACTIVE_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set rate in Monitor mode
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_PERIODMONITOR_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_period_monitor(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_PERIODMONITOR_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set the value of the minimum allowed angle while Rotating
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_RADIAN_VALUE_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_radian_value(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_RADIAN_VALUE_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set Maximum offset while Moving Left and Moving Right gesture
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_OFFSET_LR_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_offset_left_right(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_OFFSET_LR_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set Maximum offset while Moving Up and Moving Down gesture
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_OFFSET_UD_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_offset_up_down(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_OFFSET_UD_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set Minimum distance while Moving Left and Moving Right gesture
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_DISTANCE_LR_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_disatnce_left_right(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_DISTANCE_LR_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set Minimum distance while Moving Up and Moving Down gesture
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_DISTANCE_UD_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_distance_up_down(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_DISTANCE_UD_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Set Maximum distance while Zoom In and Zoom Out gesture
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_DISTANCE_ZOOM_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_distance_zoom(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_DISTANCE_ZOOM_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Read High 8-bit of LIB Version info
|
|
* @param ctx Component context
|
|
* @param value Pointer to FT5336_LIB_VER_H_REG register value
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_lib_ver_high(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_LIB_VER_H_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Read Low 8-bit of LIB Version info
|
|
* @param ctx Component context
|
|
* @param value Pointer to FT5336_LIB_VER_L_REG register value
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_lib_ver_low(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_LIB_VER_L_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Read status of cipher register
|
|
* @param ctx Component context
|
|
* @param value Pointer to FT5336_CIPHER_REG register value
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_cipher(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_CIPHER_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Select Interrupt (polling or trigger) mode
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_GMODE_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_g_mode(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_GMODE_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Select Current power mode
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_PWR_MODE_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_pwr_mode(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_PWR_MODE_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Read the Firmware Version
|
|
* @param ctx Component context
|
|
* @param value Pointer to FT5336_FIRMID_REG register value
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_firm_id(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_FIRMID_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Read the FocalTech's Panel ID
|
|
* @param ctx Component context
|
|
* @param value Pointer to FT5336_CHIP_ID_REG register value
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_chip_id(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
int32_t ret;
|
|
|
|
ret = ft5336_read_reg(ctx, FT5336_CHIP_ID_REG, (uint8_t *)value, 1);
|
|
|
|
if(ret == 0)
|
|
{
|
|
*value &= FT5336_CHIP_ID_BIT_MASK;
|
|
*value = *value >> FT5336_CHIP_ID_BIT_POSITION;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* @brief Read the Release code version
|
|
* @param ctx Component context
|
|
* @param value Pointer to FT5336_RELEASE_CODE_ID_REG register value
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_release_code_id(ft5336_ctx_t *ctx, uint8_t *value)
|
|
{
|
|
return ft5336_read_reg(ctx, FT5336_RELEASE_CODE_ID_REG, (uint8_t *)value, 1);
|
|
}
|
|
|
|
/**
|
|
* @brief Select Current Operating mode
|
|
* @param ctx Component context
|
|
* @param value Value to write to FT5336_STATE_REG register
|
|
* @retval Component status
|
|
*/
|
|
int32_t ft5336_state(ft5336_ctx_t *ctx, uint8_t value)
|
|
{
|
|
return ft5336_write_reg(ctx, FT5336_STATE_REG, &value, 1);
|
|
}
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|