[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2ffe4baf-1de1-3f0e-311f-dd1fdaf1cee8@linaro.org>
Date: Thu, 5 Dec 2019 17:24:28 +0100
From: Daniel Lezcano <daniel.lezcano@...aro.org>
To: Rajan Vaja <RAJANV@...inx.com>, Michal Simek <michals@...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 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
>
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
Powered by blists - more mailing lists