diff options
| author | Yann Gautier <yann.gautier@st.com> | 2026-05-22 16:05:47 +0200 |
|---|---|---|
| committer | Yann Gautier <yann.gautier@st.com> | 2026-06-29 15:31:56 +0200 |
| commit | cc050178952812ffa541a232f775b74b4c2b56d5 (patch) | |
| tree | 84b186f59e98fee2946a45246936faf429c05c5d | |
| parent | f3fa63baf64d7e8097df22f6b69d8c7b2e572c24 (diff) | |
| download | arm-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.c | 13 |
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); |
