ARM: AMx3xx: hwmod: Add data for RNG
Hardware random number generator is present in both AM33xx and AM43xx SoC's. So moving the hwmod data to common data. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Tero Kristo <t-kristo@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
d7e4c12856
commit
d88d30e7b5
|
@ -68,6 +68,7 @@ extern struct omap_hwmod_ocp_if am33xx_l4_ls__uart6;
|
||||||
extern struct omap_hwmod_ocp_if am33xx_l3_main__ocmc;
|
extern struct omap_hwmod_ocp_if am33xx_l3_main__ocmc;
|
||||||
extern struct omap_hwmod_ocp_if am33xx_l3_main__sha0;
|
extern struct omap_hwmod_ocp_if am33xx_l3_main__sha0;
|
||||||
extern struct omap_hwmod_ocp_if am33xx_l3_main__aes0;
|
extern struct omap_hwmod_ocp_if am33xx_l3_main__aes0;
|
||||||
|
extern struct omap_hwmod_ocp_if am33xx_l4_per__rng;
|
||||||
|
|
||||||
extern struct omap_hwmod am33xx_l3_main_hwmod;
|
extern struct omap_hwmod am33xx_l3_main_hwmod;
|
||||||
extern struct omap_hwmod am33xx_l3_s_hwmod;
|
extern struct omap_hwmod am33xx_l3_s_hwmod;
|
||||||
|
@ -80,6 +81,7 @@ extern struct omap_hwmod am33xx_gfx_hwmod;
|
||||||
extern struct omap_hwmod am33xx_prcm_hwmod;
|
extern struct omap_hwmod am33xx_prcm_hwmod;
|
||||||
extern struct omap_hwmod am33xx_aes0_hwmod;
|
extern struct omap_hwmod am33xx_aes0_hwmod;
|
||||||
extern struct omap_hwmod am33xx_sha0_hwmod;
|
extern struct omap_hwmod am33xx_sha0_hwmod;
|
||||||
|
extern struct omap_hwmod am33xx_rng_hwmod;
|
||||||
extern struct omap_hwmod am33xx_ocmcram_hwmod;
|
extern struct omap_hwmod am33xx_ocmcram_hwmod;
|
||||||
extern struct omap_hwmod am33xx_smartreflex0_hwmod;
|
extern struct omap_hwmod am33xx_smartreflex0_hwmod;
|
||||||
extern struct omap_hwmod am33xx_smartreflex1_hwmod;
|
extern struct omap_hwmod am33xx_smartreflex1_hwmod;
|
||||||
|
|
|
@ -547,3 +547,11 @@ struct omap_hwmod_ocp_if am33xx_l3_main__aes0 = {
|
||||||
.addr = am33xx_aes0_addrs,
|
.addr = am33xx_aes0_addrs,
|
||||||
.user = OCP_USER_MPU | OCP_USER_SDMA,
|
.user = OCP_USER_MPU | OCP_USER_SDMA,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* l4 per -> rng */
|
||||||
|
struct omap_hwmod_ocp_if am33xx_l4_per__rng = {
|
||||||
|
.master = &am33xx_l4_ls_hwmod,
|
||||||
|
.slave = &am33xx_rng_hwmod,
|
||||||
|
.clk = "rng_fck",
|
||||||
|
.user = OCP_USER_MPU,
|
||||||
|
};
|
||||||
|
|
|
@ -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 */
|
/* ocmcram */
|
||||||
static struct omap_hwmod_class am33xx_ocmcram_hwmod_class = {
|
static struct omap_hwmod_class am33xx_ocmcram_hwmod_class = {
|
||||||
.name = "ocmcram",
|
.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_ocmcram_hwmod , AM33XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET);
|
||||||
CLKCTRL(am33xx_sha0_hwmod , AM33XX_CM_PER_SHA0_CLKCTRL_OFFSET);
|
CLKCTRL(am33xx_sha0_hwmod , AM33XX_CM_PER_SHA0_CLKCTRL_OFFSET);
|
||||||
CLKCTRL(am33xx_aes0_hwmod , AM33XX_CM_PER_AES0_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)
|
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_ocmcram_hwmod , AM43XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET);
|
||||||
CLKCTRL(am33xx_sha0_hwmod , AM43XX_CM_PER_SHA0_CLKCTRL_OFFSET);
|
CLKCTRL(am33xx_sha0_hwmod , AM43XX_CM_PER_SHA0_CLKCTRL_OFFSET);
|
||||||
CLKCTRL(am33xx_aes0_hwmod , AM43XX_CM_PER_AES0_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)
|
static void omap_hwmod_am43xx_rst(void)
|
||||||
|
|
|
@ -503,41 +503,6 @@ static struct omap_hwmod_ocp_if am33xx_l3_s__usbss = {
|
||||||
.flags = OCPIF_SWSUP_IDLE,
|
.flags = OCPIF_SWSUP_IDLE,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* 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,
|
|
||||||
};
|
|
||||||
|
|
||||||
static 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 = {
|
|
||||||
.clkctrl_offs = AM33XX_CM_PER_RNG_CLKCTRL_OFFSET,
|
|
||||||
.modulemode = MODULEMODE_SWCTRL,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_hwmod_ocp_if am33xx_l4_per__rng = {
|
|
||||||
.master = &am33xx_l4_ls_hwmod,
|
|
||||||
.slave = &am33xx_rng_hwmod,
|
|
||||||
.clk = "rng_fck",
|
|
||||||
.user = OCP_USER_MPU,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_hwmod_ocp_if *am33xx_hwmod_ocp_ifs[] __initdata = {
|
static struct omap_hwmod_ocp_if *am33xx_hwmod_ocp_ifs[] __initdata = {
|
||||||
&am33xx_l3_main__emif,
|
&am33xx_l3_main__emif,
|
||||||
&am33xx_mpu__l3_main,
|
&am33xx_mpu__l3_main,
|
||||||
|
|
|
@ -949,6 +949,7 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = {
|
||||||
&am33xx_l4_per__i2c2,
|
&am33xx_l4_per__i2c2,
|
||||||
&am33xx_l4_per__i2c3,
|
&am33xx_l4_per__i2c3,
|
||||||
&am33xx_l4_per__mailbox,
|
&am33xx_l4_per__mailbox,
|
||||||
|
&am33xx_l4_per__rng,
|
||||||
&am33xx_l4_ls__mcasp0,
|
&am33xx_l4_ls__mcasp0,
|
||||||
&am33xx_l4_ls__mcasp1,
|
&am33xx_l4_ls__mcasp1,
|
||||||
&am33xx_l4_ls__mmc0,
|
&am33xx_l4_ls__mmc0,
|
||||||
|
|
|
@ -92,6 +92,7 @@
|
||||||
#define AM43XX_CM_PER_MAILBOX0_CLKCTRL_OFFSET 0x04b8
|
#define AM43XX_CM_PER_MAILBOX0_CLKCTRL_OFFSET 0x04b8
|
||||||
#define AM43XX_CM_PER_MMC0_CLKCTRL_OFFSET 0x04c0
|
#define AM43XX_CM_PER_MMC0_CLKCTRL_OFFSET 0x04c0
|
||||||
#define AM43XX_CM_PER_MMC1_CLKCTRL_OFFSET 0x04c8
|
#define AM43XX_CM_PER_MMC1_CLKCTRL_OFFSET 0x04c8
|
||||||
|
#define AM43XX_CM_PER_RNG_CLKCTRL_OFFSET 0x04e0
|
||||||
#define AM43XX_CM_PER_SPI0_CLKCTRL_OFFSET 0x0500
|
#define AM43XX_CM_PER_SPI0_CLKCTRL_OFFSET 0x0500
|
||||||
#define AM43XX_CM_PER_SPI1_CLKCTRL_OFFSET 0x0508
|
#define AM43XX_CM_PER_SPI1_CLKCTRL_OFFSET 0x0508
|
||||||
#define AM43XX_CM_PER_SPINLOCK_CLKCTRL_OFFSET 0x0528
|
#define AM43XX_CM_PER_SPINLOCK_CLKCTRL_OFFSET 0x0528
|
||||||
|
|
Loading…
Reference in New Issue