Renesas ARM Based SoC Init Delay Updates For v3.18

* Use shmobile_init_delay across a wider range of SoCs
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJT+odrAAoJENfPZGlqN0++0LUP/3wVgnOFRWv7MdgoYR1ajG26
 ZPIvQO/mZ1VQoJlq/+0u9IzVNbHA7ZmVbd0ue+pE++eLriNxWTn7LggFZOoeWKA+
 S+Gzh8LZf+wweYryqyobhe5AcLdU70prs35ZH2jp/zNE+l97oto9/c4FeLR4VG5J
 p5zCm6jzwTxMYRcLja8hbLHMu9tM3zFK4rNnvPY1uOjHkAEcxbqtDpy5WqZlya6K
 vzcoJapilheDVh4LjETmFvBfbN4GaDyy4+4zi8nWBwwB3jIODZVZJppz3gdOVbVu
 0xD/FH1HiqJe5BjOfwkOnkK99YJSpqIlmxWyszUKPFj6HceHGKHH3x7vWohsVN74
 yNQuDb/49o/K3+LqlWXj/Jaes7dm1bYSotM4abcIUwuqbbcxXM551RL8LhzVBFQv
 BKt7n+3NorUVj7gx6ioW8LkCdGngI4Ge6fejfX1CVxoZs2i5uw3jUIp58LGp9nbW
 7vc6y/euiDuiJLjN3rNrwJfScbGJvQ9Zq5ysycIEjiojRwI1IeVkMa3IWWJ/aVE3
 4OgMOK1ZOxXt+AkPTaT5ISmZpaxPHvOabdLuO7A0nRbb/JqYOGd3k49xIfTl6pQl
 p0rdJpND0anI1Bj1X7OdGcecJgR6gjSx884zPqThRlR1g5dDrqCgVLXjfLHq1/bc
 CLQyseT9QppCWR6gUPnt
 =7HU1
 -----END PGP SIGNATURE-----

Merge tag 'renesas-init-delay-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc

Merge "Renesas ARM Based SoC Init Delay Updates For v3.18" from Simon Horman:

* Use shmobile_init_delay across a wider range of SoCs

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

* tag 'renesas-init-delay-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: kzm9g: Use shmobile_init_delay()
  ARM: shmobile: bockw: Use shmobile_init_delay()
  ARM: shmobile: r8a7778: Use shmobile_init_delay()
  ARM: shmobile: sh73a0: Use shmobile_init_delay()
  ARM: shmobile: Remove shmobile_setup_delay()
  ARM: shmobile: r8a73a4: Use shmobile_init_delay()
  ARM: shmobile: sh7372: Use shmobile_init_delay()
  ARM: shmobile: r8a7778: Update DTS to include CPU frequency
  ARM: shmobile: sh73a0: Update DTS to include CPU frequency
  ARM: shmobile: sh7372: Update DTS to include CPU frequency
  ARM: shmobile: kzm9g-reference: Remove unneeded nr_irqs initialization
  ARM: shmobile: kzm9g: Remove unneeded nr_irqs initialization
  ARM: shmobile: marzen: Remove NR_IRQS_LEGACY
  ARM: shmobile: ape6evm: Use shmobile_init_delay()
  ARM: shmobile: ape6evm: Add shmobile_init_late()
  ARM: shmobile: bockw: Add shmobile_init_late()
  ARM: shmobile: marzen: Add shmobile_init_late()
  ARM: shmobile: kzm9g: Add shmobile_init_late()
This commit is contained in:
Arnd Bergmann 2014-09-05 17:11:36 +02:00
commit 5fdebdc959
17 changed files with 25 additions and 41 deletions

View File

@ -23,8 +23,14 @@
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a9";
reg = <0>;
clock-frequency = <800000000>;
};
};

View File

@ -21,6 +21,7 @@
compatible = "arm,cortex-a8";
device_type = "cpu";
reg = <0x0>;
clock-frequency = <800000000>;
};
};

View File

@ -23,11 +23,13 @@
device_type = "cpu";
compatible = "arm,cortex-a9";
reg = <0>;
clock-frequency = <1196000000>;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a9";
reg = <1>;
clock-frequency = <1196000000>;
};
};

View File

@ -59,7 +59,8 @@ static const char *ape6evm_boards_compat_dt[] __initdata = {
};
DT_MACHINE_START(APE6EVM_DT, "ape6evm")
.init_early = r8a73a4_init_early,
.init_early = shmobile_init_delay,
.init_machine = ape6evm_add_standard_devices,
.init_late = shmobile_init_late,
.dt_compat = ape6evm_boards_compat_dt,
MACHINE_END

View File

@ -283,7 +283,8 @@ static const char *ape6evm_boards_compat_dt[] __initdata = {
};
DT_MACHINE_START(APE6EVM_DT, "ape6evm")
.init_early = r8a73a4_init_early,
.init_early = shmobile_init_delay,
.init_machine = ape6evm_add_standard_devices,
.init_late = shmobile_init_late,
.dt_compat = ape6evm_boards_compat_dt,
MACHINE_END

View File

@ -80,8 +80,9 @@ static const char *bockw_boards_compat_dt[] __initdata = {
};
DT_MACHINE_START(BOCKW_DT, "bockw")
.init_early = r8a7778_init_delay,
.init_early = shmobile_init_delay,
.init_irq = r8a7778_init_irq_dt,
.init_machine = bockw_init,
.init_late = shmobile_init_late,
.dt_compat = bockw_boards_compat_dt,
MACHINE_END

View File

