|
@@ -268,6 +268,33 @@ struct omap_hwmod am33xx_sha0_hwmod = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+/* rng */
|
|
|
+static struct omap_hwmod_class_sysconfig am33xx_rng_sysc = {
|
|
|
+ .rev_offs = 0x1fe0,
|
|
|
+ .sysc_offs = 0x1fe4,
|
|
|
+ .sysc_flags = SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE,
|
|
|
+ .idlemodes = SIDLE_FORCE | SIDLE_NO,
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type1,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_class am33xx_rng_hwmod_class = {
|
|
|
+ .name = "rng",
|
|
|
+ .sysc = &am33xx_rng_sysc,
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod am33xx_rng_hwmod = {
|
|
|
+ .name = "rng",
|
|
|
+ .class = &am33xx_rng_hwmod_class,
|
|
|
+ .clkdm_name = "l4ls_clkdm",
|
|
|
+ .flags = HWMOD_SWSUP_SIDLE,
|
|
|
+ .main_clk = "rng_fck",
|
|
|
+ .prcm = {
|
|
|
+ .omap4 = {
|
|
|
+ .modulemode = MODULEMODE_SWCTRL,
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
/* ocmcram */
|
|
|
static struct omap_hwmod_class am33xx_ocmcram_hwmod_class = {
|
|
|
.name = "ocmcram",
|
|
@@ -1315,6 +1342,7 @@ static void omap_hwmod_am33xx_clkctrl(void)
|
|
|
CLKCTRL(am33xx_ocmcram_hwmod , AM33XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET);
|
|
|
CLKCTRL(am33xx_sha0_hwmod , AM33XX_CM_PER_SHA0_CLKCTRL_OFFSET);
|
|
|
CLKCTRL(am33xx_aes0_hwmod , AM33XX_CM_PER_AES0_CLKCTRL_OFFSET);
|
|
|
+ CLKCTRL(am33xx_rng_hwmod, AM33XX_CM_PER_RNG_CLKCTRL_OFFSET);
|
|
|
}
|
|
|
|
|
|
static void omap_hwmod_am33xx_rst(void)
|
|
@@ -1388,6 +1416,7 @@ static void omap_hwmod_am43xx_clkctrl(void)
|
|
|
CLKCTRL(am33xx_ocmcram_hwmod , AM43XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET);
|
|
|
CLKCTRL(am33xx_sha0_hwmod , AM43XX_CM_PER_SHA0_CLKCTRL_OFFSET);
|
|
|
CLKCTRL(am33xx_aes0_hwmod , AM43XX_CM_PER_AES0_CLKCTRL_OFFSET);
|
|
|
+ CLKCTRL(am33xx_rng_hwmod, AM43XX_CM_PER_RNG_CLKCTRL_OFFSET);
|
|
|
}
|
|
|
|
|
|
static void omap_hwmod_am43xx_rst(void)
|