diff options
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 22 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2420.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2430.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_34xx.h | 3 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/omap_hwmod.h | 26 |
5 files changed, 23 insertions, 34 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index fb11ec176d55..501660aae962 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
| @@ -416,18 +416,18 @@ static int _init_main_clk(struct omap_hwmod *oh) | |||
| 416 | struct clk *c; | 416 | struct clk *c; |
| 417 | int ret = 0; | 417 | int ret = 0; |
| 418 | 418 | ||
| 419 | if (!oh->clkdev_con_id) | 419 | if (!oh->main_clk) |
| 420 | return 0; | 420 | return 0; |
| 421 | 421 | ||
| 422 | c = clk_get_sys(oh->clkdev_dev_id, oh->clkdev_con_id); | 422 | c = omap_clk_get_by_name(oh->main_clk); |
| 423 | WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get main_clk %s.%s\n", | 423 | WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get main_clk %s\n", |
| 424 | oh->name, oh->clkdev_dev_id, oh->clkdev_con_id); | 424 | oh->name, oh->main_clk); |
| 425 | if (IS_ERR(c)) | 425 | if (IS_ERR(c)) |
| 426 | ret = -EINVAL; | 426 | ret = -EINVAL; |
| 427 | oh->_clk = c; | 427 | oh->_clk = c; |
| 428 | 428 | ||
| 429 | WARN(!c->clkdm, "omap_hwmod: %s: missing clockdomain for %s.\n", | 429 | WARN(!c->clkdm, "omap_hwmod: %s: missing clockdomain for %s.\n", |
| 430 | oh->clkdev_con_id, c->name); | 430 | oh->main_clk, c->name); |
| 431 | 431 | ||
| 432 | return ret; | 432 | return ret; |
| 433 | } | 433 | } |
| @@ -450,13 +450,12 @@ static int _init_interface_clks(struct omap_hwmod *oh) | |||
| 450 | return 0; | 450 | return 0; |
| 451 | 451 | ||
| 452 | for (i = 0, os = *oh->slaves; i < oh->slaves_cnt; i++, os++) { | 452 | for (i = 0, os = *oh->slaves; i < oh->slaves_cnt; i++, os++) { |
| 453 | if (!os->clkdev_con_id) | 453 | if (!os->clk) |
| 454 | continue; | 454 | continue; |
| 455 | 455 | ||
| 456 | c = clk_get_sys(os->clkdev_dev_id, os->clkdev_con_id); | 456 | c = omap_clk_get_by_name(os->clk); |
| 457 | WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get " | 457 | WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get " |
| 458 | "interface_clk %s.%s\n", oh->name, | 458 | "interface_clk %s\n", oh->name, os->clk); |
| 459 | os->clkdev_dev_id, os->clkdev_con_id); | ||
| 460 | if (IS_ERR(c)) | 459 | if (IS_ERR(c)) |
| 461 | ret = -EINVAL; | 460 | ret = -EINVAL; |
| 462 | os->_clk = c; | 461 | os->_clk = c; |
| @@ -480,10 +479,9 @@ static int _init_opt_clks(struct omap_hwmod *oh) | |||
| 480 | int ret = 0; | 479 | int ret = 0; |
| 481 | 480 | ||
| 482 | for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) { | 481 | for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) { |
| 483 | c = clk_get_sys(oc->clkdev_dev_id, oc->clkdev_con_id); | 482 | c = omap_clk_get_by_name(oc->clk); |
| 484 | WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get opt_clk " | 483 | WARN(IS_ERR(c), "omap_hwmod: %s: cannot clk_get opt_clk " |
| 485 | "%s.%s\n", oh->name, oc->clkdev_dev_id, | 484 | "%s\n", oh->name, oc->clk); |
| 486 | oc->clkdev_con_id); | ||
| 487 | if (IS_ERR(c)) | 485 | if (IS_ERR(c)) |
| 488 | ret = -EINVAL; | 486 | ret = -EINVAL; |
| 489 | oc->_clk = c; | 487 | oc->_clk = c; |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420.h b/arch/arm/mach-omap2/omap_hwmod_2420.h index a9ca1b99a301..5932c1d3e07b 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2420.h +++ b/arch/arm/mach-omap2/omap_hwmod_2420.h | |||
| @@ -117,8 +117,7 @@ static struct omap_hwmod_ocp_if *omap2420_mpu_masters[] = { | |||
| 117 | /* MPU */ | 117 | /* MPU */ |
| 118 | static struct omap_hwmod omap2420_mpu_hwmod = { | 118 | static struct omap_hwmod omap2420_mpu_hwmod = { |
| 119 | .name = "mpu_hwmod", | 119 | .name = "mpu_hwmod", |
| 120 | .clkdev_dev_id = NULL, | 120 | .main_clk = "mpu_ck", |
| 121 | .clkdev_con_id = "mpu_ck", | ||
| 122 | .masters = omap2420_mpu_masters, | 121 | .masters = omap2420_mpu_masters, |
| 123 | .masters_cnt = ARRAY_SIZE(omap2420_mpu_masters), | 122 | .masters_cnt = ARRAY_SIZE(omap2420_mpu_masters), |
| 124 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | 123 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2430.h b/arch/arm/mach-omap2/omap_hwmod_2430.h index 59a208bea6c2..91f79c05a98c 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2430.h +++ b/arch/arm/mach-omap2/omap_hwmod_2430.h | |||
| @@ -119,8 +119,7 @@ static struct omap_hwmod_ocp_if *omap2430_mpu_masters[] = { | |||
| 119 | /* MPU */ | 119 | /* MPU */ |
| 120 | static struct omap_hwmod omap2430_mpu_hwmod = { | 120 | static struct omap_hwmod omap2430_mpu_hwmod = { |
| 121 | .name = "mpu_hwmod", | 121 | .name = "mpu_hwmod", |
| 122 | .clkdev_dev_id = NULL, | 122 | .main_clk = "mpu_ck", |
| 123 | .clkdev_con_id = "mpu_ck", | ||
| 124 | .masters = omap2430_mpu_masters, | 123 | .masters = omap2430_mpu_masters, |
| 125 | .masters_cnt = ARRAY_SIZE(omap2430_mpu_masters), | 124 | .masters_cnt = ARRAY_SIZE(omap2430_mpu_masters), |
| 126 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | 125 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), |
diff --git a/arch/arm/mach-omap2/omap_hwmod_34xx.h b/arch/arm/mach-omap2/omap_hwmod_34xx.h index 2e629dcb2fb1..26991147d5ee 100644 --- a/arch/arm/mach-omap2/omap_hwmod_34xx.h +++ b/arch/arm/mach-omap2/omap_hwmod_34xx.h | |||
| @@ -143,8 +143,7 @@ static struct omap_hwmod_ocp_if *omap34xx_mpu_masters[] = { | |||
| 143 | /* MPU */ | 143 | /* MPU */ |
| 144 | static struct omap_hwmod omap34xx_mpu_hwmod = { | 144 | static struct omap_hwmod omap34xx_mpu_hwmod = { |
| 145 | .name = "mpu_hwmod", | 145 | .name = "mpu_hwmod", |
| 146 | .clkdev_dev_id = NULL, | 146 | .main_clk = "arm_fck", |
| 147 | .clkdev_con_id = "arm_fck", | ||
| 148 | .masters = omap34xx_mpu_masters, | 147 | .masters = omap34xx_mpu_masters, |
| 149 | .masters_cnt = ARRAY_SIZE(omap34xx_mpu_masters), | 148 | .masters_cnt = ARRAY_SIZE(omap34xx_mpu_masters), |
| 150 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | 149 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), |
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 665420e89c21..de4d0422cd2a 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h | |||
| @@ -110,8 +110,7 @@ struct omap_hwmod_dma_info { | |||
| 110 | /** | 110 | /** |
| 111 | * struct omap_hwmod_opt_clk - optional clocks used by this hwmod | 111 | * struct omap_hwmod_opt_clk - optional clocks used by this hwmod |
| 112 | * @role: "sys", "32k", "tv", etc -- for use in clk_get() | 112 | * @role: "sys", "32k", "tv", etc -- for use in clk_get() |
| 113 | * @clkdev_dev_id: opt clock: clkdev dev_id string | 113 | * @clk: opt clock: OMAP clock name |
| 114 | * @clkdev_con_id: opt clock: clkdev con_id string | ||
| 115 | * @_clk: pointer to the struct clk (filled in at runtime) | 114 | * @_clk: pointer to the struct clk (filled in at runtime) |
| 116 | * | 115 | * |
| 117 | * The module's interface clock and main functional clock should not | 116 | * The module's interface clock and main functional clock should not |
| @@ -119,8 +118,7 @@ struct omap_hwmod_dma_info { | |||
| 119 | */ | 118 | */ |
| 120 | struct omap_hwmod_opt_clk { | 119 | struct omap_hwmod_opt_clk { |
| 121 | const char *role; | 120 | const char *role; |
| 122 | const char *clkdev_dev_id; | 121 | const char *clk; |
| 123 | const char *clkdev_con_id; | ||
| 124 | struct clk *_clk; | 122 | struct clk *_clk; |
| 125 | }; | 123 | }; |
| 126 | 124 | ||
| @@ -187,8 +185,7 @@ struct omap_hwmod_addr_space { | |||
| 187 | * @master: struct omap_hwmod that initiates OCP transactions on this link | 185 | * @master: struct omap_hwmod that initiates OCP transactions on this link |
| 188 | * @slave: struct omap_hwmod that responds to OCP transactions on this link | 186 | * @slave: struct omap_hwmod that responds to OCP transactions on this link |
| 189 | * @addr: address space associated with this link | 187 | * @addr: address space associated with this link |
| 190 | * @clkdev_dev_id: interface clock: clkdev dev_id string | 188 | * @clk: interface clock: OMAP clock name |
| 191 | * @clkdev_con_id: interface clock: clkdev con_id string | ||
| 192 | * @_clk: pointer to the interface struct clk (filled in at runtime) | 189 | * @_clk: pointer to the interface struct clk (filled in at runtime) |
| 193 | * @fw: interface firewall data | 190 | * @fw: interface firewall data |
| 194 | * @addr_cnt: ARRAY_SIZE(@addr) | 191 | * @addr_cnt: ARRAY_SIZE(@addr) |
| @@ -207,8 +204,7 @@ struct omap_hwmod_ocp_if { | |||
| 207 | struct omap_hwmod *master; | 204 | struct omap_hwmod *master; |
| 208 | struct omap_hwmod *slave; | 205 | struct omap_hwmod *slave; |
| 209 | struct omap_hwmod_addr_space *addr; | 206 | struct omap_hwmod_addr_space *addr; |
| 210 | const char *clkdev_dev_id; | 207 | const char *clk; |
| 211 | const char *clkdev_con_id; | ||
| 212 | struct clk *_clk; | 208 | struct clk *_clk; |
| 213 | union { | 209 | union { |
| 214 | struct omap_hwmod_omap2_firewall omap2; | 210 | struct omap_hwmod_omap2_firewall omap2; |
| @@ -401,8 +397,7 @@ struct omap_hwmod_omap4_prcm { | |||
| 401 | * @mpu_irqs: ptr to an array of MPU IRQs (see also mpu_irqs_cnt) | 397 | * @mpu_irqs: ptr to an array of MPU IRQs (see also mpu_irqs_cnt) |
| 402 | * @sdma_chs: ptr to an array of SDMA channel IDs (see also sdma_chs_cnt) | 398 | * @sdma_chs: ptr to an array of SDMA channel IDs (see also sdma_chs_cnt) |
| 403 | * @prcm: PRCM data pertaining to this hwmod | 399 | * @prcm: PRCM data pertaining to this hwmod |
| 404 | * @clkdev_dev_id: main clock: clkdev dev_id string | 400 | * @main_clk: main clock: OMAP clock name |
| 405 | * @clkdev_con_id: main clock: clkdev con_id string | ||
| 406 | * @_clk: pointer to the main struct clk (filled in at runtime) | 401 | * @_clk: pointer to the main struct clk (filled in at runtime) |
| 407 | * @opt_clks: other device clocks that drivers can request (0..*) | 402 | * @opt_clks: other device clocks that drivers can request (0..*) |
| 408 | * @masters: ptr to array of OCP ifs that this hwmod can initiate on | 403 | * @masters: ptr to array of OCP ifs that this hwmod can initiate on |
| @@ -426,10 +421,10 @@ struct omap_hwmod_omap4_prcm { | |||
| 426 | * @omap_chip: OMAP chips this hwmod is present on | 421 | * @omap_chip: OMAP chips this hwmod is present on |
| 427 | * @node: list node for hwmod list (internal use) | 422 | * @node: list node for hwmod list (internal use) |
| 428 | * | 423 | * |
| 429 | * @clkdev_dev_id, @clkdev_con_id, and @clk all refer to this module's "main | 424 | * @main_clk refers to this module's "main clock," which for our |
| 430 | * clock," which for our purposes is defined as "the functional clock needed | 425 | * purposes is defined as "the functional clock needed for register |
| 431 | * for register accesses to complete." Modules may not have a main clock if | 426 | * accesses to complete." Modules may not have a main clock if the |
| 432 | * the interface clock also serves as a main clock. | 427 | * interface clock also serves as a main clock. |
| 433 | * | 428 | * |
| 434 | * Parameter names beginning with an underscore are managed internally by | 429 | * Parameter names beginning with an underscore are managed internally by |
| 435 | * the omap_hwmod code and should not be set during initialization. | 430 | * the omap_hwmod code and should not be set during initialization. |
| @@ -443,8 +438,7 @@ struct omap_hwmod { | |||
| 443 | struct omap_hwmod_omap2_prcm omap2; | 438 | struct omap_hwmod_omap2_prcm omap2; |
| 444 | struct omap_hwmod_omap4_prcm omap4; | 439 | struct omap_hwmod_omap4_prcm omap4; |
| 445 | } prcm; | 440 | } prcm; |
| 446 | const char *clkdev_dev_id; | 441 | const char *main_clk; |
| 447 | const char *clkdev_con_id; | ||
| 448 | struct clk *_clk; | 442 | struct clk *_clk; |
| 449 | struct omap_hwmod_opt_clk *opt_clks; | 443 | struct omap_hwmod_opt_clk *opt_clks; |
| 450 | struct omap_hwmod_ocp_if **masters; /* connect to *_IA */ | 444 | struct omap_hwmod_ocp_if **masters; /* connect to *_IA */ |
