[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3b47b5e3-4eb2-43f9-8f4f-c021d203305e@roeck-us.net>
Date: Tue, 18 Jun 2024 12:33:40 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Mark Brown <broonie@...nel.org>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel@...r.kernel.org, Armin Wolf <W_Armin@....de>
Subject: Re: Page select register restrictions in regmap core
On 6/18/24 10:45, Mark Brown wrote:
> On Tue, Jun 18, 2024 at 09:14:56AM -0700, Guenter Roeck wrote:
>
>> Anyway, this may be all irrelevant in respect to regmap support.
>> It turns out that at least some i801 controllers don't work with the
>> access mechanism used by regmap, or maybe the spd5118 chips don't support
>> I2C_FUNC_SMBUS_I2C_BLOCK. I already found that those chips don't support
>> auto-incrementing the register address and actually reset the address on byte
>> reads (i.e., subsequent calls to i2c_smbus_read_byte() always return the data
>> from the first register). Since regmap doesn't have a means for me to say
>> "don't use I2C_FUNC_SMBUS_I2C_BLOCK even if the controller supports it",
>> I may have to drop regmap support entirely anyway. That would be annoying,
>> but right now I have no idea how to work around that problem.
>
> You can set the use_single_read and use_single_write flags in the config
> to ensure registers are accessed one at a time, that restriction is
> moderately common.
That doesn't help, unfortunately. Thinking about it, that is not really
surprising. The failing write is to the page register, and that was
a single write anyway.
Thanks,
Guenter
Powered by blists - more mailing lists