This source file includes following definitions.
- am33xx_hwmod_init
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 #include "omap_hwmod.h"
  18 #include "omap_hwmod_common_data.h"
  19 
  20 #include "control.h"
  21 #include "cm33xx.h"
  22 #include "prm33xx.h"
  23 #include "prm-regbits-33xx.h"
  24 #include "wd_timer.h"
  25 #include "omap_hwmod_33xx_43xx_common_data.h"
  26 
  27 
  28 
  29 
  30 
  31 
  32 static struct omap_hwmod am33xx_emif_hwmod = {
  33         .name           = "emif",
  34         .class          = &am33xx_emif_hwmod_class,
  35         .clkdm_name     = "l3_clkdm",
  36         .flags          = HWMOD_INIT_NO_IDLE,
  37         .main_clk       = "dpll_ddr_m2_div2_ck",
  38         .prcm           = {
  39                 .omap4  = {
  40                         .clkctrl_offs   = AM33XX_CM_PER_EMIF_CLKCTRL_OFFSET,
  41                         .modulemode     = MODULEMODE_SWCTRL,
  42                 },
  43         },
  44 };
  45 
  46 
  47 static struct omap_hwmod am33xx_l4_hs_hwmod = {
  48         .name           = "l4_hs",
  49         .class          = &am33xx_l4_hwmod_class,
  50         .clkdm_name     = "l4hs_clkdm",
  51         .flags          = HWMOD_INIT_NO_IDLE,
  52         .main_clk       = "l4hs_gclk",
  53         .prcm           = {
  54                 .omap4  = {
  55                         .clkctrl_offs   = AM33XX_CM_PER_L4HS_CLKCTRL_OFFSET,
  56                         .modulemode     = MODULEMODE_SWCTRL,
  57                 },
  58         },
  59 };
  60 
  61 static struct omap_hwmod_rst_info am33xx_wkup_m3_resets[] = {
  62         { .name = "wkup_m3", .rst_shift = 3, .st_shift = 5 },
  63 };
  64 
  65 
  66 static struct omap_hwmod am33xx_wkup_m3_hwmod = {
  67         .name           = "wkup_m3",
  68         .class          = &am33xx_wkup_m3_hwmod_class,
  69         .clkdm_name     = "l4_wkup_aon_clkdm",
  70         
  71         .flags          = HWMOD_INIT_NO_RESET | HWMOD_NO_IDLEST,
  72         .main_clk       = "dpll_core_m4_div2_ck",
  73         .prcm           = {
  74                 .omap4  = {
  75                         .clkctrl_offs   = AM33XX_CM_WKUP_WKUP_M3_CLKCTRL_OFFSET,
  76                         .rstctrl_offs   = AM33XX_RM_WKUP_RSTCTRL_OFFSET,
  77                         .rstst_offs     = AM33XX_RM_WKUP_RSTST_OFFSET,
  78                         .modulemode     = MODULEMODE_SWCTRL,
  79                 },
  80         },
  81         .rst_lines      = am33xx_wkup_m3_resets,
  82         .rst_lines_cnt  = ARRAY_SIZE(am33xx_wkup_m3_resets),
  83 };
  84 
  85 
  86 
  87 
  88 
  89 static struct omap_hwmod_class_sysconfig am33xx_adc_tsc_sysc = {
  90         .rev_offs       = 0x00,
  91         .sysc_offs      = 0x10,
  92         .sysc_flags     = SYSC_HAS_SIDLEMODE,
  93         .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
  94                         SIDLE_SMART_WKUP),
  95         .sysc_fields    = &omap_hwmod_sysc_type2,
  96 };
  97 
  98 static struct omap_hwmod_class am33xx_adc_tsc_hwmod_class = {
  99         .name           = "adc_tsc",
 100         .sysc           = &am33xx_adc_tsc_sysc,
 101 };
 102 
 103 static struct omap_hwmod am33xx_adc_tsc_hwmod = {
 104         .name           = "adc_tsc",
 105         .class          = &am33xx_adc_tsc_hwmod_class,
 106         .clkdm_name     = "l4_wkup_clkdm",
 107         .main_clk       = "adc_tsc_fck",
 108         .prcm           = {
 109                 .omap4  = {
 110                         .clkctrl_offs   = AM33XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET,
 111                         .modulemode     = MODULEMODE_SWCTRL,
 112                 },
 113         },
 114 };
 115 
 116 
 117 
 118 
 119 
 120 
 121 
 122 
 123 
 124 
 125 
 126 
 127 
 128 #if 0
 129 
 130 
 131 
 132 static struct omap_hwmod_class am33xx_cefuse_hwmod_class = {
 133         .name           = "cefuse",
 134 };
 135 
 136 static struct omap_hwmod am33xx_cefuse_hwmod = {
 137         .name           = "cefuse",
 138         .class          = &am33xx_cefuse_hwmod_class,
 139         .clkdm_name     = "l4_cefuse_clkdm",
 140         .main_clk       = "cefuse_fck",
 141         .prcm           = {
 142                 .omap4  = {
 143                         .clkctrl_offs   = AM33XX_CM_CEFUSE_CEFUSE_CLKCTRL_OFFSET,
 144                         .modulemode     = MODULEMODE_SWCTRL,
 145                 },
 146         },
 147 };
 148 
 149 
 150 
 151 
 152 static struct omap_hwmod_class am33xx_clkdiv32k_hwmod_class = {
 153         .name           = "clkdiv32k",
 154 };
 155 
 156 static struct omap_hwmod am33xx_clkdiv32k_hwmod = {
 157         .name           = "clkdiv32k",
 158         .class          = &am33xx_clkdiv32k_hwmod_class,
 159         .clkdm_name     = "clk_24mhz_clkdm",
 160         .main_clk       = "clkdiv32k_ick",
 161         .prcm           = {
 162                 .omap4  = {
 163                         .clkctrl_offs   = AM33XX_CM_PER_CLKDIV32K_CLKCTRL_OFFSET,
 164                         .modulemode     = MODULEMODE_SWCTRL,
 165                 },
 166         },
 167 };
 168 
 169 
 170 static struct omap_hwmod_class am33xx_ocpwp_hwmod_class = {
 171         .name           = "ocpwp",
 172 };
 173 
 174 static struct omap_hwmod am33xx_ocpwp_hwmod = {
 175         .name           = "ocpwp",
 176         .class          = &am33xx_ocpwp_hwmod_class,
 177         .clkdm_name     = "l4ls_clkdm",
 178         .main_clk       = "l4ls_gclk",
 179         .prcm           = {
 180                 .omap4  = {
 181                         .clkctrl_offs   = AM33XX_CM_PER_OCPWP_CLKCTRL_OFFSET,
 182                         .modulemode     = MODULEMODE_SWCTRL,
 183                 },
 184         },
 185 };
 186 #endif
 187 
 188 
 189 
 190 
 191 
 192 static struct omap_hwmod_opt_clk debugss_opt_clks[] = {
 193         { .role = "dbg_sysclk", .clk = "dbg_sysclk_ck" },
 194         { .role = "dbg_clka", .clk = "dbg_clka_ck" },
 195 };
 196 
 197 static struct omap_hwmod_class am33xx_debugss_hwmod_class = {
 198         .name           = "debugss",
 199 };
 200 
 201 static struct omap_hwmod am33xx_debugss_hwmod = {
 202         .name           = "debugss",
 203         .class          = &am33xx_debugss_hwmod_class,
 204         .clkdm_name     = "l3_aon_clkdm",
 205         .main_clk       = "trace_clk_div_ck",
 206         .prcm           = {
 207                 .omap4  = {
 208                         .clkctrl_offs   = AM33XX_CM_WKUP_DEBUGSS_CLKCTRL_OFFSET,
 209                         .modulemode     = MODULEMODE_SWCTRL,
 210                 },
 211         },
 212         .opt_clks       = debugss_opt_clks,
 213         .opt_clks_cnt   = ARRAY_SIZE(debugss_opt_clks),
 214 };
 215 
 216 static struct omap_hwmod am33xx_control_hwmod = {
 217         .name           = "control",
 218         .class          = &am33xx_control_hwmod_class,
 219         .clkdm_name     = "l4_wkup_clkdm",
 220         .flags          = HWMOD_INIT_NO_IDLE,
 221         .main_clk       = "dpll_core_m4_div2_ck",
 222         .prcm           = {
 223                 .omap4  = {
 224                         .clkctrl_offs   = AM33XX_CM_WKUP_CONTROL_CLKCTRL_OFFSET,
 225                         .modulemode     = MODULEMODE_SWCTRL,
 226                 },
 227         },
 228 };
 229 
 230 
 231 static struct omap_hwmod_class_sysconfig lcdc_sysc = {
 232         .rev_offs       = 0x0,
 233         .sysc_offs      = 0x54,
 234         .sysc_flags     = SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE,
 235         .idlemodes      = SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
 236                           MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART,
 237         .sysc_fields    = &omap_hwmod_sysc_type2,
 238 };
 239 
 240 static struct omap_hwmod_class am33xx_lcdc_hwmod_class = {
 241         .name           = "lcdc",
 242         .sysc           = &lcdc_sysc,
 243 };
 244 
 245 static struct omap_hwmod am33xx_lcdc_hwmod = {
 246         .name           = "lcdc",
 247         .class          = &am33xx_lcdc_hwmod_class,
 248         .clkdm_name     = "lcdc_clkdm",
 249         .flags          = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY,
 250         .main_clk       = "lcd_gclk",
 251         .prcm           = {
 252                 .omap4  = {
 253                         .clkctrl_offs   = AM33XX_CM_PER_LCDC_CLKCTRL_OFFSET,
 254                         .modulemode     = MODULEMODE_SWCTRL,
 255                 },
 256         },
 257 };
 258 
 259 
 260 
 261 
 262 
 263 static struct omap_hwmod_class_sysconfig am33xx_usbhsotg_sysc = {
 264         .rev_offs       = 0x0,
 265         .sysc_offs      = 0x10,
 266         .sysc_flags     = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE),
 267         .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
 268                           MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
 269         .sysc_fields    = &omap_hwmod_sysc_type2,
 270 };
 271 
 272 static struct omap_hwmod_class am33xx_usbotg_class = {
 273         .name           = "usbotg",
 274         .sysc           = &am33xx_usbhsotg_sysc,
 275 };
 276 
 277 static struct omap_hwmod am33xx_usbss_hwmod = {
 278         .name           = "usb_otg_hs",
 279         .class          = &am33xx_usbotg_class,
 280         .clkdm_name     = "l3s_clkdm",
 281         .flags          = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY,
 282         .main_clk       = "usbotg_fck",
 283         .prcm           = {
 284                 .omap4  = {
 285                         .clkctrl_offs   = AM33XX_CM_PER_USB0_CLKCTRL_OFFSET,
 286                         .modulemode     = MODULEMODE_SWCTRL,
 287                 },
 288         },
 289 };
 290 
 291 
 292 
 293 
 294 
 295 
 296 
 297 static struct omap_hwmod_ocp_if am33xx_l3_main__emif = {
 298         .master         = &am33xx_l3_main_hwmod,
 299         .slave          = &am33xx_emif_hwmod,
 300         .clk            = "dpll_core_m4_ck",
 301         .user           = OCP_USER_MPU | OCP_USER_SDMA,
 302 };
 303 
 304 
 305 static struct omap_hwmod_ocp_if am33xx_l3_main__l4_hs = {
 306         .master         = &am33xx_l3_main_hwmod,
 307         .slave          = &am33xx_l4_hs_hwmod,
 308         .clk            = "l3s_gclk",
 309         .user           = OCP_USER_MPU | OCP_USER_SDMA,
 310 };
 311 
 312 
 313 static struct omap_hwmod_ocp_if am33xx_wkup_m3__l4_wkup = {
 314         .master         = &am33xx_wkup_m3_hwmod,
 315         .slave          = &am33xx_l4_wkup_hwmod,
 316         .clk            = "dpll_core_m4_div2_ck",
 317         .user           = OCP_USER_MPU | OCP_USER_SDMA,
 318 };
 319 
 320 
 321 static struct omap_hwmod_ocp_if am33xx_l4_wkup__wkup_m3 = {
 322         .master         = &am33xx_l4_wkup_hwmod,
 323         .slave          = &am33xx_wkup_m3_hwmod,
 324         .clk            = "dpll_core_m4_div2_ck",
 325         .user           = OCP_USER_MPU | OCP_USER_SDMA,
 326 };
 327 
 328 
 329 static struct omap_hwmod_ocp_if am33xx_l4_hs__pruss = {
 330         .master         = &am33xx_l4_hs_hwmod,
 331         .slave          = &am33xx_pruss_hwmod,
 332         .clk            = "dpll_core_m4_ck",
 333         .user           = OCP_USER_MPU | OCP_USER_SDMA,
 334 };
 335 
 336 
 337 static struct omap_hwmod_ocp_if am33xx_l3_main__debugss = {
 338         .master         = &am33xx_l3_main_hwmod,
 339         .slave          = &am33xx_debugss_hwmod,
 340         .clk            = "dpll_core_m4_ck",
 341         .user           = OCP_USER_MPU,
 342 };
 343 
 344 
 345 static struct omap_hwmod_ocp_if am33xx_l4_wkup__smartreflex0 = {
 346         .master         = &am33xx_l4_wkup_hwmod,
 347         .slave          = &am33xx_smartreflex0_hwmod,
 348         .clk            = "dpll_core_m4_div2_ck",
 349         .user           = OCP_USER_MPU,
 350 };
 351 
 352 
 353 static struct omap_hwmod_ocp_if am33xx_l4_wkup__smartreflex1 = {
 354         .master         = &am33xx_l4_wkup_hwmod,
 355         .slave          = &am33xx_smartreflex1_hwmod,
 356         .clk            = "dpll_core_m4_div2_ck",
 357         .user           = OCP_USER_MPU,
 358 };
 359 
 360 
 361 static struct omap_hwmod_ocp_if am33xx_l4_wkup__control = {
 362         .master         = &am33xx_l4_wkup_hwmod,
 363         .slave          = &am33xx_control_hwmod,
 364         .clk            = "dpll_core_m4_div2_ck",
 365         .user           = OCP_USER_MPU,
 366 };
 367 
 368 
 369 static struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc = {
 370         .master         = &am33xx_l4_wkup_hwmod,
 371         .slave          = &am33xx_adc_tsc_hwmod,
 372         .clk            = "dpll_core_m4_div2_ck",
 373         .user           = OCP_USER_MPU,
 374 };
 375 
 376 static struct omap_hwmod_ocp_if am33xx_l3_main__lcdc = {
 377         .master         = &am33xx_l3_main_hwmod,
 378         .slave          = &am33xx_lcdc_hwmod,
 379         .clk            = "dpll_core_m4_ck",
 380         .user           = OCP_USER_MPU,
 381 };
 382 
 383 
 384 static struct omap_hwmod_ocp_if am33xx_l4_wkup__timer1 = {
 385         .master         = &am33xx_l4_wkup_hwmod,
 386         .slave          = &am33xx_timer1_hwmod,
 387         .clk            = "dpll_core_m4_div2_ck",
 388         .user           = OCP_USER_MPU,
 389 };
 390 
 391 
 392 static struct omap_hwmod_ocp_if am33xx_l4_wkup__wd_timer1 = {
 393         .master         = &am33xx_l4_wkup_hwmod,
 394         .slave          = &am33xx_wd_timer1_hwmod,
 395         .clk            = "dpll_core_m4_div2_ck",
 396         .user           = OCP_USER_MPU,
 397 };
 398 
 399 
 400 
 401 static struct omap_hwmod_ocp_if am33xx_l3_s__usbss = {
 402         .master         = &am33xx_l3_s_hwmod,
 403         .slave          = &am33xx_usbss_hwmod,
 404         .clk            = "l3s_gclk",
 405         .user           = OCP_USER_MPU,
 406         .flags          = OCPIF_SWSUP_IDLE,
 407 };
 408 
 409 static struct omap_hwmod_ocp_if *am33xx_hwmod_ocp_ifs[] __initdata = {
 410         &am33xx_l3_main__emif,
 411         &am33xx_mpu__l3_main,
 412         &am33xx_mpu__prcm,
 413         &am33xx_l3_s__l4_ls,
 414         &am33xx_l3_s__l4_wkup,
 415         &am33xx_l3_main__l4_hs,
 416         &am33xx_l3_main__l3_s,
 417         &am33xx_l3_main__l3_instr,
 418         &am33xx_l3_main__gfx,
 419         &am33xx_l3_s__l3_main,
 420         &am33xx_pruss__l3_main,
 421         &am33xx_wkup_m3__l4_wkup,
 422         &am33xx_gfx__l3_main,
 423         &am33xx_l3_main__debugss,
 424         &am33xx_l4_wkup__wkup_m3,
 425         &am33xx_l4_wkup__control,
 426         &am33xx_l4_wkup__smartreflex0,
 427         &am33xx_l4_wkup__smartreflex1,
 428         &am33xx_l4_wkup__timer1,
 429         &am33xx_l4_wkup__rtc,
 430         &am33xx_l4_wkup__adc_tsc,
 431         &am33xx_l4_wkup__wd_timer1,
 432         &am33xx_l4_hs__pruss,
 433         &am33xx_l4_per__dcan0,
 434         &am33xx_l4_per__dcan1,
 435         &am33xx_l4_per__mailbox,
 436         &am33xx_l4_ls__mcasp0,
 437         &am33xx_l4_ls__mcasp1,
 438         &am33xx_l4_ls__timer2,
 439         &am33xx_l4_ls__timer3,
 440         &am33xx_l4_ls__timer4,
 441         &am33xx_l4_ls__timer5,
 442         &am33xx_l4_ls__timer6,
 443         &am33xx_l4_ls__timer7,
 444         &am33xx_l3_main__tpcc,
 445         &am33xx_l4_ls__spinlock,
 446         &am33xx_l4_ls__elm,
 447         &am33xx_l4_ls__epwmss0,
 448         &am33xx_l4_ls__epwmss1,
 449         &am33xx_l4_ls__epwmss2,
 450         &am33xx_l3_s__gpmc,
 451         &am33xx_l3_main__lcdc,
 452         &am33xx_l4_ls__mcspi0,
 453         &am33xx_l4_ls__mcspi1,
 454         &am33xx_l3_main__tptc0,
 455         &am33xx_l3_main__tptc1,
 456         &am33xx_l3_main__tptc2,
 457         &am33xx_l3_main__ocmc,
 458         &am33xx_l3_s__usbss,
 459         &am33xx_l3_main__sha0,
 460         &am33xx_l3_main__aes0,
 461         &am33xx_l4_per__rng,
 462         NULL,
 463 };
 464 
 465 int __init am33xx_hwmod_init(void)
 466 {
 467         omap_hwmod_am33xx_reg();
 468         omap_hwmod_init();
 469         return omap_hwmod_register_links(am33xx_hwmod_ocp_ifs);
 470 }