aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2010-02-23 00:09:31 -0500
committerPaul Walmsley <paul@pwsan.com>2010-02-24 14:29:44 -0500
commit50ebdac2ec9fb2de9c271cb2e0e13aae3b454166 (patch)
tree0d3787446804696a8f048925bce19e3147bd8691 /arch/arm/plat-omap
parent74be8427431b4bbff4a6506f64fb30bb61e781a7 (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.h26
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 */
120struct omap_hwmod_opt_clk { 119struct 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 */