[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