diff options
author | Paul Walmsley <paul@pwsan.com> | 2010-02-23 00:09:31 -0500 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-02-24 14:29:44 -0500 |
commit | 50ebdac2ec9fb2de9c271cb2e0e13aae3b454166 (patch) | |
tree | 0d3787446804696a8f048925bce19e3147bd8691 /arch/arm/plat-omap | |
parent | 74be8427431b4bbff4a6506f64fb30bb61e781a7 (diff) |
OMAP hwmod: convert hwmod to use hardware clock names rather than clkdev dev+con
The OMAP hwmod core code is intended to use SoC IP block description
structures that are autogenerated from TI's OMAP hardware database.
Currently the hwmod code uses clkdev device + connection addressing to
identify clocks. This causes problems in the hwmod autogeneration
process, since the TI hardware database doesn't use platform_device or
clkdev addressing; it uses a single clock signal name string, which
tends to bear some resemblance to what is used in the OMAP TRMs. This
patch converts the hwmod code and existing data to use omap_clk_get_by_name(),
introduced in the previous patch.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: BenoƮt Cousson <b-cousson@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/include/plat/omap_hwmod.h | 26 |
1 files changed, 10 insertions, 16 deletions
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 */ |