[PATCH 03/16] arm: stm32mp: move the get_otp helper function in bsec
Patrice CHOTARD
patrice.chotard at foss.st.com
Fri May 20 08:32:30 CEST 2022
HI Patrick
On 5/6/22 16:06, Patrick Delaunay wrote:
> As the get_otp() helper function in bsec are common for all STM32MP family,
> move this function in bsec driver
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
>
> arch/arm/mach-stm32mp/bsec.c | 17 +++++++++++++++++
> arch/arm/mach-stm32mp/cpu.c | 17 -----------------
> arch/arm/mach-stm32mp/include/mach/sys_proto.h | 3 +++
> 3 files changed, 20 insertions(+), 17 deletions(-)
>
> diff --git a/arch/arm/mach-stm32mp/bsec.c b/arch/arm/mach-stm32mp/bsec.c
> index 506caa0a31..c00130b08b 100644
> --- a/arch/arm/mach-stm32mp/bsec.c
> +++ b/arch/arm/mach-stm32mp/bsec.c
> @@ -632,3 +632,20 @@ bool bsec_dbgswenable(void)
>
> return false;
> }
> +
> +u32 get_otp(int index, int shift, int mask)
> +{
> + int ret;
> + struct udevice *dev;
> + u32 otp = 0;
> +
> + ret = uclass_get_device_by_driver(UCLASS_MISC,
> + DM_DRIVER_GET(stm32mp_bsec),
> + &dev);
> +
> + if (!ret)
> + ret = misc_read(dev, STM32_BSEC_SHADOW(index),
> + &otp, sizeof(otp));
> +
> + return (otp >> shift) & mask;
> +}
> diff --git a/arch/arm/mach-stm32mp/cpu.c b/arch/arm/mach-stm32mp/cpu.c
> index 0ad5f307db..6f44c75515 100644
> --- a/arch/arm/mach-stm32mp/cpu.c
> +++ b/arch/arm/mach-stm32mp/cpu.c
> @@ -349,23 +349,6 @@ u32 get_cpu_rev(void)
> return (read_idc() & DBGMCU_IDC_REV_ID_MASK) >> DBGMCU_IDC_REV_ID_SHIFT;
> }
>
> -static u32 get_otp(int index, int shift, int mask)
> -{
> - int ret;
> - struct udevice *dev;
> - u32 otp = 0;
> -
> - ret = uclass_get_device_by_driver(UCLASS_MISC,
> - DM_DRIVER_GET(stm32mp_bsec),
> - &dev);
> -
> - if (!ret)
> - ret = misc_read(dev, STM32_BSEC_SHADOW(index),
> - &otp, sizeof(otp));
> -
> - return (otp >> shift) & mask;
> -}
> -
> /* Get Device Part Number (RPN) from OTP */
> static u32 get_cpu_rpn(void)
> {
> diff --git a/arch/arm/mach-stm32mp/include/mach/sys_proto.h b/arch/arm/mach-stm32mp/include/mach/sys_proto.h
> index b91f98eb45..dc98f0c5a4 100644
> --- a/arch/arm/mach-stm32mp/include/mach/sys_proto.h
> +++ b/arch/arm/mach-stm32mp/include/mach/sys_proto.h
> @@ -52,3 +52,6 @@ int setup_mac_address(void);
>
> /* board power management : configure vddcore according OPP */
> void board_vddcore_init(u32 voltage_mv);
> +
> +/* helper function: read data from OTP */
> +u32 get_otp(int index, int shift, int mask);
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice
More information about the U-Boot
mailing list