aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clocksource/timer-stm32.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/clocksource/timer-stm32.c')
-rw-r--r--drivers/clocksource/timer-stm32.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/clocksource/timer-stm32.c b/drivers/clocksource/timer-stm32.c
index f3dcb76799b4..d5bf352905c8 100644
--- a/drivers/clocksource/timer-stm32.c
+++ b/drivers/clocksource/timer-stm32.c
@@ -98,7 +98,7 @@ static struct stm32_clock_event_ddata clock_event_ddata = {
98 }, 98 },
99}; 99};
100 100
101static void __init stm32_clockevent_init(struct device_node *np) 101static int __init stm32_clockevent_init(struct device_node *np)
102{ 102{
103 struct stm32_clock_event_ddata *data = &clock_event_ddata; 103 struct stm32_clock_event_ddata *data = &clock_event_ddata;
104 struct clk *clk; 104 struct clk *clk;
@@ -130,12 +130,14 @@ static void __init stm32_clockevent_init(struct device_node *np)
130 130
131 data->base = of_iomap(np, 0); 131 data->base = of_iomap(np, 0);
132 if (!data->base) { 132 if (!data->base) {
133 ret = -ENXIO;
133 pr_err("failed to map registers for clockevent\n"); 134 pr_err("failed to map registers for clockevent\n");
134 goto err_iomap; 135 goto err_iomap;
135 } 136 }
136 137
137 irq = irq_of_parse_and_map(np, 0); 138 irq = irq_of_parse_and_map(np, 0);
138 if (!irq) { 139 if (!irq) {
140 ret = -EINVAL;
139 pr_err("%s: failed to get irq.\n", np->full_name); 141 pr_err("%s: failed to get irq.\n", np->full_name);
140 goto err_get_irq; 142 goto err_get_irq;
141 } 143 }
@@ -173,7 +175,7 @@ static void __init stm32_clockevent_init(struct device_node *np)
173 pr_info("%s: STM32 clockevent driver initialized (%d bits)\n", 175 pr_info("%s: STM32 clockevent driver initialized (%d bits)\n",
174 np->full_name, bits); 176 np->full_name, bits);
175 177
176 return; 178 return ret;
177 179
178err_get_irq: 180err_get_irq:
179 iounmap(data->base); 181 iounmap(data->base);
@@ -182,7 +184,7 @@ err_iomap:
182err_clk_enable: 184err_clk_enable:
183 clk_put(clk); 185 clk_put(clk);
184err_clk_get: 186err_clk_get:
185 return; 187 return ret;
186} 188}
187 189
188CLOCKSOURCE_OF_DECLARE(stm32, "st,stm32-timer", stm32_clockevent_init); 190CLOCKSOURCE_OF_DECLARE_RET(stm32, "st,stm32-timer", stm32_clockevent_init);