[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d313e68d-81ea-29e0-1e0b-306716855ea0@xilinx.com>
Date: Tue, 17 Dec 2019 16:00:13 +0100
From: Michal Simek <michal.simek@...inx.com>
To: Daniel Lezcano <daniel.lezcano@...aro.org>,
Rajan Vaja <RAJANV@...inx.com>,
"tglx@...utronix.de" <tglx@...utronix.de>
Cc: "linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
Jolly Shah <JOLLYS@...inx.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] drivers: clocksource: Use ttc driver as platform driver
On 05. 12. 19 17:24, Daniel Lezcano wrote:
> On 26/11/2019 12:53, Rajan Vaja wrote:
>> Request for review.
>
> Waiting from Michal Simek review ...
>
>
>>> -----Original Message-----
>>> From: Rajan Vaja <rajan.vaja@...inx.com>
>>> Sent: 07 November 2019 04:06 PM
>>> To: Michal Simek <michals@...inx.com>; daniel.lezcano@...aro.org;
>>> tglx@...utronix.de
>>> Cc: linux-arm-kernel@...ts.infradead.org; Jolly Shah <JOLLYS@...inx.com>; linux-
>>> kernel@...r.kernel.org; Rajan Vaja <RAJANV@...inx.com>
>>> Subject: [PATCH] drivers: clocksource: Use ttc driver as platform driver
>>>
>>> Currently TTC driver is TIMER_OF_DECLARE type driver. Because of
>>> that, TTC driver may be initialized before other clock drivers. If
>>> TTC driver is dependent on that clock driver then initialization of
>>> TTC driver will failed.
>>>
>>> So use TTC driver as platform driver instead of using
>>> TIMER_OF_DECLARE.
>>>
>>> Signed-off-by: Rajan Vaja <rajan.vaja@...inx.com>
>>> ---
>>> drivers/clocksource/timer-cadence-ttc.c | 26 ++++++++++++++++++--------
>>> 1 file changed, 18 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/clocksource/timer-cadence-ttc.c b/drivers/clocksource/timer-
>>> cadence-ttc.c
>>> index 88fe2e9..38858e1 100644
>>> --- a/drivers/clocksource/timer-cadence-ttc.c
>>> +++ b/drivers/clocksource/timer-cadence-ttc.c
>>> @@ -15,6 +15,8 @@
>>> #include <linux/of_irq.h>
>>> #include <linux/slab.h>
>>> #include <linux/sched_clock.h>
>>> +#include <linux/module.h>
>>> +#include <linux/of_platform.h>
>>>
>>> /*
>>> * This driver configures the 2 16/32-bit count-up timers as follows:
>>> @@ -464,13 +466,7 @@ static int __init ttc_setup_clockevent(struct clk *clk,
>>> return 0;
>>> }
>>>
>>> -/**
>>> - * ttc_timer_init - Initialize the timer
>>> - *
>>> - * Initializes the timer hardware and register the clock source and clock event
>>> - * timers with Linux kernal timer framework
>>> - */
>>> -static int __init ttc_timer_init(struct device_node *timer)
>>> +static int __init ttc_timer_probe(struct platform_device *pdev)
>>> {
>>> unsigned int irq;
>>> void __iomem *timer_baseaddr;
>>> @@ -478,6 +474,7 @@ static int __init ttc_timer_init(struct device_node *timer)
>>> static int initialized;
>>> int clksel, ret;
>>> u32 timer_width = 16;
>>> + struct device_node *timer = pdev->dev.of_node;
>>>
>>> if (initialized)
>>> return 0;
>>> @@ -532,4 +529,17 @@ static int __init ttc_timer_init(struct device_node *timer)
>>> return 0;
>>> }
>>>
>>> -TIMER_OF_DECLARE(ttc, "cdns,ttc", ttc_timer_init);
>>> +static const struct of_device_id ttc_timer_of_match[] = {
>>> + {.compatible = "cdns,ttc"},
>>> + {},
>>> +};
>>> +
>>> +MODULE_DEVICE_TABLE(of, ttc_timer_of_match);
>>> +
>>> +static struct platform_driver ttc_timer_driver = {
>>> + .driver = {
>>> + .name = "cdns_ttc_timer",
>>> + .of_match_table = ttc_timer_of_match,
>>> + },
>>> +};
>>> +builtin_platform_driver_probe(ttc_timer_driver, ttc_timer_probe);
>>> --
>>> 2.7.4
>>
Looks good. I have also tested it on zc706.
Tested-by: Michal Simek <michal.simek@...inx.com>
Acked-by: Michal Simek <michal.simek@...inx.com>
Note: headers are not sorted but they weren't even before this patch.
Thanks,
Michal
Powered by blists - more mailing lists