Skip to content

Commit

Permalink
arch/arm64/src/imx9/imx9_pmic: add RESET_CTRL register interface
Browse files Browse the repository at this point in the history
Signed-off-by: Tero Salminen <[email protected]>
  • Loading branch information
t-salminen committed Jan 31, 2025
1 parent 3d167bf commit 05edede
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 0 deletions.
32 changes: 32 additions & 0 deletions arch/arm64/src/imx9/imx9_pmic.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
#define PCA9451A_I2C_ADDR 0x25
#define REG_SW_RST 0x06
#define REG_POWERON_STAT 0x05
#define REG_RESET_CTRL 0x08
#define COLD_RESET 0x64
#define WARM_RESET 0x35

Expand Down Expand Up @@ -174,3 +175,34 @@ int imx9_pmic_get_reset_reason(uint8_t *value)
return imx9_pmic_reg_read(REG_POWERON_STAT, value);
}

/****************************************************************************
* Name: imx9_pmic_get_reset_ctrl
*
* Description:
* Read reset control register value
*
****************************************************************************/

int imx9_pmic_get_reset_ctrl(uint8_t *value)
{
return imx9_pmic_reg_read(REG_RESET_CTRL, value);
}

/****************************************************************************
* Name: imx9_pmic_set_reset_ctrl
*
* Description:
* Set reset control register value
*
* Input Parameters:
* Register value
*
* Returned Value:
* None
*
****************************************************************************/

int imx9_pmic_set_reset_ctrl(uint8_t val)
{
return imx9_pmic_reg_write(REG_RESET_CTRL, val);
}
38 changes: 38 additions & 0 deletions arch/arm64/src/imx9/imx9_pmic.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ extern "C"
#define EXTERN extern
#endif

#define IMX9_PMIC_RESET_CTRL_DEFAULT 0x21

/* WDOG_B_CFG [7:6]: 11b (Cold Reset) */

#define IMX9_PMIC_RESET_CTRL_WDOG_COLD_RESET_MASK 0xC0

/****************************************************************************
* Name: imx9_pmic_get_reset_reason
*
Expand Down Expand Up @@ -76,6 +82,38 @@ int imx9_pmic_get_reset_reason(uint8_t *value);

int imx9_pmic_reset(void);

/****************************************************************************
* Name: imx9_pmic_get_reset_ctrl
*
* Description:
* Read reset control register value
*
* Input Parameters:
* Pointer to reset reason value
*
* Returned Value:
* Zero on success or error code
*
****************************************************************************/

int imx9_pmic_get_reset_ctrl(uint8_t *value);

/****************************************************************************
* Name: imx9_pmic_set_reset_ctrl
*
* Description:
* Set reset control register value
*
* Input Parameters:
* Register value
*
* Returned Value:
* Zero on success or error code
*
****************************************************************************/

int imx9_pmic_set_reset_ctrl(uint8_t val);

#undef EXTERN
#if defined(__cplusplus)
}
Expand Down

0 comments on commit 05edede

Please sign in to comment.