Skip to content

Commit

Permalink
[ARM] Kirkwood: prepare for runtime-determined timer tick rate
Browse files Browse the repository at this point in the history
Currently, kirkwood uses a hardcoded timer tick rate of 166 MHz, but
the actual timer tick rate varies between different members of the SoC
family.

This patch prepares for runtime determination of the timer tick rate.

Signed-off-by: Ronen Shitrit <rshitrit@marvell.com>
  • Loading branch information
Ronen Shitrit authored and Nicolas Pitre committed Sep 25, 2008
1 parent 0b0740c commit 79d4dd7
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
22 changes: 16 additions & 6 deletions arch/arm/mach-kirkwood/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ void __init kirkwood_ehci_init(void)
* GE00
****************************************************************************/
struct mv643xx_eth_shared_platform_data kirkwood_ge00_shared_data = {
.t_clk = KIRKWOOD_TCLK,
.dram = &kirkwood_mbus_dram_info,
};

Expand Down Expand Up @@ -206,7 +205,6 @@ void __init kirkwood_sata_init(struct mv_sata_platform_data *sata_data)
* SPI
****************************************************************************/
static struct orion_spi_info kirkwood_spi_plat_data = {
.tclk = KIRKWOOD_TCLK,
};

static struct resource kirkwood_spi_resources[] = {
Expand Down Expand Up @@ -244,7 +242,7 @@ static struct plat_serial8250_port kirkwood_uart0_data[] = {
.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM,
.regshift = 2,
.uartclk = KIRKWOOD_TCLK,
.uartclk = 0,
}, {
},
};
Expand Down Expand Up @@ -288,7 +286,7 @@ static struct plat_serial8250_port kirkwood_uart1_data[] = {
.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM,
.regshift = 2,
.uartclk = KIRKWOOD_TCLK,
.uartclk = 0,
}, {
},
};
Expand Down Expand Up @@ -530,9 +528,17 @@ void __init kirkwood_xor1_init(void)
/*****************************************************************************
* Time handling
****************************************************************************/
int kirkwood_tclk;

int __init kirkwood_find_tclk(void)
{
return 166666667;
}

static void kirkwood_timer_init(void)
{
orion_time_init(IRQ_KIRKWOOD_BRIDGE, KIRKWOOD_TCLK);
kirkwood_tclk = kirkwood_find_tclk();
orion_time_init(IRQ_KIRKWOOD_BRIDGE, kirkwood_tclk);
}

struct sys_timer kirkwood_timer = {
Expand Down Expand Up @@ -565,7 +571,11 @@ static int __init is_l2_writethrough(void)
void __init kirkwood_init(void)
{
printk(KERN_INFO "Kirkwood: %s, TCLK=%d.\n",
kirkwood_id(), KIRKWOOD_TCLK);
kirkwood_id(), kirkwood_tclk);
kirkwood_ge00_shared_data.t_clk = kirkwood_tclk;
kirkwood_spi_plat_data.tclk = kirkwood_tclk;
kirkwood_uart0_data[0].uartclk = kirkwood_tclk;
kirkwood_uart1_data[0].uartclk = kirkwood_tclk;

kirkwood_setup_cpu_mbus();

Expand Down
1 change: 0 additions & 1 deletion arch/arm/mach-kirkwood/include/mach/timex.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,3 @@

#define CLOCK_TICK_RATE (100 * HZ)

#define KIRKWOOD_TCLK 166666667

0 comments on commit 79d4dd7

Please sign in to comment.