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:
commit
5fdebdc959
|
@ -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>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
compatible = "arm,cortex-a8";
|
||||
device_type = "cpu";
|
||||
reg = <0x0>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -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>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue