[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9c64bc35-c043-6e4b-cfc3-50f19e4cb315@linaro.org>
Date: Fri, 17 Jul 2020 10:02:36 +0200
From: Daniel Lezcano <daniel.lezcano@...aro.org>
To: Zhou Yanjie <zhouyanjie@...yeetech.com>,
linux-kernel@...r.kernel.org
Cc: devicetree@...r.kernel.org, robh+dt@...nel.org, tglx@...utronix.de,
paul@...pouillou.net, dongsheng.qiu@...enic.com,
aric.pzqi@...enic.com, rick.tyliu@...enic.com,
yanfei.li@...enic.com, sernia.zhou@...mail.com,
zhenwenjin@...il.com
Subject: Re: [PATCH v6 2/2] clocksource: Ingenic: Add support for the Ingenic
X1000 OST.
On 17/07/2020 08:13, Zhou Yanjie wrote:
> Hi Daniel,
>
> 在 2020/7/17 下午12:20, Daniel Lezcano 写道:
>> On 10/07/2020 19:02, 周琰杰 (Zhou Yanjie) wrote:
>>> X1000 and SoCs after X1000 (such as X1500 and X1830) had a separate
>>> OST, it no longer belongs to TCU. This driver will register both a
>>> clocksource and a sched_clock to the system.
>>>
>>> Tested-by: 周正 (Zhou Zheng) <sernia.zhou@...mail.com>
>>> Co-developed-by: 漆鹏振 (Qi Pengzhen) <aric.pzqi@...enic.com>
>>> Signed-off-by: 漆鹏振 (Qi Pengzhen) <aric.pzqi@...enic.com>
>>> Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@...yeetech.com>
>>> Reviewed-by: Paul Cercueil <paul@...pouillou.net>
>>> ---
>>>
>>> Notes:
>>> v1->v2:
>>> Fix compile warnings.
>>> Reported-by: kernel test robot <lkp@...el.com>
>>> v2->v3:
>>> No change.
>>> v3->v4:
>>> 1.Rename "ost" to "sysost"
>>> 1.Remove unrelated changes.
>>> 2.Remove ost_clock_parent enum.
>>> 3.Remove ost->percpu_timer_channel/ost->global_timer_channel.
>>> 4.Set up independent .recalc_rate/.set_rate for percpu/global
>>> timer.
>>> 5.No longer call functions in variable declarations.
>>> v4->v5:
>>> Use "of_io_request_and_map()" instead "of_iomap()".
>>> Suggested-by: Paul Cercueil <paul@...pouillou.net>
>>> v5->v6:
>>> No change.
>>>
>>> drivers/clocksource/Kconfig | 11 +
>>> drivers/clocksource/Makefile | 1 +
>>> drivers/clocksource/ingenic-sysost.c | 539
>>> +++++++++++++++++++++++++++++++++++
>>> 3 files changed, 551 insertions(+)
>>> create mode 100644 drivers/clocksource/ingenic-sysost.c
>>>
>>> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
>>> index 91418381fcd4..1bca8b8fb30f 100644
>>> --- a/drivers/clocksource/Kconfig
>>> +++ b/drivers/clocksource/Kconfig
>>> @@ -696,6 +696,17 @@ config INGENIC_TIMER
>>> help
>>> Support for the timer/counter unit of the Ingenic JZ SoCs.
>>> +config INGENIC_SYSOST
>>> + bool "Clocksource/timer using the SYSOST in Ingenic X SoCs"
>> We usually use silent options and let the platform's Kconfig enable it.
>> We show up the option only when COMPILE_TEST is enabled.
>>
>> Is there a reason to do it differently?
>
>
> Do you mean
>
> bool "Clocksource/timer using the SYSOST in Ingenic X SoCs"
>
> or
>
> default MACH_INGENIC ?
Both, no default here.
eg.
bool "Clocksource/timer using the SYSOST in Ingenic X SoCs" if COMPILE_TEST
and
in arch/mips/Kconfig in the config MACH_INGENIC section :
...
select INGENIC_SYSOST
...
> This driver has some origins from "INGENIC_TIMER" driver and
> "INGENIC_OST" driver.
> Early Ingenic processors used TCU (timer/counter unit, has 6 or 8
> generic timer channels) to provide clocksource and clockevent (both with
> only 16bit precision). This part of the processor can only use
> "INGENIC_TIMER" driver.
>
> Later processors provide an independent 32bit or 64bit timer channel
> (still under TCU, known as ost channel, this channel can not generate
> interrupt) to provid higher precision clocksource. The "INGENIC_OST"
> driver is for this channel. These processors can use "INGENIC_TIMER"
> driver, but using "INGENIC_OST" driver to provide higher precision
> clocksource would be a better choice (clockevent still needs to be
> provided by generic timer channel of TCU, and still 16bit precision).
>
> And the recent processors provide a SYSOST components, it is independent
> from TCU, including a 64bit timer channel for clocksource and a 32bit
> timer channel for clockevent. Although these processors can also use
> "INGENIC_TIMER" driver, but the better choice is completely independent
> use of "INGENIC_SYSOST" driver to provide higher precision clocksource
> and clockevent.
Ok, the rating should do the job then.
Thanks for the explanation.
> You may have already noticed that this independent SYSOST component is
> like an upgraded and streamlined TCU, which only retains one generic
> timer channel that can generate interrupts, upgrade it from 16bit to
> 32bit, and then retain the 64bit ost channel. so the driver code and
> Kconfig code of this patch is largely referenced
> "INGENIC_TIMER" driver and "INGENIC_OST" driver.
>
> Thanks and best regards!
>
>>> + default MACH_INGENIC
>>> + depends on MIPS || COMPILE_TEST
>>> + depends on COMMON_CLK
>>> + select MFD_SYSCON
>>> + select TIMER_OF
>>> + select IRQ_DOMAIN
>>> + help
>>> + Support for the SYSOST of the Ingenic X Series SoCs.
>>> +
>> [ ... ]
>>
>>
--
<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