diff options
author | David Lechner <david@lechnology.com> | 2018-01-19 22:20:22 -0500 |
---|---|---|
committer | Sekhar Nori <nsekhar@ti.com> | 2018-02-19 05:55:15 -0500 |
commit | 96c081735d5197d9d4fa0b6ce84cffa3bb197474 (patch) | |
tree | 54606e24a0afc246be11cb3f80f0560c2ccbe323 | |
parent | 4b785cc55e85e8be065a38ce9df29a2c32c7956a (diff) |
ARM: davinci: move davinci_clk_init() to init_time
This moves the call of davinci_clk_init() from map_io to init_time for all
boards.
This is the proper place to init clocks. This is also done in preparation
for moving to the common clock framework.
dm646x is a special case because we need to handle different ref_clk rates
depending on which board is being used. The clock init in this case is
modified to set the rate before registering the clocks instead of using
davinci_set_refclk_rate() to recalculate the entire clock tree after all
of the clocks are registered.
Also, the cpu_clks field is removed from struct davinci_soc_info since it
is no longer needed.
Signed-off-by: David Lechner <david@lechnology.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
21 files changed, 70 insertions, 39 deletions
diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c index 4a640af80be2..004f9c8de032 100644 --- a/arch/arm/mach-davinci/board-da830-evm.c +++ b/arch/arm/mach-davinci/board-da830-evm.c | |||
@@ -634,7 +634,7 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") | |||
634 | .atag_offset = 0x100, | 634 | .atag_offset = 0x100, |
635 | .map_io = da830_evm_map_io, | 635 | .map_io = da830_evm_map_io, |
636 | .init_irq = cp_intc_init, | 636 | .init_irq = cp_intc_init, |
637 | .init_time = davinci_timer_init, | 637 | .init_time = da830_init_time, |
638 | .init_machine = da830_evm_init, | 638 | .init_machine = da830_evm_init, |
639 | .init_late = davinci_init_late, | 639 | .init_late = davinci_init_late, |
640 | .dma_zone_size = SZ_128M, | 640 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index b3a764feae11..3063478bcc36 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
@@ -1477,7 +1477,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") | |||
1477 | .atag_offset = 0x100, | 1477 | .atag_offset = 0x100, |
1478 | .map_io = da850_evm_map_io, | 1478 | .map_io = da850_evm_map_io, |
1479 | .init_irq = cp_intc_init, | 1479 | .init_irq = cp_intc_init, |
1480 | .init_time = davinci_timer_init, | 1480 | .init_time = da850_init_time, |
1481 | .init_machine = da850_evm_init, | 1481 | .init_machine = da850_evm_init, |
1482 | .init_late = davinci_init_late, | 1482 | .init_late = davinci_init_late, |
1483 | .dma_zone_size = SZ_128M, | 1483 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c index 29dbfc944e02..9ef24513ade7 100644 --- a/arch/arm/mach-davinci/board-dm355-evm.c +++ b/arch/arm/mach-davinci/board-dm355-evm.c | |||
@@ -427,7 +427,7 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") | |||
427 | .atag_offset = 0x100, | 427 | .atag_offset = 0x100, |
428 | .map_io = dm355_evm_map_io, | 428 | .map_io = dm355_evm_map_io, |
429 | .init_irq = davinci_irq_init, | 429 | .init_irq = davinci_irq_init, |
430 | .init_time = davinci_timer_init, | 430 | .init_time = dm355_init_time, |
431 | .init_machine = dm355_evm_init, | 431 | .init_machine = dm355_evm_init, |
432 | .init_late = davinci_init_late, | 432 | .init_late = davinci_init_late, |
433 | .dma_zone_size = SZ_128M, | 433 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-dm355-leopard.c b/arch/arm/mach-davinci/board-dm355-leopard.c index 1e7e9b8f3bae..3ebc89d0bb94 100644 --- a/arch/arm/mach-davinci/board-dm355-leopard.c +++ b/arch/arm/mach-davinci/board-dm355-leopard.c | |||
@@ -271,7 +271,7 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") | |||
271 | .atag_offset = 0x100, | 271 | .atag_offset = 0x100, |
272 | .map_io = dm355_leopard_map_io, | 272 | .map_io = dm355_leopard_map_io, |
273 | .init_irq = davinci_irq_init, | 273 | .init_irq = davinci_irq_init, |
274 | .init_time = davinci_timer_init, | 274 | .init_time = dm355_init_time, |
275 | .init_machine = dm355_leopard_init, | 275 | .init_machine = dm355_leopard_init, |
276 | .init_late = davinci_init_late, | 276 | .init_late = davinci_init_late, |
277 | .dma_zone_size = SZ_128M, | 277 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index 17b2c29f4053..3daeac747b1e 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
@@ -774,7 +774,7 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") | |||
774 | .atag_offset = 0x100, | 774 | .atag_offset = 0x100, |
775 | .map_io = dm365_evm_map_io, | 775 | .map_io = dm365_evm_map_io, |
776 | .init_irq = davinci_irq_init, | 776 | .init_irq = davinci_irq_init, |
777 | .init_time = davinci_timer_init, | 777 | .init_time = dm365_init_time, |
778 | .init_machine = dm365_evm_init, | 778 | .init_machine = dm365_evm_init, |
779 | .init_late = davinci_init_late, | 779 | .init_late = davinci_init_late, |
780 | .dma_zone_size = SZ_128M, | 780 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index 35e1274183e1..95b55aae1366 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c | |||
@@ -828,7 +828,7 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") | |||
828 | .atag_offset = 0x100, | 828 | .atag_offset = 0x100, |
829 | .map_io = davinci_evm_map_io, | 829 | .map_io = davinci_evm_map_io, |
830 | .init_irq = davinci_irq_init, | 830 | .init_irq = davinci_irq_init, |
831 | .init_time = davinci_timer_init, | 831 | .init_time = dm644x_init_time, |
832 | .init_machine = davinci_evm_init, | 832 | .init_machine = davinci_evm_init, |
833 | .init_late = davinci_init_late, | 833 | .init_late = davinci_init_late, |
834 | .dma_zone_size = SZ_128M, | 834 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 003bbe5c24fd..2d37f5b0e1f5 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
@@ -44,10 +44,8 @@ | |||
44 | #include <mach/common.h> | 44 | #include <mach/common.h> |
45 | #include <mach/irqs.h> | 45 | #include <mach/irqs.h> |
46 | #include <mach/serial.h> | 46 | #include <mach/serial.h> |
47 | #include <mach/clock.h> | ||
48 | 47 | ||
49 | #include "davinci.h" | 48 | #include "davinci.h" |
50 | #include "clock.h" | ||
51 | 49 | ||
52 | #define NAND_BLOCK_SIZE SZ_128K | 50 | #define NAND_BLOCK_SIZE SZ_128K |
53 | 51 | ||
@@ -716,14 +714,23 @@ static void __init evm_init_i2c(void) | |||
716 | } | 714 | } |
717 | #endif | 715 | #endif |
718 | 716 | ||
717 | #define DM646X_REF_FREQ 27000000 | ||
718 | #define DM646X_AUX_FREQ 24000000 | ||
719 | #define DM6467T_EVM_REF_FREQ 33000000 | 719 | #define DM6467T_EVM_REF_FREQ 33000000 |
720 | 720 | ||
721 | static void __init davinci_map_io(void) | 721 | static void __init davinci_map_io(void) |
722 | { | 722 | { |
723 | dm646x_init(); | 723 | dm646x_init(); |
724 | } | ||
724 | 725 | ||
725 | if (machine_is_davinci_dm6467tevm()) | 726 | static void __init dm646x_evm_init_time(void) |
726 | davinci_set_refclk_rate(DM6467T_EVM_REF_FREQ); | 727 | { |
728 | dm646x_init_time(DM646X_REF_FREQ, DM646X_AUX_FREQ); | ||
729 | } | ||
730 | |||
731 | static void __init dm6467t_evm_init_time(void) | ||
732 | { | ||
733 | dm646x_init_time(DM6467T_EVM_REF_FREQ, DM646X_AUX_FREQ); | ||
727 | } | 734 | } |
728 | 735 | ||
729 | #define DM646X_EVM_PHY_ID "davinci_mdio-0:01" | 736 | #define DM646X_EVM_PHY_ID "davinci_mdio-0:01" |
@@ -797,7 +804,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | |||
797 | .atag_offset = 0x100, | 804 | .atag_offset = 0x100, |
798 | .map_io = davinci_map_io, | 805 | .map_io = davinci_map_io, |
799 | .init_irq = davinci_irq_init, | 806 | .init_irq = davinci_irq_init, |
800 | .init_time = davinci_timer_init, | 807 | .init_time = dm646x_evm_init_time, |
801 | .init_machine = evm_init, | 808 | .init_machine = evm_init, |
802 | .init_late = davinci_init_late, | 809 | .init_late = davinci_init_late, |
803 | .dma_zone_size = SZ_128M, | 810 | .dma_zone_size = SZ_128M, |
@@ -807,7 +814,7 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") | |||
807 | .atag_offset = 0x100, | 814 | .atag_offset = 0x100, |
808 | .map_io = davinci_map_io, | 815 | .map_io = davinci_map_io, |
809 | .init_irq = davinci_irq_init, | 816 | .init_irq = davinci_irq_init, |
810 | .init_time = davinci_timer_init, | 817 | .init_time = dm6467t_evm_init_time, |
811 | .init_machine = evm_init, | 818 | .init_machine = evm_init, |
812 | .init_late = davinci_init_late, | 819 | .init_late = davinci_init_late, |
813 | .dma_zone_size = SZ_128M, | 820 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-mityomapl138.c b/arch/arm/mach-davinci/board-mityomapl138.c index 72748e5df43c..d1c85484c2e2 100644 --- a/arch/arm/mach-davinci/board-mityomapl138.c +++ b/arch/arm/mach-davinci/board-mityomapl138.c | |||
@@ -566,7 +566,7 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") | |||
566 | .atag_offset = 0x100, | 566 | .atag_offset = 0x100, |
567 | .map_io = mityomapl138_map_io, | 567 | .map_io = mityomapl138_map_io, |
568 | .init_irq = cp_intc_init, | 568 | .init_irq = cp_intc_init, |
569 | .init_time = davinci_timer_init, | 569 | .init_time = da850_init_time, |
570 | .init_machine = mityomapl138_init, | 570 | .init_machine = mityomapl138_init, |
571 | .init_late = davinci_init_late, | 571 | .init_late = davinci_init_late, |
572 | .dma_zone_size = SZ_128M, | 572 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-neuros-osd2.c b/arch/arm/mach-davinci/board-neuros-osd2.c index 51a3ae19d765..f2875770fbff 100644 --- a/arch/arm/mach-davinci/board-neuros-osd2.c +++ b/arch/arm/mach-davinci/board-neuros-osd2.c | |||
@@ -227,7 +227,7 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2") | |||
227 | .atag_offset = 0x100, | 227 | .atag_offset = 0x100, |
228 | .map_io = davinci_ntosd2_map_io, | 228 | .map_io = davinci_ntosd2_map_io, |
229 | .init_irq = davinci_irq_init, | 229 | .init_irq = davinci_irq_init, |
230 | .init_time = davinci_timer_init, | 230 | .init_time = dm644x_init_time, |
231 | .init_machine = davinci_ntosd2_init, | 231 | .init_machine = davinci_ntosd2_init, |
232 | .init_late = davinci_init_late, | 232 | .init_late = davinci_init_late, |
233 | .dma_zone_size = SZ_128M, | 233 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c index ae37bc46bc8c..e2ba9da6c717 100644 --- a/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c | |||
@@ -330,7 +330,7 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") | |||
330 | .atag_offset = 0x100, | 330 | .atag_offset = 0x100, |
331 | .map_io = omapl138_hawk_map_io, | 331 | .map_io = omapl138_hawk_map_io, |
332 | .init_irq = cp_intc_init, | 332 | .init_irq = cp_intc_init, |
333 | .init_time = davinci_timer_init, | 333 | .init_time = da850_init_time, |
334 | .init_machine = omapl138_hawk_init, | 334 | .init_machine = omapl138_hawk_init, |
335 | .init_late = davinci_init_late, | 335 | .init_late = davinci_init_late, |
336 | .dma_zone_size = SZ_128M, | 336 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/board-sffsdr.c b/arch/arm/mach-davinci/board-sffsdr.c index 1f02d4ec6144..2922da9d1684 100644 --- a/arch/arm/mach-davinci/board-sffsdr.c +++ b/arch/arm/mach-davinci/board-sffsdr.c | |||
@@ -150,7 +150,7 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR") | |||
150 | .atag_offset = 0x100, | 150 | .atag_offset = 0x100, |
151 | .map_io = davinci_sffsdr_map_io, | 151 | .map_io = davinci_sffsdr_map_io, |
152 | .init_irq = davinci_irq_init, | 152 | .init_irq = davinci_irq_init, |
153 | .init_time = davinci_timer_init, | 153 | .init_time = dm644x_init_time, |
154 | .init_machine = davinci_sffsdr_init, | 154 | .init_machine = davinci_sffsdr_init, |
155 | .init_late = davinci_init_late, | 155 | .init_late = davinci_init_late, |
156 | .dma_zone_size = SZ_128M, | 156 | .dma_zone_size = SZ_128M, |
diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c index 57ab18cf2a89..350d7673aa4d 100644 --- a/arch/arm/mach-davinci/da830.c +++ b/arch/arm/mach-davinci/da830.c | |||
@@ -1200,7 +1200,6 @@ static const struct davinci_soc_info davinci_soc_info_da830 = { | |||
1200 | .jtag_id_reg = DA8XX_SYSCFG0_BASE + DA8XX_JTAG_ID_REG, | 1200 | .jtag_id_reg = DA8XX_SYSCFG0_BASE + DA8XX_JTAG_ID_REG, |
1201 | .ids = da830_ids, | 1201 | .ids = da830_ids, |
1202 | .ids_num = ARRAY_SIZE(da830_ids), | 1202 | .ids_num = ARRAY_SIZE(da830_ids), |
1203 | .cpu_clks = da830_clks, | ||
1204 | .psc_bases = da830_psc_bases, | 1203 | .psc_bases = da830_psc_bases, |
1205 | .psc_bases_num = ARRAY_SIZE(da830_psc_bases), | 1204 | .psc_bases_num = ARRAY_SIZE(da830_psc_bases), |
1206 | .pinmux_base = DA8XX_SYSCFG0_BASE + 0x120, | 1205 | .pinmux_base = DA8XX_SYSCFG0_BASE + 0x120, |
@@ -1220,6 +1219,10 @@ void __init da830_init(void) | |||
1220 | 1219 | ||
1221 | da8xx_syscfg0_base = ioremap(DA8XX_SYSCFG0_BASE, SZ_4K); | 1220 | da8xx_syscfg0_base = ioremap(DA8XX_SYSCFG0_BASE, SZ_4K); |
1222 | WARN(!da8xx_syscfg0_base, "Unable to map syscfg0 module"); | 1221 | WARN(!da8xx_syscfg0_base, "Unable to map syscfg0 module"); |
1222 | } | ||
1223 | 1223 | ||
1224 | davinci_clk_init(davinci_soc_info_da830.cpu_clks); | 1224 | void __init da830_init_time(void) |
1225 | { | ||
1226 | davinci_clk_init(da830_clks); | ||
1227 | davinci_timer_init(); | ||
1225 | } | 1228 | } |
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index aa37cbdf7d4d..34117e614e08 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c | |||
@@ -1353,7 +1353,6 @@ static const struct davinci_soc_info davinci_soc_info_da850 = { | |||
1353 | .jtag_id_reg = DA8XX_SYSCFG0_BASE + DA8XX_JTAG_ID_REG, | 1353 | .jtag_id_reg = DA8XX_SYSCFG0_BASE + DA8XX_JTAG_ID_REG, |
1354 | .ids = da850_ids, | 1354 | .ids = da850_ids, |
1355 | .ids_num = ARRAY_SIZE(da850_ids), | 1355 | .ids_num = ARRAY_SIZE(da850_ids), |
1356 | .cpu_clks = da850_clks, | ||
1357 | .psc_bases = da850_psc_bases, | 1356 | .psc_bases = da850_psc_bases, |
1358 | .psc_bases_num = ARRAY_SIZE(da850_psc_bases), | 1357 | .psc_bases_num = ARRAY_SIZE(da850_psc_bases), |
1359 | .pinmux_base = DA8XX_SYSCFG0_BASE + 0x120, | 1358 | .pinmux_base = DA8XX_SYSCFG0_BASE + 0x120, |
@@ -1392,6 +1391,10 @@ void __init da850_init(void) | |||
1392 | v = __raw_readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG)); | 1391 | v = __raw_readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG)); |
1393 | v &= ~CFGCHIP3_PLL1_MASTER_LOCK; | 1392 | v &= ~CFGCHIP3_PLL1_MASTER_LOCK; |
1394 | __raw_writel(v, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG)); | 1393 | __raw_writel(v, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG)); |
1394 | } | ||
1395 | 1395 | ||
1396 | davinci_clk_init(davinci_soc_info_da850.cpu_clks); | 1396 | void __init da850_init_time(void) |
1397 | { | ||
1398 | davinci_clk_init(da850_clks); | ||
1399 | davinci_timer_init(); | ||
1397 | } | 1400 | } |
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c index 779e8ce887c3..ab199f4b9ce4 100644 --- a/arch/arm/mach-davinci/da8xx-dt.c +++ b/arch/arm/mach-davinci/da8xx-dt.c | |||
@@ -96,7 +96,7 @@ static const char *const da850_boards_compat[] __initconst = { | |||
96 | 96 | ||
97 | DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x") | 97 | DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x") |
98 | .map_io = da850_init, | 98 | .map_io = da850_init, |
99 | .init_time = davinci_timer_init, | 99 | .init_time = da850_init_time, |
100 | .init_machine = da850_init_machine, | 100 | .init_machine = da850_init_machine, |
101 | .dt_compat = da850_boards_compat, | 101 | .dt_compat = da850_boards_compat, |
102 | .init_late = davinci_init_late, | 102 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h index c62b90c6118a..270cef85750a 100644 --- a/arch/arm/mach-davinci/davinci.h +++ b/arch/arm/mach-davinci/davinci.h | |||
@@ -83,6 +83,7 @@ int davinci_init_wdt(void); | |||
83 | 83 | ||
84 | /* DM355 function declarations */ | 84 | /* DM355 function declarations */ |
85 | void dm355_init(void); | 85 | void dm355_init(void); |
86 | void dm355_init_time(void); | ||
86 | void dm355_init_spi0(unsigned chipselect_mask, | 87 | void dm355_init_spi0(unsigned chipselect_mask, |
87 | const struct spi_board_info *info, unsigned len); | 88 | const struct spi_board_info *info, unsigned len); |
88 | void dm355_init_asp1(u32 evt_enable); | 89 | void dm355_init_asp1(u32 evt_enable); |
@@ -91,6 +92,7 @@ int dm355_gpio_register(void); | |||
91 | 92 | ||
92 | /* DM365 function declarations */ | 93 | /* DM365 function declarations */ |
93 | void dm365_init(void); | 94 | void dm365_init(void); |
95 | void dm365_init_time(void); | ||
94 | void dm365_init_asp(void); | 96 | void dm365_init_asp(void); |
95 | void dm365_init_vc(void); | 97 | void dm365_init_vc(void); |
96 | void dm365_init_ks(struct davinci_ks_platform_data *pdata); | 98 | void dm365_init_ks(struct davinci_ks_platform_data *pdata); |
@@ -102,12 +104,14 @@ int dm365_gpio_register(void); | |||
102 | 104 | ||
103 | /* DM644x function declarations */ | 105 | /* DM644x function declarations */ |
104 | void dm644x_init(void); | 106 | void dm644x_init(void); |
107 | void dm644x_init_time(void); | ||
105 | void dm644x_init_asp(void); | 108 | void dm644x_init_asp(void); |
106 | int dm644x_init_video(struct vpfe_config *, struct vpbe_config *); | 109 | int dm644x_init_video(struct vpfe_config *, struct vpbe_config *); |
107 | int dm644x_gpio_register(void); | 110 | int dm644x_gpio_register(void); |
108 | 111 | ||
109 | /* DM646x function declarations */ | 112 | /* DM646x function declarations */ |
110 | void dm646x_init(void); | 113 | void dm646x_init(void); |
114 | void dm646x_init_time(unsigned long ref_clk_rate, unsigned long aux_clkin_rate); | ||
111 | void dm646x_init_mcasp0(struct snd_platform_data *pdata); | 115 | void dm646x_init_mcasp0(struct snd_platform_data *pdata); |
112 | void dm646x_init_mcasp1(struct snd_platform_data *pdata); | 116 | void dm646x_init_mcasp1(struct snd_platform_data *pdata); |
113 | int dm646x_init_edma(struct edma_rsv_info *rsv); | 117 | int dm646x_init_edma(struct edma_rsv_info *rsv); |
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c index 938747f20c22..f29480495c18 100644 --- a/arch/arm/mach-davinci/dm355.c +++ b/arch/arm/mach-davinci/dm355.c | |||
@@ -1012,7 +1012,6 @@ static const struct davinci_soc_info davinci_soc_info_dm355 = { | |||
1012 | .jtag_id_reg = 0x01c40028, | 1012 | .jtag_id_reg = 0x01c40028, |
1013 | .ids = dm355_ids, | 1013 | .ids = dm355_ids, |
1014 | .ids_num = ARRAY_SIZE(dm355_ids), | 1014 | .ids_num = ARRAY_SIZE(dm355_ids), |
1015 | .cpu_clks = dm355_clks, | ||
1016 | .psc_bases = dm355_psc_bases, | 1015 | .psc_bases = dm355_psc_bases, |
1017 | .psc_bases_num = ARRAY_SIZE(dm355_psc_bases), | 1016 | .psc_bases_num = ARRAY_SIZE(dm355_psc_bases), |
1018 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, | 1017 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, |
@@ -1043,7 +1042,12 @@ void __init dm355_init(void) | |||
1043 | { | 1042 | { |
1044 | davinci_common_init(&davinci_soc_info_dm355); | 1043 | davinci_common_init(&davinci_soc_info_dm355); |
1045 | davinci_map_sysmod(); | 1044 | davinci_map_sysmod(); |
1046 | davinci_clk_init(davinci_soc_info_dm355.cpu_clks); | 1045 | } |
1046 | |||
1047 | void __init dm355_init_time(void) | ||
1048 | { | ||
1049 | davinci_clk_init(dm355_clks); | ||
1050 | davinci_timer_init(); | ||
1047 | } | 1051 | } |
1048 | 1052 | ||
1049 | int __init dm355_init_video(struct vpfe_config *vpfe_cfg, | 1053 | int __init dm355_init_video(struct vpfe_config *vpfe_cfg, |
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index 5d9f96df08e9..1e3df9df1e10 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c | |||
@@ -1116,7 +1116,6 @@ static const struct davinci_soc_info davinci_soc_info_dm365 = { | |||
1116 | .jtag_id_reg = 0x01c40028, | 1116 | .jtag_id_reg = 0x01c40028, |
1117 | .ids = dm365_ids, | 1117 | .ids = dm365_ids, |
1118 | .ids_num = ARRAY_SIZE(dm365_ids), | 1118 | .ids_num = ARRAY_SIZE(dm365_ids), |
1119 | .cpu_clks = dm365_clks, | ||
1120 | .psc_bases = dm365_psc_bases, | 1119 | .psc_bases = dm365_psc_bases, |
1121 | .psc_bases_num = ARRAY_SIZE(dm365_psc_bases), | 1120 | .psc_bases_num = ARRAY_SIZE(dm365_psc_bases), |
1122 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, | 1121 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, |
@@ -1168,7 +1167,12 @@ void __init dm365_init(void) | |||
1168 | { | 1167 | { |
1169 | davinci_common_init(&davinci_soc_info_dm365); | 1168 | davinci_common_init(&davinci_soc_info_dm365); |
1170 | davinci_map_sysmod(); | 1169 | davinci_map_sysmod(); |
1171 | davinci_clk_init(davinci_soc_info_dm365.cpu_clks); | 1170 | } |
1171 | |||
1172 | void __init dm365_init_time(void) | ||
1173 | { | ||
1174 | davinci_clk_init(dm365_clks); | ||
1175 | davinci_timer_init(); | ||
1172 | } | 1176 | } |
1173 | 1177 | ||
1174 | static struct resource dm365_vpss_resources[] = { | 1178 | static struct resource dm365_vpss_resources[] = { |
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index 6b41e1ca511e..b409801649e1 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c | |||
@@ -905,7 +905,6 @@ static const struct davinci_soc_info davinci_soc_info_dm644x = { | |||
905 | .jtag_id_reg = 0x01c40028, | 905 | .jtag_id_reg = 0x01c40028, |
906 | .ids = dm644x_ids, | 906 | .ids = dm644x_ids, |
907 | .ids_num = ARRAY_SIZE(dm644x_ids), | 907 | .ids_num = ARRAY_SIZE(dm644x_ids), |
908 | .cpu_clks = dm644x_clks, | ||
909 | .psc_bases = dm644x_psc_bases, | 908 | .psc_bases = dm644x_psc_bases, |
910 | .psc_bases_num = ARRAY_SIZE(dm644x_psc_bases), | 909 | .psc_bases_num = ARRAY_SIZE(dm644x_psc_bases), |
911 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, | 910 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, |
@@ -931,7 +930,12 @@ void __init dm644x_init(void) | |||
931 | { | 930 | { |
932 | davinci_common_init(&davinci_soc_info_dm644x); | 931 | davinci_common_init(&davinci_soc_info_dm644x); |
933 | davinci_map_sysmod(); | 932 | davinci_map_sysmod(); |
934 | davinci_clk_init(davinci_soc_info_dm644x.cpu_clks); | 933 | } |
934 | |||
935 | void __init dm644x_init_time(void) | ||
936 | { | ||
937 | davinci_clk_init(dm644x_clks); | ||
938 | davinci_timer_init(); | ||
935 | } | 939 | } |
936 | 940 | ||
937 | int __init dm644x_init_video(struct vpfe_config *vpfe_cfg, | 941 | int __init dm644x_init_video(struct vpfe_config *vpfe_cfg, |
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c index 6fc06a6ad4f8..109ab1fa0d2c 100644 --- a/arch/arm/mach-davinci/dm646x.c +++ b/arch/arm/mach-davinci/dm646x.c | |||
@@ -39,12 +39,6 @@ | |||
39 | #define VSCLKDIS_MASK (BIT_MASK(11) | BIT_MASK(10) | BIT_MASK(9) |\ | 39 | #define VSCLKDIS_MASK (BIT_MASK(11) | BIT_MASK(10) | BIT_MASK(9) |\ |
40 | BIT_MASK(8)) | 40 | BIT_MASK(8)) |
41 | 41 | ||
42 | /* | ||
43 | * Device specific clocks | ||
44 | */ | ||
45 | #define DM646X_REF_FREQ 27000000 | ||
46 | #define DM646X_AUX_FREQ 24000000 | ||
47 | |||
48 | #define DM646X_EMAC_BASE 0x01c80000 | 42 | #define DM646X_EMAC_BASE 0x01c80000 |
49 | #define DM646X_EMAC_MDIO_BASE (DM646X_EMAC_BASE + 0x4000) | 43 | #define DM646X_EMAC_MDIO_BASE (DM646X_EMAC_BASE + 0x4000) |
50 | #define DM646X_EMAC_CNTRL_OFFSET 0x0000 | 44 | #define DM646X_EMAC_CNTRL_OFFSET 0x0000 |
@@ -64,13 +58,12 @@ static struct pll_data pll2_data = { | |||
64 | 58 | ||
65 | static struct clk ref_clk = { | 59 | static struct clk ref_clk = { |
66 | .name = "ref_clk", | 60 | .name = "ref_clk", |
67 | .rate = DM646X_REF_FREQ, | 61 | /* rate is initialized in dm646x_init_time() */ |
68 | .set_rate = davinci_simple_set_rate, | ||
69 | }; | 62 | }; |
70 | 63 | ||
71 | static struct clk aux_clkin = { | 64 | static struct clk aux_clkin = { |
72 | .name = "aux_clkin", | 65 | .name = "aux_clkin", |
73 | .rate = DM646X_AUX_FREQ, | 66 | /* rate is initialized in dm646x_init_time() */ |
74 | }; | 67 | }; |
75 | 68 | ||
76 | static struct clk pll1_clk = { | 69 | static struct clk pll1_clk = { |
@@ -888,7 +881,6 @@ static const struct davinci_soc_info davinci_soc_info_dm646x = { | |||
888 | .jtag_id_reg = 0x01c40028, | 881 | .jtag_id_reg = 0x01c40028, |
889 | .ids = dm646x_ids, | 882 | .ids = dm646x_ids, |
890 | .ids_num = ARRAY_SIZE(dm646x_ids), | 883 | .ids_num = ARRAY_SIZE(dm646x_ids), |
891 | .cpu_clks = dm646x_clks, | ||
892 | .psc_bases = dm646x_psc_bases, | 884 | .psc_bases = dm646x_psc_bases, |
893 | .psc_bases_num = ARRAY_SIZE(dm646x_psc_bases), | 885 | .psc_bases_num = ARRAY_SIZE(dm646x_psc_bases), |
894 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, | 886 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, |
@@ -956,7 +948,15 @@ void __init dm646x_init(void) | |||
956 | { | 948 | { |
957 | davinci_common_init(&davinci_soc_info_dm646x); | 949 | davinci_common_init(&davinci_soc_info_dm646x); |
958 | davinci_map_sysmod(); | 950 | davinci_map_sysmod(); |
959 | davinci_clk_init(davinci_soc_info_dm646x.cpu_clks); | 951 | } |
952 | |||
953 | void __init dm646x_init_time(unsigned long ref_clk_rate, | ||
954 | unsigned long aux_clkin_rate) | ||
955 | { | ||
956 | ref_clk.rate = ref_clk_rate; | ||
957 | aux_clkin.rate = aux_clkin_rate; | ||
958 | davinci_clk_init(dm646x_clks); | ||
959 | davinci_timer_init(); | ||
960 | } | 960 | } |
961 | 961 | ||
962 | static int __init dm646x_init_devices(void) | 962 | static int __init dm646x_init_devices(void) |
diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h index 19b9346e147e..f0d5e858f158 100644 --- a/arch/arm/mach-davinci/include/mach/common.h +++ b/arch/arm/mach-davinci/include/mach/common.h | |||
@@ -53,7 +53,6 @@ struct davinci_soc_info { | |||
53 | u32 jtag_id_reg; | 53 | u32 jtag_id_reg; |
54 | struct davinci_id *ids; | 54 | struct davinci_id *ids; |
55 | unsigned long ids_num; | 55 | unsigned long ids_num; |
56 | struct clk_lookup *cpu_clks; | ||
57 | u32 *psc_bases; | 56 | u32 *psc_bases; |
58 | unsigned long psc_bases_num; | 57 | unsigned long psc_bases_num; |
59 | u32 pinmux_base; | 58 | u32 pinmux_base; |
diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h index fe2d77654c06..9fd6d0125762 100644 --- a/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/arch/arm/mach-davinci/include/mach/da8xx.h | |||
@@ -88,7 +88,10 @@ extern unsigned int da850_max_speed; | |||
88 | #define DA8XX_ARM_RAM_BASE 0xffff0000 | 88 | #define DA8XX_ARM_RAM_BASE 0xffff0000 |
89 | 89 | ||
90 | void da830_init(void); | 90 | void da830_init(void); |
91 | void da830_init_time(void); | ||
92 | |||
91 | void da850_init(void); | 93 | void da850_init(void); |
94 | void da850_init_time(void); | ||
92 | 95 | ||
93 | int da830_register_edma(struct edma_rsv_info *rsv); | 96 | int da830_register_edma(struct edma_rsv_info *rsv); |
94 | int da850_register_edma(struct edma_rsv_info *rsv[2]); | 97 | int da850_register_edma(struct edma_rsv_info *rsv[2]); |