]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: OMAP4: hwmod data: add des
authorSebastian Reichel <sebastian.reichel@collabora.co.uk>
Tue, 13 Jun 2017 09:28:47 +0000 (11:28 +0200)
committerTony Lindgren <tony@atomide.com>
Wed, 14 Jun 2017 07:52:57 +0000 (00:52 -0700)
This fixes the following error during kernel boot:

platform 480a5000.des: Cannot lookup hwmod 'des'

Unfortunately the DES module is only documented partly
in the OMAP4430 TRM. I found an old patch from Joel,
which I took over and updated for currently mainline.

Signed-off-by: Joel Fernandes <joelf@ti.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Acked-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/omap_hwmod_44xx_data.c

index e1b0859770490f3e089bd99c02ed5c420151bbbf..ef4389ce65fe409d416506624c3cf83c5ebfa521 100644 (file)
@@ -1021,6 +1021,42 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__aes2 = {
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
 };
 
+/*
+ * 'des' class for DES3DES module
+ */
+static struct omap_hwmod_class_sysconfig omap44xx_des_sysc = {
+       .rev_offs       = 0x30,
+       .sysc_offs      = 0x34,
+       .syss_offs      = 0x38,
+       .sysc_flags     = SYSS_HAS_RESET_STATUS,
+};
+
+static struct omap_hwmod_class omap44xx_des_hwmod_class = {
+       .name           = "des",
+       .sysc           = &omap44xx_des_sysc,
+};
+
+static struct omap_hwmod omap44xx_des_hwmod = {
+       .name           = "des",
+       .class          = &omap44xx_des_hwmod_class,
+       .clkdm_name     = "l4_secure_clkdm",
+       .main_clk       = "l3_div_ck",
+       .prcm           = {
+               .omap4  = {
+                       .context_offs   = OMAP4_RM_L4SEC_DES3DES_CONTEXT_OFFSET,
+                       .clkctrl_offs   = OMAP4_CM_L4SEC_DES3DES_CLKCTRL_OFFSET,
+                       .modulemode     = MODULEMODE_SWCTRL,
+               },
+       },
+};
+
+struct omap_hwmod_ocp_if omap44xx_l3_main_2__des = {
+       .master         = &omap44xx_l3_main_2_hwmod,
+       .slave          = &omap44xx_des_hwmod,
+       .clk            = "l3_div_ck",
+       .user           = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
 /*
  * 'fdif' class
  * face detection hw accelerator module
@@ -4864,6 +4900,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
        &omap44xx_mpu__emif2,
        &omap44xx_l3_main_2__aes1,
        &omap44xx_l3_main_2__aes2,
+       &omap44xx_l3_main_2__des,
        NULL,
 };