From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
Cc: lgirdwood@gmail.com, broonie@kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
perex@perex.cz, tiwai@suse.com, alsa-devel@alsa-project.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 3/3] dt-bindings: ASoC: Add ESS ES9218P codec bindings
Date: Thu, 11 May 2023 19:57:40 +0200 [thread overview]
Message-ID: <3c131132-35ce-e5da-2608-36d53abc6c83@linaro.org> (raw)
In-Reply-To: <zfuvar6MiqIaW9nvjgvUIhA1t3DkZ9tE@localhost>
On 11/05/2023 13:26, Aidan MacDonald wrote:
>
> Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> writes:
>
>> On 11/05/2023 12:15, Aidan MacDonald wrote:
>>>
>>> Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> writes:
>>>
>>>> On 10/05/2023 13:23, Aidan MacDonald wrote:
>>>>> ...
>>>>> + ess,max-clock-div:
>>>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>>>> + description:
>>>>> + Sets the maximum MCLK divider for generating the internal CLK.
>>>>> + CLK must be at least 20x the I2C bus speed or I2C transactions
>>>>> + will fail. The maximum divider should be chosen to ensure that
>>>>> + CLK will not fall below the limit.
>>>>> + enum:
>>>>> + - 1
>>>>> + - 2
>>>>> + - 4
>>>>> + - 8
>>>>> + default: 1
>>>>
>>>> Why do you need to customize it per board?
>>>>
>>>
>>> There's no generic API to read or change the bus speed (SCL frequency)
>>> for I2C adapters, so it's impossible to calculate a limit on the MCLK
>>> divider automatically.
>>>
>>> Defaulting to 1 is always safe, but means wasting power at lower sample
>>> rates. If you know what the bus speed is you can use a higher divider
>>> limit to save power, and it has to be done at the board/firmware level
>>> because that's the only place where the bus speed is known.
>>
>> If I understand correctly, you only miss a way to get bus_freq_hz from
>> i2c_timings to calculate the divider by yourself? This looks like Linux
>> limitation, so we shouldn't push it into DT, but rather fix Linux. The
>> I2C bus rate is known, the MCLK rate as well, so divider is possible to
>> deduce.
>>
>> I am actually surprised that I2C core does not store the timings
>> anywhere and each bus host has to deal with it on its own.
>>
>> Best regards,
>> Krzysztof
>
> I agree it'd be better if Linux provided access the bus frequency, but
> even if that API was added it will take time for every I2C adapter to
> support it. So in that case we would still need a DT property to provide
> a safe limit or use a safe default, and miss potential power savings.
>
> I'd prefer to add the DT property to allow power savings to be had now,
> and drop it if/when the kernel gets an API for bus frequency. That will
> be safe from a compatibility point of view -- the property won't be
> providing any useful information so it won't matter if old DTs have it.
OK, sounds good.
Best regards,
Krzysztof
next prev parent reply other threads:[~2023-05-11 17:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-10 11:23 [PATCH v1 1/3] ASoC: Add ESS ES9218P codec driver Aidan MacDonald
2023-05-10 11:23 ` [PATCH v1 2/3] dt-bindings: vendor-prefixes: Add ESS Technology vendor prefix Aidan MacDonald
2023-05-11 9:53 ` Krzysztof Kozlowski
2023-05-10 11:23 ` [PATCH v1 3/3] dt-bindings: ASoC: Add ESS ES9218P codec bindings Aidan MacDonald
2023-05-11 9:58 ` Krzysztof Kozlowski
2023-05-11 10:15 ` Aidan MacDonald
2023-05-11 11:10 ` Krzysztof Kozlowski
2023-05-11 11:26 ` Aidan MacDonald
2023-05-11 17:57 ` Krzysztof Kozlowski [this message]
2023-05-11 9:53 ` [PATCH v1 1/3] ASoC: Add ESS ES9218P codec driver Krzysztof Kozlowski
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=3c131132-35ce-e5da-2608-36d53abc6c83@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=aidanmacdonald.0x0@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=perex@perex.cz \
--cc=robh+dt@kernel.org \
--cc=tiwai@suse.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