diff options
author | Paul Walmsley <paul@pwsan.com> | 2012-04-19 06:04:38 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2012-04-19 06:25:08 -0400 |
commit | 3af35fbcd088e0b675fa423a879c596384894180 (patch) | |
tree | 3d408953bfe26218081879b0ef0ca0e89570b439 | |
parent | f42c54968f2e02a7f4816051557f79d847b39f6e (diff) |
ARM: OMAP2xxx: hwmod data: start to fix the IVA1, IVA2 and DSP
N800 logs this message on boot:
[ 0.182281] omap_hwmod: iva: cannot be enabled for reset (3)
Fix by creating basic IVA1 and DSP hwmods for OMAP2420, and a basic IVA2
hwmod for OMAP2430. There is still more information to be added, but
this should resolve the immediate issue.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2420_data.c | 46 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2430_data.c | 11 |
2 files changed, 53 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c index b01b66a85f2e..2c087ffc6a92 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c | |||
@@ -43,10 +43,41 @@ | |||
43 | * IP blocks | 43 | * IP blocks |
44 | */ | 44 | */ |
45 | 45 | ||
46 | /* IVA2 (IVA2) */ | 46 | /* IVA1 (IVA1) */ |
47 | static struct omap_hwmod_class iva1_hwmod_class = { | ||
48 | .name = "iva1", | ||
49 | }; | ||
50 | |||
51 | static struct omap_hwmod_rst_info omap2420_iva_resets[] = { | ||
52 | { .name = "iva", .rst_shift = 8 }, | ||
53 | }; | ||
54 | |||
47 | static struct omap_hwmod omap2420_iva_hwmod = { | 55 | static struct omap_hwmod omap2420_iva_hwmod = { |
48 | .name = "iva", | 56 | .name = "iva", |
49 | .class = &iva_hwmod_class, | 57 | .class = &iva1_hwmod_class, |
58 | .clkdm_name = "iva1_clkdm", | ||
59 | .rst_lines = omap2420_iva_resets, | ||
60 | .rst_lines_cnt = ARRAY_SIZE(omap2420_iva_resets), | ||
61 | .main_clk = "iva1_ifck", | ||
62 | }; | ||
63 | |||
64 | /* DSP */ | ||
65 | static struct omap_hwmod_class dsp_hwmod_class = { | ||
66 | .name = "dsp", | ||
67 | }; | ||
68 | |||
69 | static struct omap_hwmod_rst_info omap2420_dsp_resets[] = { | ||
70 | { .name = "logic", .rst_shift = 0 }, | ||
71 | { .name = "mmu", .rst_shift = 1 }, | ||
72 | }; | ||
73 | |||
74 | static struct omap_hwmod omap2420_dsp_hwmod = { | ||
75 | .name = "dsp", | ||
76 | .class = &dsp_hwmod_class, | ||
77 | .clkdm_name = "dsp_clkdm", | ||
78 | .rst_lines = omap2420_dsp_resets, | ||
79 | .rst_lines_cnt = ARRAY_SIZE(omap2420_dsp_resets), | ||
80 | .main_clk = "dsp_fck", | ||
50 | }; | 81 | }; |
51 | 82 | ||
52 | /* I2C common */ | 83 | /* I2C common */ |
@@ -234,7 +265,15 @@ static struct omap_hwmod_ocp_if omap2420_l4_core__i2c2 = { | |||
234 | static struct omap_hwmod_ocp_if omap2420_l3__iva = { | 265 | static struct omap_hwmod_ocp_if omap2420_l3__iva = { |
235 | .master = &omap2xxx_l3_main_hwmod, | 266 | .master = &omap2xxx_l3_main_hwmod, |
236 | .slave = &omap2420_iva_hwmod, | 267 | .slave = &omap2420_iva_hwmod, |
237 | .clk = "iva1_ifck", | 268 | .clk = "core_l3_ck", |
269 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
270 | }; | ||
271 | |||
272 | /* DSP <- L3 interface */ | ||
273 | static struct omap_hwmod_ocp_if omap2420_l3__dsp = { | ||
274 | .master = &omap2xxx_l3_main_hwmod, | ||
275 | .slave = &omap2420_dsp_hwmod, | ||
276 | .clk = "dsp_ick", | ||
238 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 277 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
239 | }; | 278 | }; |
240 | 279 | ||
@@ -402,6 +441,7 @@ static struct omap_hwmod_ocp_if *omap2420_hwmod_ocp_ifs[] __initdata = { | |||
402 | &omap2420_l4_core__i2c1, | 441 | &omap2420_l4_core__i2c1, |
403 | &omap2420_l4_core__i2c2, | 442 | &omap2420_l4_core__i2c2, |
404 | &omap2420_l3__iva, | 443 | &omap2420_l3__iva, |
444 | &omap2420_l3__dsp, | ||
405 | &omap2420_l4_wkup__timer1, | 445 | &omap2420_l4_wkup__timer1, |
406 | &omap2xxx_l4_core__timer2, | 446 | &omap2xxx_l4_core__timer2, |
407 | &omap2xxx_l4_core__timer3, | 447 | &omap2xxx_l4_core__timer3, |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c b/arch/arm/mach-omap2/omap_hwmod_2430_data.c index 23ca551b70bb..71d9f8824f9d 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c | |||
@@ -45,9 +45,18 @@ | |||
45 | */ | 45 | */ |
46 | 46 | ||
47 | /* IVA2 (IVA2) */ | 47 | /* IVA2 (IVA2) */ |
48 | static struct omap_hwmod_rst_info omap2430_iva_resets[] = { | ||
49 | { .name = "logic", .rst_shift = 0 }, | ||
50 | { .name = "mmu", .rst_shift = 1 }, | ||
51 | }; | ||
52 | |||
48 | static struct omap_hwmod omap2430_iva_hwmod = { | 53 | static struct omap_hwmod omap2430_iva_hwmod = { |
49 | .name = "iva", | 54 | .name = "iva", |
50 | .class = &iva_hwmod_class, | 55 | .class = &iva_hwmod_class, |
56 | .clkdm_name = "dsp_clkdm", | ||
57 | .rst_lines = omap2430_iva_resets, | ||
58 | .rst_lines_cnt = ARRAY_SIZE(omap2430_iva_resets), | ||
59 | .main_clk = "dsp_fck", | ||
51 | }; | 60 | }; |
52 | 61 | ||
53 | /* I2C common */ | 62 | /* I2C common */ |
@@ -599,7 +608,7 @@ static struct omap_hwmod_ocp_if omap2430_l4_core__mcspi3 = { | |||
599 | static struct omap_hwmod_ocp_if omap2430_l3__iva = { | 608 | static struct omap_hwmod_ocp_if omap2430_l3__iva = { |
600 | .master = &omap2xxx_l3_main_hwmod, | 609 | .master = &omap2xxx_l3_main_hwmod, |
601 | .slave = &omap2430_iva_hwmod, | 610 | .slave = &omap2430_iva_hwmod, |
602 | .clk = "dsp_fck", | 611 | .clk = "core_l3_ck", |
603 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 612 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
604 | }; | 613 | }; |
605 | 614 | ||