On 9/8/22 20:18, Simon Glass wrote:
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>
CC the maintainer of RNG Sughosh Ganu <sughosh.g...@linaro.org>
---
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