[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <277e0484-60bd-7405-4cd1-acf0a03ef195@linaro.org>
Date: Thu, 14 Jul 2022 17:15:34 +0200
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: Mark Brown <broonie@...nel.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: Question: regmap_field_write() - why using update?
On 14/07/2022 17:13, Krzysztof Kozlowski wrote:
> On 14/07/2022 17:07, Mark Brown wrote:
>> On Thu, Jul 14, 2022 at 05:01:29PM +0200, Krzysztof Kozlowski wrote:
>>
>>> I am converting my driver using MMIO to regmap from readl/writel and to
>>> my surprise I found that regmap_field_write() does not behave the same
>>> as regmap_write(). I would expect that they are the same, except one
>>> operates on fields.
>>
>>> However regmap_field_write() uses an update method [1] which means it
>>> reads and performs update. regmap_write() simply writes without a read.
>>
>>> I find it inconsistent and a bit confusing. Any reasons for such
>>> behavior so I won't send a patch which breaks 100 of devices?
>>
>> How would you propose to write to a field without reading the rest of
>> the bits in the register? Otherwise you'd be doing a full register
>> write rather than just a write to the specific field.
>
> Indeed, I forgot about bits in a field... So it has to be like this or I
> need to use regmap_write(). I find the regmap field API very useful for
> devices with different register layouts, but the actual "fields" part is
> not really needed in my case.
... and few registers (like "clear" registers) actually do not allow to
read.
Best regards,
Krzysztof
Powered by blists - more mailing lists