diff options
Diffstat (limited to 'arch/arm/mach-msm')
-rw-r--r-- | arch/arm/mach-msm/board-dt-8660.c | 18 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-dt-8960.c | 18 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-halibut.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-mahimahi.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-msm7x30.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-qsd8x50.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-sapphire.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-trout.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-msm/common.h | 8 | ||||
-rw-r--r-- | arch/arm/mach-msm/include/mach/uncompress.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-msm/platsmp.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-msm/timer.c | 31 |
12 files changed, 28 insertions, 79 deletions
diff --git a/arch/arm/mach-msm/board-dt-8660.c b/arch/arm/mach-msm/board-dt-8660.c index b5b4de2cdf9e..7dcfc5300bbd 100644 --- a/arch/arm/mach-msm/board-dt-8660.c +++ b/arch/arm/mach-msm/board-dt-8660.c | |||
@@ -11,26 +11,15 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/irqchip.h> | ||
14 | #include <linux/of.h> | 15 | #include <linux/of.h> |
15 | #include <linux/of_irq.h> | ||
16 | #include <linux/of_platform.h> | 16 | #include <linux/of_platform.h> |
17 | 17 | ||
18 | #include <asm/mach/arch.h> | 18 | #include <asm/mach/arch.h> |
19 | #include <asm/hardware/gic.h> | ||
20 | 19 | ||
21 | #include <mach/board.h> | 20 | #include <mach/board.h> |
22 | #include "common.h" | 21 | #include "common.h" |
23 | 22 | ||
24 | static const struct of_device_id msm_dt_gic_match[] __initconst = { | ||
25 | { .compatible = "qcom,msm-8660-qgic", .data = gic_of_init }, | ||
26 | {} | ||
27 | }; | ||
28 | |||
29 | static void __init msm8x60_init_irq(void) | ||
30 | { | ||
31 | of_irq_init(msm_dt_gic_match); | ||
32 | } | ||
33 | |||
34 | static void __init msm8x60_init_late(void) | 23 | static void __init msm8x60_init_late(void) |
35 | { | 24 | { |
36 | smd_debugfs_init(); | 25 | smd_debugfs_init(); |
@@ -55,10 +44,9 @@ static const char *msm8x60_fluid_match[] __initdata = { | |||
55 | DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") | 44 | DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") |
56 | .smp = smp_ops(msm_smp_ops), | 45 | .smp = smp_ops(msm_smp_ops), |
57 | .map_io = msm_map_msm8x60_io, | 46 | .map_io = msm_map_msm8x60_io, |
58 | .init_irq = msm8x60_init_irq, | 47 | .init_irq = irqchip_init, |
59 | .handle_irq = gic_handle_irq, | ||
60 | .init_machine = msm8x60_dt_init, | 48 | .init_machine = msm8x60_dt_init, |
61 | .init_late = msm8x60_init_late, | 49 | .init_late = msm8x60_init_late, |
62 | .timer = &msm_dt_timer, | 50 | .init_time = msm_dt_timer_init, |
63 | .dt_compat = msm8x60_fluid_match, | 51 | .dt_compat = msm8x60_fluid_match, |
64 | MACHINE_END | 52 | MACHINE_END |
diff --git a/arch/arm/mach-msm/board-dt-8960.c b/arch/arm/mach-msm/board-dt-8960.c index 4490edb71c17..73019363ffa4 100644 --- a/arch/arm/mach-msm/board-dt-8960.c +++ b/arch/arm/mach-msm/board-dt-8960.c | |||
@@ -11,24 +11,13 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/of_irq.h> | 14 | #include <linux/irqchip.h> |
15 | #include <linux/of_platform.h> | 15 | #include <linux/of_platform.h> |
16 | 16 | ||
17 | #include <asm/hardware/gic.h> | ||
18 | #include <asm/mach/arch.h> | 17 | #include <asm/mach/arch.h> |
19 | 18 | ||
20 | #include "common.h" | 19 | #include "common.h" |
21 | 20 | ||
22 | static const struct of_device_id msm_dt_gic_match[] __initconst = { | ||
23 | { .compatible = "qcom,msm-qgic2", .data = gic_of_init }, | ||
24 | { } | ||
25 | }; | ||
26 | |||
27 | static void __init msm_dt_init_irq(void) | ||
28 | { | ||
29 | of_irq_init(msm_dt_gic_match); | ||
30 | } | ||
31 | |||
32 | static void __init msm_dt_init(void) | 21 | static void __init msm_dt_init(void) |
33 | { | 22 | { |
34 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | 23 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); |
@@ -42,9 +31,8 @@ static const char * const msm8960_dt_match[] __initconst = { | |||
42 | DT_MACHINE_START(MSM8960_DT, "Qualcomm MSM (Flattened Device Tree)") | 31 | DT_MACHINE_START(MSM8960_DT, "Qualcomm MSM (Flattened Device Tree)") |
43 | .smp = smp_ops(msm_smp_ops), | 32 | .smp = smp_ops(msm_smp_ops), |
44 | .map_io = msm_map_msm8960_io, | 33 | .map_io = msm_map_msm8960_io, |
45 | .init_irq = msm_dt_init_irq, | 34 | .init_irq = irqchip_init, |
46 | .timer = &msm_dt_timer, | 35 | .init_time = msm_dt_timer_init, |
47 | .init_machine = msm_dt_init, | 36 | .init_machine = msm_dt_init, |
48 | .dt_compat = msm8960_dt_match, | 37 | .dt_compat = msm8960_dt_match, |
49 | .handle_irq = gic_handle_irq, | ||
50 | MACHINE_END | 38 | MACHINE_END |
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c index 6ce542e2e21c..84d720af34ab 100644 --- a/arch/arm/mach-msm/board-halibut.c +++ b/arch/arm/mach-msm/board-halibut.c | |||
@@ -106,5 +106,5 @@ MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") | |||
106 | .init_irq = halibut_init_irq, | 106 | .init_irq = halibut_init_irq, |
107 | .init_machine = halibut_init, | 107 | .init_machine = halibut_init, |
108 | .init_late = halibut_init_late, | 108 | .init_late = halibut_init_late, |
109 | .timer = &msm7x01_timer, | 109 | .init_time = msm7x01_timer_init, |
110 | MACHINE_END | 110 | MACHINE_END |
diff --git a/arch/arm/mach-msm/board-mahimahi.c b/arch/arm/mach-msm/board-mahimahi.c index df00bc03ce74..30c3496db593 100644 --- a/arch/arm/mach-msm/board-mahimahi.c +++ b/arch/arm/mach-msm/board-mahimahi.c | |||
@@ -75,7 +75,7 @@ static void __init mahimahi_init_late(void) | |||
75 | smd_debugfs_init(); | 75 | smd_debugfs_init(); |
76 | } | 76 | } |
77 | 77 | ||
78 | extern struct sys_timer msm_timer; | 78 | void msm_timer_init(void); |
79 | 79 | ||
80 | MACHINE_START(MAHIMAHI, "mahimahi") | 80 | MACHINE_START(MAHIMAHI, "mahimahi") |
81 | .atag_offset = 0x100, | 81 | .atag_offset = 0x100, |
@@ -84,5 +84,5 @@ MACHINE_START(MAHIMAHI, "mahimahi") | |||
84 | .init_irq = msm_init_irq, | 84 | .init_irq = msm_init_irq, |
85 | .init_machine = mahimahi_init, | 85 | .init_machine = mahimahi_init, |
86 | .init_late = mahimahi_init_late, | 86 | .init_late = mahimahi_init_late, |
87 | .timer = &msm_timer, | 87 | .init_time = msm_timer_init, |
88 | MACHINE_END | 88 | MACHINE_END |
diff --git a/arch/arm/mach-msm/board-msm7x30.c b/arch/arm/mach-msm/board-msm7x30.c index effa6f4336c7..7bc3f82e3ec9 100644 --- a/arch/arm/mach-msm/board-msm7x30.c +++ b/arch/arm/mach-msm/board-msm7x30.c | |||
@@ -131,7 +131,7 @@ MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") | |||
131 | .init_irq = msm7x30_init_irq, | 131 | .init_irq = msm7x30_init_irq, |
132 | .init_machine = msm7x30_init, | 132 | .init_machine = msm7x30_init, |
133 | .init_late = msm7x30_init_late, | 133 | .init_late = msm7x30_init_late, |
134 | .timer = &msm7x30_timer, | 134 | .init_time = msm7x30_timer_init, |
135 | MACHINE_END | 135 | MACHINE_END |
136 | 136 | ||
137 | MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") | 137 | MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") |
@@ -142,7 +142,7 @@ MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") | |||
142 | .init_irq = msm7x30_init_irq, | 142 | .init_irq = msm7x30_init_irq, |
143 | .init_machine = msm7x30_init, | 143 | .init_machine = msm7x30_init, |
144 | .init_late = msm7x30_init_late, | 144 | .init_late = msm7x30_init_late, |
145 | .timer = &msm7x30_timer, | 145 | .init_time = msm7x30_timer_init, |
146 | MACHINE_END | 146 | MACHINE_END |
147 | 147 | ||
148 | MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") | 148 | MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") |
@@ -153,5 +153,5 @@ MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") | |||
153 | .init_irq = msm7x30_init_irq, | 153 | .init_irq = msm7x30_init_irq, |
154 | .init_machine = msm7x30_init, | 154 | .init_machine = msm7x30_init, |
155 | .init_late = msm7x30_init_late, | 155 | .init_late = msm7x30_init_late, |
156 | .timer = &msm7x30_timer, | 156 | .init_time = msm7x30_timer_init, |
157 | MACHINE_END | 157 | MACHINE_END |
diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c index 2448fcf09eb1..686e7949a73a 100644 --- a/arch/arm/mach-msm/board-qsd8x50.c +++ b/arch/arm/mach-msm/board-qsd8x50.c | |||
@@ -200,7 +200,7 @@ MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF") | |||
200 | .init_irq = qsd8x50_init_irq, | 200 | .init_irq = qsd8x50_init_irq, |
201 | .init_machine = qsd8x50_init, | 201 | .init_machine = qsd8x50_init, |
202 | .init_late = qsd8x50_init_late, | 202 | .init_late = qsd8x50_init_late, |
203 | .timer = &qsd8x50_timer, | 203 | .init_time = qsd8x50_timer_init, |
204 | MACHINE_END | 204 | MACHINE_END |
205 | 205 | ||
206 | MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") | 206 | MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") |
@@ -209,5 +209,5 @@ MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") | |||
209 | .init_irq = qsd8x50_init_irq, | 209 | .init_irq = qsd8x50_init_irq, |
210 | .init_machine = qsd8x50_init, | 210 | .init_machine = qsd8x50_init, |
211 | .init_late = qsd8x50_init_late, | 211 | .init_late = qsd8x50_init_late, |
212 | .timer = &qsd8x50_timer, | 212 | .init_time = qsd8x50_timer_init, |
213 | MACHINE_END | 213 | MACHINE_END |
diff --git a/arch/arm/mach-msm/board-sapphire.c b/arch/arm/mach-msm/board-sapphire.c index b7b0fc7e3278..70730111b37c 100644 --- a/arch/arm/mach-msm/board-sapphire.c +++ b/arch/arm/mach-msm/board-sapphire.c | |||
@@ -53,7 +53,7 @@ static struct platform_device *devices[] __initdata = { | |||
53 | &msm_device_uart3, | 53 | &msm_device_uart3, |
54 | }; | 54 | }; |
55 | 55 | ||
56 | extern struct sys_timer msm_timer; | 56 | void msm_timer_init(void); |
57 | 57 | ||
58 | static void __init sapphire_init_irq(void) | 58 | static void __init sapphire_init_irq(void) |
59 | { | 59 | { |
@@ -113,5 +113,5 @@ MACHINE_START(SAPPHIRE, "sapphire") | |||
113 | .init_irq = sapphire_init_irq, | 113 | .init_irq = sapphire_init_irq, |
114 | .init_machine = sapphire_init, | 114 | .init_machine = sapphire_init, |
115 | .init_late = sapphire_init_late, | 115 | .init_late = sapphire_init_late, |
116 | .timer = &msm_timer, | 116 | .init_time = msm_timer_init, |
117 | MACHINE_END | 117 | MACHINE_END |
diff --git a/arch/arm/mach-msm/board-trout.c b/arch/arm/mach-msm/board-trout.c index 4ba0800e243e..919bfa32871a 100644 --- a/arch/arm/mach-msm/board-trout.c +++ b/arch/arm/mach-msm/board-trout.c | |||
@@ -110,5 +110,5 @@ MACHINE_START(TROUT, "HTC Dream") | |||
110 | .init_irq = trout_init_irq, | 110 | .init_irq = trout_init_irq, |
111 | .init_machine = trout_init, | 111 | .init_machine = trout_init, |
112 | .init_late = trout_init_late, | 112 | .init_late = trout_init_late, |
113 | .timer = &msm7x01_timer, | 113 | .init_time = msm7x01_timer_init, |
114 | MACHINE_END | 114 | MACHINE_END |
diff --git a/arch/arm/mach-msm/common.h b/arch/arm/mach-msm/common.h index 633a7159d5ff..ce8215a269e5 100644 --- a/arch/arm/mach-msm/common.h +++ b/arch/arm/mach-msm/common.h | |||
@@ -12,10 +12,10 @@ | |||
12 | #ifndef __MACH_COMMON_H | 12 | #ifndef __MACH_COMMON_H |
13 | #define __MACH_COMMON_H | 13 | #define __MACH_COMMON_H |
14 | 14 | ||
15 | extern struct sys_timer msm7x01_timer; | 15 | extern void msm7x01_timer_init(void); |
16 | extern struct sys_timer msm7x30_timer; | 16 | extern void msm7x30_timer_init(void); |
17 | extern struct sys_timer msm_dt_timer; | 17 | extern void msm_dt_timer_init(void); |
18 | extern struct sys_timer qsd8x50_timer; | 18 | extern void qsd8x50_timer_init(void); |
19 | 19 | ||
20 | extern void msm_map_common_io(void); | 20 | extern void msm_map_common_io(void); |
21 | extern void msm_map_msm7x30_io(void); | 21 | extern void msm_map_msm7x30_io(void); |
diff --git a/arch/arm/mach-msm/include/mach/uncompress.h b/arch/arm/mach-msm/include/mach/uncompress.h index c14011fe832d..fa97a10d8695 100644 --- a/arch/arm/mach-msm/include/mach/uncompress.h +++ b/arch/arm/mach-msm/include/mach/uncompress.h | |||
@@ -60,8 +60,4 @@ static inline void arch_decomp_setup(void) | |||
60 | { | 60 | { |
61 | } | 61 | } |
62 | 62 | ||
63 | static inline void arch_decomp_wdog(void) | ||
64 | { | ||
65 | } | ||
66 | |||
67 | #endif | 63 | #endif |
diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c index 7ed69b69c87c..42932865416a 100644 --- a/arch/arm/mach-msm/platsmp.c +++ b/arch/arm/mach-msm/platsmp.c | |||
@@ -15,8 +15,8 @@ | |||
15 | #include <linux/jiffies.h> | 15 | #include <linux/jiffies.h> |
16 | #include <linux/smp.h> | 16 | #include <linux/smp.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <linux/irqchip/arm-gic.h> | ||
18 | 19 | ||
19 | #include <asm/hardware/gic.h> | ||
20 | #include <asm/cacheflush.h> | 20 | #include <asm/cacheflush.h> |
21 | #include <asm/cputype.h> | 21 | #include <asm/cputype.h> |
22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
@@ -115,7 +115,7 @@ static int __cpuinit msm_boot_secondary(unsigned int cpu, struct task_struct *id | |||
115 | * the boot monitor to read the system wide flags register, | 115 | * the boot monitor to read the system wide flags register, |
116 | * and branch to the address found there. | 116 | * and branch to the address found there. |
117 | */ | 117 | */ |
118 | gic_raise_softirq(cpumask_of(cpu), 0); | 118 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); |
119 | 119 | ||
120 | timeout = jiffies + (1 * HZ); | 120 | timeout = jiffies + (1 * HZ); |
121 | while (time_before(jiffies, timeout)) { | 121 | while (time_before(jiffies, timeout)) { |
@@ -153,8 +153,6 @@ static void __init msm_smp_init_cpus(void) | |||
153 | 153 | ||
154 | for (i = 0; i < ncores; i++) | 154 | for (i = 0; i < ncores; i++) |
155 | set_cpu_possible(i, true); | 155 | set_cpu_possible(i, true); |
156 | |||
157 | set_smp_cross_call(gic_raise_softirq); | ||
158 | } | 156 | } |
159 | 157 | ||
160 | static void __init msm_smp_prepare_cpus(unsigned int max_cpus) | 158 | static void __init msm_smp_prepare_cpus(unsigned int max_cpus) |
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 476549a8a709..2969027f02fa 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/of_irq.h> | 25 | #include <linux/of_irq.h> |
26 | 26 | ||
27 | #include <asm/mach/time.h> | 27 | #include <asm/mach/time.h> |
28 | #include <asm/hardware/gic.h> | ||
29 | #include <asm/localtimer.h> | 28 | #include <asm/localtimer.h> |
30 | #include <asm/sched_clock.h> | 29 | #include <asm/sched_clock.h> |
31 | 30 | ||
@@ -144,13 +143,9 @@ static int __cpuinit msm_local_timer_setup(struct clock_event_device *evt) | |||
144 | evt->rating = msm_clockevent.rating; | 143 | evt->rating = msm_clockevent.rating; |
145 | evt->set_mode = msm_timer_set_mode; | 144 | evt->set_mode = msm_timer_set_mode; |
146 | evt->set_next_event = msm_timer_set_next_event; | 145 | evt->set_next_event = msm_timer_set_next_event; |
147 | evt->shift = msm_clockevent.shift; | ||
148 | evt->mult = div_sc(GPT_HZ, NSEC_PER_SEC, evt->shift); | ||
149 | evt->max_delta_ns = clockevent_delta2ns(0xf0000000, evt); | ||
150 | evt->min_delta_ns = clockevent_delta2ns(4, evt); | ||
151 | 146 | ||
152 | *__this_cpu_ptr(msm_evt.percpu_evt) = evt; | 147 | *__this_cpu_ptr(msm_evt.percpu_evt) = evt; |
153 | clockevents_register_device(evt); | 148 | clockevents_config_and_register(evt, GPT_HZ, 4, 0xf0000000); |
154 | enable_percpu_irq(evt->irq, IRQ_TYPE_EDGE_RISING); | 149 | enable_percpu_irq(evt->irq, IRQ_TYPE_EDGE_RISING); |
155 | return 0; | 150 | return 0; |
156 | } | 151 | } |
@@ -229,7 +224,7 @@ static const struct of_device_id msm_gpt_match[] __initconst = { | |||
229 | { }, | 224 | { }, |
230 | }; | 225 | }; |
231 | 226 | ||
232 | static void __init msm_dt_timer_init(void) | 227 | void __init msm_dt_timer_init(void) |
233 | { | 228 | { |
234 | struct device_node *np; | 229 | struct device_node *np; |
235 | u32 freq; | 230 | u32 freq; |
@@ -296,10 +291,6 @@ static void __init msm_dt_timer_init(void) | |||
296 | 291 | ||
297 | msm_timer_init(freq, 32, irq, !!percpu_offset); | 292 | msm_timer_init(freq, 32, irq, !!percpu_offset); |
298 | } | 293 | } |
299 | |||
300 | struct sys_timer msm_dt_timer = { | ||
301 | .init = msm_dt_timer_init | ||
302 | }; | ||
303 | #endif | 294 | #endif |
304 | 295 | ||
305 | static int __init msm_timer_map(phys_addr_t event, phys_addr_t source) | 296 | static int __init msm_timer_map(phys_addr_t event, phys_addr_t source) |
@@ -317,7 +308,7 @@ static int __init msm_timer_map(phys_addr_t event, phys_addr_t source) | |||
317 | return 0; | 308 | return 0; |
318 | } | 309 | } |
319 | 310 | ||
320 | static void __init msm7x01_timer_init(void) | 311 | void __init msm7x01_timer_init(void) |
321 | { | 312 | { |
322 | struct clocksource *cs = &msm_clocksource; | 313 | struct clocksource *cs = &msm_clocksource; |
323 | 314 | ||
@@ -330,28 +321,16 @@ static void __init msm7x01_timer_init(void) | |||
330 | false); | 321 | false); |
331 | } | 322 | } |
332 | 323 | ||
333 | struct sys_timer msm7x01_timer = { | 324 | void __init msm7x30_timer_init(void) |
334 | .init = msm7x01_timer_init | ||
335 | }; | ||
336 | |||
337 | static void __init msm7x30_timer_init(void) | ||
338 | { | 325 | { |
339 | if (msm_timer_map(0xc0100004, 0xc0100024)) | 326 | if (msm_timer_map(0xc0100004, 0xc0100024)) |
340 | return; | 327 | return; |
341 | msm_timer_init(24576000 / 4, 32, 1, false); | 328 | msm_timer_init(24576000 / 4, 32, 1, false); |
342 | } | 329 | } |
343 | 330 | ||
344 | struct sys_timer msm7x30_timer = { | 331 | void __init qsd8x50_timer_init(void) |
345 | .init = msm7x30_timer_init | ||
346 | }; | ||
347 | |||
348 | static void __init qsd8x50_timer_init(void) | ||
349 | { | 332 | { |
350 | if (msm_timer_map(0xAC100000, 0xAC100010)) | 333 | if (msm_timer_map(0xAC100000, 0xAC100010)) |
351 | return; | 334 | return; |
352 | msm_timer_init(19200000 / 4, 32, 7, false); | 335 | msm_timer_init(19200000 / 4, 32, 7, false); |
353 | } | 336 | } |
354 | |||
355 | struct sys_timer qsd8x50_timer = { | ||
356 | .init = qsd8x50_timer_init | ||
357 | }; | ||