diff options
| author | Alexander Shiyan <shc_work@mail.ru> | 2018-12-20 06:16:26 -0500 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2019-03-24 06:30:11 -0400 |
| commit | 2a6a8e2d9004b5303fcb494588ba3a3b87a256c3 (patch) | |
| tree | c2876c42a833a01a9c9be3c4dd6e5970a3584626 | |
| parent | 32d0be018f6f5ee2d5d19c4795304613560814cf (diff) | |
clocksource/drivers/clps711x: Remove board support
Since board support for the CLPS711X platform was removed,
remove the board support from the clps711x-timer driver.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lkml.kernel.org/r/20181220111626.17140-1-shc_work@mail.ru
| -rw-r--r-- | drivers/clocksource/clps711x-timer.c | 45 |
1 files changed, 13 insertions, 32 deletions
diff --git a/drivers/clocksource/clps711x-timer.c b/drivers/clocksource/clps711x-timer.c index cdc251524f5e..857f8c086274 100644 --- a/drivers/clocksource/clps711x-timer.c +++ b/drivers/clocksource/clps711x-timer.c | |||
| @@ -31,16 +31,9 @@ static u64 notrace clps711x_sched_clock_read(void) | |||
| 31 | return ~readw(tcd); | 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; | 36 | unsigned long rate = clk_get_rate(clock); |
| 37 | |||
| 38 | if (!base) | ||
| 39 | return -ENOMEM; | ||
| 40 | if (IS_ERR(clock)) | ||
| 41 | return PTR_ERR(clock); | ||
| 42 | |||
| 43 | rate = clk_get_rate(clock); | ||
| 44 | 37 | ||
| 45 | tcd = base; | 38 | tcd = base; |
| 46 | 39 | ||
| @@ -48,8 +41,6 @@ static int __init _clps711x_clksrc_init(struct clk *clock, void __iomem *base) | |||
| 48 | clocksource_mmio_readw_down); | 41 | clocksource_mmio_readw_down); |
| 49 | 42 | ||
| 50 | sched_clock_register(clps711x_sched_clock_read, 16, rate); | 43 | sched_clock_register(clps711x_sched_clock_read, 16, rate); |
| 51 | |||
| 52 | return 0; | ||
| 53 | } | 44 | } |
| 54 | 45 | ||
| 55 | static irqreturn_t clps711x_timer_interrupt(int irq, void *dev_id) | 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 | struct clock_event_device *clkevt; | 58 | struct clock_event_device *clkevt; |
| 68 | unsigned long rate; | 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 | clkevt = kzalloc(sizeof(*clkevt), GFP_KERNEL); | 61 | clkevt = kzalloc(sizeof(*clkevt), GFP_KERNEL); |
| 78 | if (!clkevt) | 62 | if (!clkevt) |
| 79 | return -ENOMEM; | 63 | return -ENOMEM; |
| @@ -93,32 +77,29 @@ static int __init _clps711x_clkevt_init(struct clk *clock, void __iomem *base, | |||
| 93 | "clps711x-timer", clkevt); | 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 | static int __init clps711x_timer_init(struct device_node *np) | 80 | static int __init clps711x_timer_init(struct device_node *np) |
| 109 | { | 81 | { |
| 110 | unsigned int irq = irq_of_parse_and_map(np, 0); | 82 | unsigned int irq = irq_of_parse_and_map(np, 0); |
| 111 | struct clk *clock = of_clk_get(np, 0); | 83 | struct clk *clock = of_clk_get(np, 0); |
| 112 | void __iomem *base = of_iomap(np, 0); | 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 | switch (of_alias_get_id(np, "timer")) { | 93 | switch (of_alias_get_id(np, "timer")) { |
| 115 | case CLPS711X_CLKSRC_CLOCKSOURCE: | 94 | case CLPS711X_CLKSRC_CLOCKSOURCE: |
| 116 | return _clps711x_clksrc_init(clock, base); | 95 | clps711x_clksrc_init(clock, base); |
| 96 | break; | ||
| 117 | case CLPS711X_CLKSRC_CLOCKEVENT: | 97 | case CLPS711X_CLKSRC_CLOCKEVENT: |
| 118 | return _clps711x_clkevt_init(clock, base, irq); | 98 | return _clps711x_clkevt_init(clock, base, irq); |
| 119 | default: | 99 | default: |
| 120 | return -EINVAL; | 100 | return -EINVAL; |
| 121 | } | 101 | } |
| 102 | |||
| 103 | return 0; | ||
| 122 | } | 104 | } |
| 123 | TIMER_OF_DECLARE(clps711x, "cirrus,ep7209-timer", clps711x_timer_init); | 105 | TIMER_OF_DECLARE(clps711x, "cirrus,ep7209-timer", clps711x_timer_init); |
| 124 | #endif | ||
