OSDN Git Service

Timer assignment update
authorYoshinori Sato <ysato@users.sourceforge.jp>
Fri, 9 Jan 2015 17:37:53 +0000 (02:37 +0900)
committerYoshinori Sato <ysato@users.sourceforge.jp>
Fri, 9 Jan 2015 17:37:53 +0000 (02:37 +0900)
arch/h8300/Kconfig.cpu
arch/h8300/kernel/cpu/h83069/setup.c
arch/h8300/kernel/cpu/h8s2678/setup.c
arch/h8300/kernel/timer/timer16.c
arch/h8300/kernel/timer/timer8.c

index 2f37a53..1e0e8db 100644 (file)
@@ -71,16 +71,15 @@ config H83069
 config H8S2678
        bool "H8S/2670,2673,2674R,2675,2676"
        select CPU_H8S
-       select H8300_TIMER8_CED
 
 endchoice
 
 config CPU_CLOCK
        int "CPU Clock Frequency"
        depends on ROMKERNEL
-       default "20000000" if H8300H_AKI3068NET || H8300H_SIM
-       default "25000000" if H8300H_H8MAX || H8300H_KANEBEBE
-       default "33333333" if H8S_EDOSK2674 || H8S_SIM
+       default "200000000" if H8300H_AKI3068NET || H8300H_SIM
+       default "250000000" if H8300H_H8MAX || H8300H_KANEBEBE
+       default "333333333" if H8S_EDOSK2674 || H8S_SIM
        help
          CPU Clock Frequency
 
@@ -126,9 +125,6 @@ config RAMSIZE
        default 0x400000 if H8300_KANEBEBE
        default 0x800000 if H8S_EDOSK2674 || H8S_SIM
 
-config H8300_TIMER8_CED
-        bool
-
 source "kernel/Kconfig.preempt"
 
 source "mm/Kconfig"
index a5f046a..28b367b 100644 (file)
@@ -63,8 +63,8 @@ static struct platform_device sci1_device = {
        },
 };
 
-static struct h8300_timer8_config timer8_platform_data = {
-       .mode   = H8300_TMR8_CLKSRC,
+static struct h8300_timer8_config tm8_unit0_platform_data = {
+       .mode   = H8300_TMR8_CLKEVTDEV,
        .div    = H8300_TMR8_DIV_64,
        .rating = 200,
 };
@@ -79,12 +79,18 @@ static struct platform_device timer8_unit0_device = {
        .name           = "h8300-8timer",
        .id             = 0,
        .dev = {
-               .platform_data  = &timer8_platform_data,
+               .platform_data  = &tm8_unit0_platform_data,
        },
        .resource       = tm8_unit0_resources,
        .num_resources  = ARRAY_SIZE(tm8_unit0_resources),
 };
 
+static struct h8300_timer8_config tm8_unit1_platform_data = {
+       .mode   = H8300_TMR8_CLKSRC,
+       .div    = H8300_TMR8_DIV_64,
+       .rating = 200,
+};
+
 static struct resource tm8_unit1_resources[] = {
        DEFINE_RES_MEM(0xffff90, 9),
        DEFINE_RES_IRQ(40),
@@ -95,7 +101,7 @@ static struct platform_device timer8_unit1_device = {
        .name           = "h8300-8timer",
        .id             = 1,
        .dev = {
-               .platform_data  = &timer8_platform_data,
+               .platform_data  = &tm8_unit1_platform_data,
        },
        .resource       = tm8_unit1_resources,
        .num_resources  = ARRAY_SIZE(tm8_unit1_resources),
@@ -172,8 +178,8 @@ static struct platform_device timer16_ch2_device = {
 };
 
 static struct platform_device *devices[] __initdata = {
-       &timer8_unit0_device,
        &timer8_unit1_device,
+       &timer16_ch0_device,
        &timer16_ch1_device,
        &timer16_ch2_device,
        &sci0_device,
@@ -181,24 +187,24 @@ static struct platform_device *devices[] __initdata = {
 };
 
 static struct platform_device *early_devices[] __initdata = {
-       &timer16_ch0_device,
+       &timer8_unit0_device,
        &sci0_device,
        &sci1_device,
 };
 
 static int __init devices_register(void)
 {
-       /* All interrupt priority high */
-       ctrl_outb(0xff, 0xfee018);
-       ctrl_outb(0xff, 0xfee019);
        return platform_add_devices(devices,
                                    ARRAY_SIZE(devices));
 }
 
 arch_initcall(devices_register);
 
-void __init early_device_register(void)
+void __init early_device_init(void)
 {
+       /* All interrupt priority high */
+       ctrl_outb(0xff, 0xfee018);
+       ctrl_outb(0xff, 0xfee019);
        early_platform_add_devices(early_devices,
-                                  ARRAY_SIZE(devices));
+                                  ARRAY_SIZE(early_devices));
 }
index b44a340..d008e29 100644 (file)
@@ -87,7 +87,7 @@ static struct platform_device sci2_device = {
 
 static struct h8300_timer8_config timer8_platform_data = {
        .mode   = H8300_TMR8_CLKEVTDEV,
-       .div    = H8300_TMR8_DIV_8,
+       .div    = H8300_TMR8_DIV_64,
        .rating = 200,
 };
 
@@ -167,8 +167,14 @@ static int __init devices_register(void)
 }
 arch_initcall(devices_register);
 
-void __init early_device_register(void)
+void __init early_device_init(void)
 {
+       int i;
+       /* SCI / Timer enable */
+       ctrl_outw(0x07f0, 0xffff40);
+       /* All interrupt priority is 1 */
+       for(i = 0; i < 12; i++)
+               ctrl_outw(0x1111, 0xfffe00 + i * 2);
        early_platform_add_devices(early_devices,
-                                  ARRAY_SIZE(devices));
+                                  ARRAY_SIZE(early_devices));
 }
index 75a44f4..c908560 100644 (file)
@@ -316,7 +316,6 @@ static void __exit timer16_exit(void)
        platform_driver_unregister(&timer16_driver);
 }
 
-early_platform_init("earlytimer", &timer16_driver);
 subsys_initcall(timer16_init);
 module_exit(timer16_exit);
 MODULE_AUTHOR("Yoshinori Sato");
index eda34b2..c332639 100644 (file)
@@ -379,9 +379,7 @@ static void __exit timer8_exit(void)
        platform_driver_unregister(&timer8_driver);
 }
 
-#if defined(CONFIG_H8300_TIMER8_CED)
 early_platform_init("earlytimer", &timer8_driver);
-#endif
 subsys_initcall(timer8_init);
 module_exit(timer8_exit);
 MODULE_AUTHOR("Yoshinori Sato");