Hi Kshitiz,

+Ilias Apalodimas


On Thu, 8 Sept 2022 at 02:59, Kshitiz Varshney <kshitiz.varsh...@nxp.com> wrote:
>
> From: Kshitiz <kshitiz.varsh...@nxp.com>
>
> This commit manually binds dcp_rng device driver and initalizes it inside
> arch_misc_init() function.
>
> Signed-off-by: Kshitiz Varshney <kshitiz.varsh...@nxp.com>
> Reviewed-by: Ye Li <ye...@nxp.com>
> ---
>  arch/arm/mach-imx/mx6/soc.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/arch/arm/mach-imx/mx6/soc.c b/arch/arm/mach-imx/mx6/soc.c
> index 3e538754d9..9bf16119c2 100644
> --- a/arch/arm/mach-imx/mx6/soc.c
> +++ b/arch/arm/mach-imx/mx6/soc.c
> @@ -31,6 +31,8 @@
>  #include <hang.h>
>  #include <cpu_func.h>
>  #include <env.h>
> +#include<dm/device-internal.h>
> +#include<dm/lists.h>
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> @@ -1005,6 +1007,20 @@ int arch_misc_init(void)
>                 if (ret)
>                         printf("Failed to initialize caam_jr: %d\n", ret);
>         }
> +
> +       if (IS_ENABLED(CONFIG_FSL_DCP_RNG)) {
> +               struct udevice *dev;
> +               int ret;
> +
> +               ret = device_bind_driver(NULL, "dcp_rng", "dcp_rng", NULL);

This needs to be in the device tree. This it the kind of madness I was
warning about with Ilias, so I have copied him here.

We need to stop manually binding devices when they should be in the DT.

> +               if (ret)
> +                       printf("Couldn't bind dcp rng driver (%d)\n", ret);
> +
> +               ret = uclass_get_device_by_driver(UCLASS_RNG, 
> DM_DRIVER_GET(dcp_rng), &dev);
> +               if (ret)
> +                       printf("Failed to initialize dcp rng: %d\n", ret);
> +       }
> +
>         setup_serial_number();
>         return 0;
>  }
> --
> 2.25.1
>

Regards,
SImon

Reply via email to