From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Zhou Yanjie <zhouyanjie@wanyeetech.com>, linux-kernel@vger.kernel.org
Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
tglx@linutronix.de, paul@crapouillou.net,
dongsheng.qiu@ingenic.com, aric.pzqi@ingenic.com,
rick.tyliu@ingenic.com, yanfei.li@ingenic.com,
sernia.zhou@foxmail.com, zhenwenjin@gmail.com
Subject: Re: [PATCH v6 2/2] clocksource: Ingenic: Add support for the Ingenic X1000 OST.
Date: Fri, 17 Jul 2020 10:02:36 +0200 [thread overview]
Message-ID: <9c64bc35-c043-6e4b-cfc3-50f19e4cb315@linaro.org> (raw)
In-Reply-To: <f0dd2ea5-0627-35cf-5a58-aaff0bcb22cd@wanyeetech.com>
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@foxmail.com>
>>> Co-developed-by: 漆鹏振 (Qi Pengzhen) <aric.pzqi@ingenic.com>
>>> Signed-off-by: 漆鹏振 (Qi Pengzhen) <aric.pzqi@ingenic.com>
>>> Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
>>> Reviewed-by: Paul Cercueil <paul@crapouillou.net>
>>> ---
>>>
>>> Notes:
>>> v1->v2:
>>> Fix compile warnings.
>>> Reported-by: kernel test robot <lkp@intel.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@crapouillou.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
next prev parent reply other threads:[~2020-07-17 8:02 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-10 17:02 [PATCH v6 0/2] Add support for the OST in Ingenic X1000 周琰杰 (Zhou Yanjie)
2020-07-10 17:02 ` [PATCH v6 1/2] dt-bindings: timer: Add Ingenic X1000 OST bindings 周琰杰 (Zhou Yanjie)
2020-07-13 15:52 ` Rob Herring
2020-07-10 17:02 ` [PATCH v6 2/2] clocksource: Ingenic: Add support for the Ingenic X1000 OST 周琰杰 (Zhou Yanjie)
2020-07-17 4:20 ` Daniel Lezcano
2020-07-17 6:13 ` Zhou Yanjie
2020-07-17 8:02 ` Daniel Lezcano [this message]
2020-07-17 14:40 ` Zhou Yanjie
2020-07-18 13:12 ` Paul Cercueil
2020-07-18 13:42 ` Zhou Yanjie
2020-07-18 15:44 ` Paul Cercueil
2020-07-18 15:55 ` Zhou Yanjie
2020-07-18 16:11 ` Paul Cercueil
2020-07-18 16:18 ` Zhou Yanjie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9c64bc35-c043-6e4b-cfc3-50f19e4cb315@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=aric.pzqi@ingenic.com \
--cc=devicetree@vger.kernel.org \
--cc=dongsheng.qiu@ingenic.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paul@crapouillou.net \
--cc=rick.tyliu@ingenic.com \
--cc=robh+dt@kernel.org \
--cc=sernia.zhou@foxmail.com \
--cc=tglx@linutronix.de \
--cc=yanfei.li@ingenic.com \
--cc=zhenwenjin@gmail.com \
--cc=zhouyanjie@wanyeetech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).