@@ -31,25 +31,16 @@ static u64 notrace clps711x_sched_clock_read(void)
31
31
return ~readw (tcd );
32
32
}
33
33
34
- static int __init _clps711x_clksrc_init (struct clk * clock , void __iomem * base )
34
+ static void __init clps711x_clksrc_init (struct clk * clock , void __iomem * base )
35
35
{
36
- unsigned long rate ;
37
-
38
- if (!base )
39
- return - ENOMEM ;
40
- if (IS_ERR (clock ))
41
- return PTR_ERR (clock );
42
-
43
- rate = clk_get_rate (clock );
36
+ unsigned long rate = clk_get_rate (clock );
44
37
45
38
tcd = base ;
46
39
47
40
clocksource_mmio_init (tcd , "clps711x-clocksource" , rate , 300 , 16 ,
48
41
clocksource_mmio_readw_down );
49
42
50
43
sched_clock_register (clps711x_sched_clock_read , 16 , rate );
51
-
52
- return 0 ;
53
44
}
54
45
55
46
static irqreturn_t clps711x_timer_interrupt (int irq , void * dev_id )
@@ -67,13 +58,6 @@ static int __init _clps711x_clkevt_init(struct clk *clock, void __iomem *base,
67
58
struct clock_event_device * clkevt ;
68
59
unsigned long rate ;
69
60
70
- if (!irq )
71
- return - EINVAL ;
72
- if (!base )
73
- return - ENOMEM ;
74
- if (IS_ERR (clock ))
75
- return PTR_ERR (clock );
76
-
77
61
clkevt = kzalloc (sizeof (* clkevt ), GFP_KERNEL );
78
62
if (!clkevt )
79
63
return - ENOMEM ;
@@ -93,32 +77,29 @@ static int __init _clps711x_clkevt_init(struct clk *clock, void __iomem *base,
93
77
"clps711x-timer" , clkevt );
94
78
}
95
79
96
- static void __init clps711x_clksrc_init (void __iomem * tc1_base ,
97
- void __iomem * tc2_base ,
98
- unsigned int irq )
99
- {
100
- struct clk * tc1 = clk_get_sys ("clps711x-timer.0" , NULL );
101
- struct clk * tc2 = clk_get_sys ("clps711x-timer.1" , NULL );
102
-
103
- BUG_ON (_clps711x_clksrc_init (tc1 , tc1_base ));
104
- BUG_ON (_clps711x_clkevt_init (tc2 , tc2_base , irq ));
105
- }
106
-
107
- #ifdef CONFIG_TIMER_OF
108
80
static int __init clps711x_timer_init (struct device_node * np )
109
81
{
110
82
unsigned int irq = irq_of_parse_and_map (np , 0 );
111
83
struct clk * clock = of_clk_get (np , 0 );
112
84
void __iomem * base = of_iomap (np , 0 );
113
85
86
+ if (!base )
87
+ return - ENOMEM ;
88
+ if (!irq )
89
+ return - EINVAL ;
90
+ if (IS_ERR (clock ))
91
+ return PTR_ERR (clock );
92
+
114
93
switch (of_alias_get_id (np , "timer" )) {
115
94
case CLPS711X_CLKSRC_CLOCKSOURCE :
116
- return _clps711x_clksrc_init (clock , base );
95
+ clps711x_clksrc_init (clock , base );
96
+ break ;
117
97
case CLPS711X_CLKSRC_CLOCKEVENT :
118
98
return _clps711x_clkevt_init (clock , base , irq );
119
99
default :
120
100
return - EINVAL ;
121
101
}
102
+
103
+ return 0 ;
122
104
}
123
105
TIMER_OF_DECLARE (clps711x , "cirrus,ep7209-timer" , clps711x_timer_init );
124
- #endif
0 commit comments