From: Jerome Brunet <jbrunet@baylibre.com>
To: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Jonathan Cameron <jic23@kernel.org>,
Lars-Peter Clausen <lars@metafoo.de>,
Kevin Hilman <khilman@baylibre.com>,
linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org,
linux-iio@vger.kernel.org, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
linux-arm-msm <linux-arm-msm@vger.kernel.org>
Subject: Re: [PATCH 0/2] iio: frequency: add iio support for Amlogic clock measure
Date: Mon, 01 Jul 2024 11:01:41 +0200 [thread overview]
Message-ID: <1jjzi5a3ka.fsf@starbuckisacylon.baylibre.com> (raw)
In-Reply-To: <5da26c0e-75a7-4d5a-9eca-f88ecf369996@linaro.org> (Neil Armstrong's message of "Mon, 1 Jul 2024 09:41:01 +0200")
On Mon 01 Jul 2024 at 09:41, Neil Armstrong <neil.armstrong@linaro.org> wrote:
> On 25/06/2024 15:51, Jerome Brunet wrote:
>> On Tue 25 Jun 2024 at 15:18, Neil Armstrong <neil.armstrong@linaro.org> wrote:
>>
>>> On 25/06/2024 11:53, Jerome Brunet wrote:
>>>> On Tue 25 Jun 2024 at 11:38, Neil Armstrong <neil.armstrong@linaro.org> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> [+cc people from linux-msm]
>>>>>
>>>>> On 24/06/2024 19:31, Jerome Brunet wrote:
>>>>>> Add support for the HW found in most Amlogic SoC dedicated to measure
>>>>>> system clocks.
>>>>>> This drivers aims to replace the one found in
>>>>>> drivers/soc/amlogic/meson-clk-measure.c with following improvements:
>>>>>> * Access to the measurements through the IIO API:
>>>>>> Easier re-use of the results in userspace and other drivers
>>>>>> * Controllable scale with raw measurements
>>>>>> * Higher precision with processed measurements
>>>>>> Jerome Brunet (2):
>>>>>> dt-bindings: iio: frequency: add clock measure support
>>>>>> iio: frequency: add amlogic clock measure support
>>>>>> .../iio/frequency/amlogic,clk-msr-io.yaml | 50 ++
>>>>>> drivers/iio/frequency/Kconfig | 15 +
>>>>>> drivers/iio/frequency/Makefile | 1 +
>>>>>> drivers/iio/frequency/amlogic-clk-msr-io.c | 802 ++++++++++++++++++
>>>>>> 4 files changed, 868 insertions(+)
>>>>>> create mode 100644 Documentation/devicetree/bindings/iio/frequency/amlogic,clk-msr-io.yaml
>>>>>> create mode 100644 drivers/iio/frequency/amlogic-clk-msr-io.c
>>>>>>
>>>>>
>>>>> While I really appreciate the effort, and the code looks cool, the clkmsr is really
>>>>> a debug tool, and I'm not sure IIO is the right place for such debug tool ?
>>>> The reason why I went through the trouble of doing an IIO port is
>>>> because I need that for other purposes than debug. I need to to be able
>>>> to check a frequency from another driver. I don't see a reason to invent
>>>> another API when IIO provide a perfectly good one.
>>>> The HW does measurements. IIO seems like the best place for it.
>>>> For the record, I need this for a eARC support.
>>>> eARC has a PLL that locks on incoming stream. eARC registers show wether
>>>> the PLL is locked or not, but not at which rate. That information is
>>>> needed in ASoC. Fortunately the eARC PLL is one of measured clock, which
>>>> is a life saver in that case.
>>>
>>> This is a very interesting use-case, and quite weird nothing is provided
>>> on the eARC side.
>> Indeed.
>>
>>>
>>> So yes it's definitely a valid use-case, but:
>>> - we should keep the debugfs interface, perhaps move it in the iio driver ?
>> I considered this initially but it would add a lot of boiler plate
>> code to provide over debugfs exactly what iio already provides over
>> sysfs. As you pointed out, the previous driver only provided debug
>> information, the debugfs interface it provided is hardly a
>> critical/stable one.
>
> I still don't see why it could add so much boilerplate, all the tables and
> calculation fonction would be shared, only the debugfs clk_msr_show() and
> clk_msr_summary_show() would be kept, all the rest would be common.
>
> I insist, please keep the debugfs interface for debug purposes. You don't
> want to mess with IIO when you bring up new platforms with bare minimum
> kernels.
I don't think that is going to change anything. It's not like IIO brings
any complexity or will be compiled out.
But since you insist, I'll add it in the next version as a separate patch.
>
>>
>>> - we should keep a single compatible, so simply update the current bindings with iio cells
>> Using a new compatible allows to split the memory region, making the
>> interface between DT and driver a lot easier to implement seemlessly
>> between old and new SoCs. Eventually it may allow to implement the duty
>> part too.
>
> It's a problem for new platforms, you can introduce the split only for the
> new ones, the impact on code won't high enough to justify new bindings.
>
What you are requesting will introduce two drivers providing the same
compatible, unless you plan on removing the old one in a coordinated
way.
That's an unncessary churn. The old driver could stay there for a
while and platform slowly migrate. What you are requesting forcefully
migrates every consumer, assuming the old driver is compiled out.
This is an opportunity to more correctly describe the interface.
It does not break any DT rules, that is enough of a justification IMO.
> Neil
>
>>
>>> - for s4 & c3, it's ok to either add a second reg entry in the bindings
>> Doing that for s4 and c3 only would still make a mess of offset handling
>> the region because duty prepend the region on old SoC. The goal is to
>> have an interface that seemlessly support both old and new SoCs.
>>
>>>
>>> Neil
>>>
>>>> Everything that was available through the old driver still is, with more
>>>> precision and more control.
>>>>
>>>>>
>>>>> There's almost the same interface on qcom SoCs (https://github.com/linux-msm/debugcc) but
>>>>> they chose to keep it in userspace until we find an appropriate way to expose
>>>>> this from the kernel the right way.
>>>>>
>>>>> If it enabled us to monitor a frequency input for a product use-case, IIO would be
>>>>> the appropriate interface, but AFAIK it's only internal clocks and thus I'm worried
>>>>> it's not the best way to expose those clocks.
>>>>>
>>>>> Neil
>>>>
>>
--
Jerome
next prev parent reply other threads:[~2024-07-01 9:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-24 17:31 [PATCH 0/2] iio: frequency: add iio support for Amlogic clock measure Jerome Brunet
2024-06-24 17:31 ` [PATCH 1/2] dt-bindings: iio: frequency: add clock measure support Jerome Brunet
2024-06-25 5:38 ` Krzysztof Kozlowski
2024-06-24 17:31 ` [PATCH 2/2] iio: frequency: add amlogic " Jerome Brunet
2024-06-24 22:51 ` David Lechner
2024-06-24 23:03 ` David Lechner
2024-06-25 8:31 ` Jerome Brunet
2024-06-25 14:52 ` David Lechner
2024-06-25 16:59 ` Jerome Brunet
2024-06-29 19:26 ` Jonathan Cameron
2024-06-29 19:40 ` Jonathan Cameron
2024-06-30 7:21 ` Jerome Brunet
2024-06-30 10:17 ` Jonathan Cameron
2024-06-25 9:38 ` [PATCH 0/2] iio: frequency: add iio support for Amlogic clock measure Neil Armstrong
2024-06-25 9:53 ` Jerome Brunet
2024-06-25 13:18 ` Neil Armstrong
2024-06-25 13:51 ` Jerome Brunet
2024-07-01 7:41 ` Neil Armstrong
2024-07-01 9:01 ` Jerome Brunet [this message]
2024-07-01 9:10 ` Neil Armstrong
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=1jjzi5a3ka.fsf@starbuckisacylon.baylibre.com \
--to=jbrunet@baylibre.com \
--cc=conor+dt@kernel.org \
--cc=jic23@kernel.org \
--cc=khilman@baylibre.com \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-amlogic@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=robh@kernel.org \
/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