@ -733,7 +733,7 @@ static const char *bockw_boards_compat_dt[] __initdata = {
};
DT_MACHINE_START(BOCKW_DT, "bockw")
.init_early = r8a7778_init_delay,
.init_early = shmobile_init_delay,
.init_irq = r8a7778_init_irq_dt,
.init_machine = bockw_init,
.dt_compat = bockw_boards_compat_dt,

View File

@ -51,8 +51,8 @@ static const char *kzm9g_boards_compat_dt[] __initdata = {
DT_MACHINE_START(KZM9G_DT, "kzm9g-reference")
.smp = smp_ops(sh73a0_smp_ops),
.map_io = sh73a0_map_io,
.init_early = sh73a0_init_delay,
.nr_irqs = NR_IRQS_LEGACY,
.init_early = shmobile_init_delay,
.init_machine = kzm_init,
.init_late = shmobile_init_late,
.dt_compat = kzm9g_boards_compat_dt,
MACHINE_END

View File

@ -910,7 +910,6 @@ DT_MACHINE_START(KZM9G_DT, "kzm9g")
.smp = smp_ops(sh73a0_smp_ops),
.map_io = sh73a0_map_io,
.init_early = sh73a0_add_early_devices,
.nr_irqs = NR_IRQS_LEGACY,
.init_irq = sh73a0_init_irq,
.init_machine = kzm_init,
.init_late = shmobile_init_late,

View File

@ -64,8 +64,8 @@ DT_MACHINE_START(MARZEN, "marzen")
.map_io = r8a7779_map_io,
.init_early = shmobile_init_delay,
.init_time = marzen_init_timer,
.nr_irqs = NR_IRQS_LEGACY,
.init_irq = r8a7779_init_irq_dt,
.init_machine = marzen_init,
.init_late = shmobile_init_late,
.dt_compat = marzen_boards_compat_dt,
MACHINE_END

View File

@ -2,8 +2,6 @@
#define __ARCH_MACH_COMMON_H
extern void shmobile_earlytimer_init(void);
extern void shmobile_setup_delay(unsigned int max_cpu_core_mhz,
unsigned int mult, unsigned int div);
extern void shmobile_init_delay(void);
struct twd_local_timer;
extern void shmobile_setup_console(void);

View File

@ -14,6 +14,5 @@ void r8a73a4_add_standard_devices(void);
void r8a73a4_add_dt_devices(void);
void r8a73a4_clock_init(void);
void r8a73a4_pinmux_init(void);
void r8a73a4_init_early(void);
#endif /* __ASM_R8A73A4_H__ */

View File

@ -295,13 +295,6 @@ void __init r8a73a4_add_standard_devices(void)
r8a73a4_register_dmac();
}
void __init r8a73a4_init_early(void)
{
#ifndef CONFIG_ARM_ARCH_TIMER
shmobile_setup_delay(1500, 2, 4); /* Cortex-A15 @ 1500MHz */
#endif
}
#ifdef CONFIG_USE_OF
static const char *r8a73a4_boards_compat_dt[] __initdata = {
@ -310,7 +303,7 @@ static const char *r8a73a4_boards_compat_dt[] __initdata = {
};
DT_MACHINE_START(R8A73A4_DT, "Generic R8A73A4 (Flattened Device Tree)")
.init_early = r8a73a4_init_early,
.init_early = shmobile_init_delay,
.init_late = shmobile_init_late,
.dt_compat = r8a73a4_boards_compat_dt,
MACHINE_END

View File

@ -574,7 +574,7 @@ void __init r8a7778_init_irq_extpin(int irlm)
void __init r8a7778_init_delay(void)
{
shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */
shmobile_init_delay();
}
#ifdef CONFIG_USE_OF

View File

@ -984,7 +984,7 @@ void __init sh7372_add_early_devices(void)
void __init sh7372_add_early_devices_dt(void)
{
shmobile_setup_delay(800, 1, 3); /* Cortex-A8 @ 800MHz */
shmobile_init_delay();
sh7372_add_early_devices();
}

View File

@ -746,7 +746,7 @@ void __init sh73a0_add_standard_devices(void)
void __init sh73a0_init_delay(void)
{
shmobile_setup_delay(1196, 44, 46); /* Cortex-A9 @ 1196MHz */
shmobile_init_delay();
}
/* do nothing for !CONFIG_SMP or !CONFIG_HAVE_TWD */

View File

@ -23,8 +23,8 @@
#include <linux/delay.h>
#include <linux/of_address.h>
void __init shmobile_setup_delay_hz(unsigned int max_cpu_core_hz,
unsigned int mult, unsigned int div)
static void __init shmobile_setup_delay_hz(unsigned int max_cpu_core_hz,
unsigned int mult, unsigned int div)
{
/* calculate a worst-case loops-per-jiffy value
* based on maximum cpu core hz setting and the
@ -40,23 +40,6 @@ void __init shmobile_setup_delay_hz(unsigned int max_cpu_core_hz,
preset_lpj = max_cpu_core_hz / value;
}
void __init shmobile_setup_delay(unsigned int max_cpu_core_mhz,
unsigned int mult, unsigned int div)
{
/* calculate a worst-case loops-per-jiffy value
* based on maximum cpu core mhz setting and the
* __delay() implementation in arch/arm/lib/delay.S
*
* this will result in a longer delay than expected
* when the cpu core runs on lower frequencies.
*/
unsigned int value = (1000000 * mult) / (HZ * div);
if (!preset_lpj)
preset_lpj = max_cpu_core_mhz * value;
}
void __init shmobile_init_delay(void)
{
struct device_node *np, *cpus;