summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Gautier <yann.gautier@st.com>2026-05-22 16:05:47 +0200
committerYann Gautier <yann.gautier@st.com>2026-06-29 15:31:56 +0200
commitcc050178952812ffa541a232f775b74b4c2b56d5 (patch)
tree84b186f59e98fee2946a45246936faf429c05c5d
parentf3fa63baf64d7e8097df22f6b69d8c7b2e572c24 (diff)
downloadarm-trusted-firmware-cc050178952812ffa541a232f775b74b4c2b56d5.tar.gz
arm-trusted-firmware-cc050178952812ffa541a232f775b74b4c2b56d5.zip
fix(st-pmic): store regulator ID as an uint8_t
The number of supported STPMIC2 regulators is 22, it is then less than 255 and can then be stored in an uint8_t field in the regul_handle_s structure. And the STPMIC2 low level functions API always awaits the ID as an uint8_t. This saves 88 bytes of data. This also corrects the following warning: drivers/st/pmic/stm32mp_pmic2.c:315:57: warning: conversion from 'uint32_t' {aka 'unsigned int'} to 'uint8_t' {aka 'unsigned char'} may change value [-Wconversion] 315 | ret = stpmic2_regulator_set_prop(pmic2, id, STPMIC2_PULL_DOWN, 1U); | ^~ Change-Id: I859a1183f1f561bbc3b1a103267bf6fe62be6a60 Signed-off-by: Yann Gautier <yann.gautier@st.com>
-rw-r--r--drivers/st/pmic/stm32mp_pmic2.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/st/pmic/stm32mp_pmic2.c b/drivers/st/pmic/stm32mp_pmic2.c
index 610db079b..5f6f9070d 100644
--- a/drivers/st/pmic/stm32mp_pmic2.c
+++ b/drivers/st/pmic/stm32mp_pmic2.c
@@ -23,7 +23,7 @@
#define PMIC_NODE_NOT_FOUND 1
struct regul_handle_s {
- const uint32_t id;
+ const uint8_t id;
uint16_t bypass_mv;
};
@@ -305,26 +305,25 @@ static int pmic2_list_voltages(const struct regul_description *desc,
static int pmic2_set_flag(const struct regul_description *desc, uint16_t flag)
{
struct regul_handle_s *regul = (struct regul_handle_s *)desc->driver_data;
- uint32_t id = regul->id;
int ret = -EPERM;
VERBOSE("%s: set_flag 0x%x\n", desc->node_name, flag);
switch (flag) {
case REGUL_PULL_DOWN:
- ret = stpmic2_regulator_set_prop(pmic2, id, STPMIC2_PULL_DOWN, 1U);
+ ret = stpmic2_regulator_set_prop(pmic2, regul->id, STPMIC2_PULL_DOWN, 1U);
break;
case REGUL_OCP:
- ret = stpmic2_regulator_set_prop(pmic2, id, STPMIC2_OCP, 1U);
+ ret = stpmic2_regulator_set_prop(pmic2, regul->id, STPMIC2_OCP, 1U);
break;
case REGUL_SINK_SOURCE:
- ret = stpmic2_regulator_set_prop(pmic2, id, STPMIC2_SINK_SOURCE, 1U);
+ ret = stpmic2_regulator_set_prop(pmic2, regul->id, STPMIC2_SINK_SOURCE, 1U);
break;
case REGUL_ENABLE_BYPASS:
- ret = stpmic2_regulator_set_prop(pmic2, id, STPMIC2_BYPASS, 1U);
+ ret = stpmic2_regulator_set_prop(pmic2, regul->id, STPMIC2_BYPASS, 1U);
break;
case REGUL_MASK_RESET:
- ret = stpmic2_regulator_set_prop(pmic2, id, STPMIC2_MASK_RESET, 1U);
+ ret = stpmic2_regulator_set_prop(pmic2, regul->id, STPMIC2_MASK_RESET, 1U);
break;
default:
ERROR("Invalid flag %u", flag);