Re: [PATCH 01/28] mfd: Add Microchip ZL3073x support

Ivan Vecera
2025-04-14T11:52:29Z

On 14. 04. 25 1:39 odp., Ivan Vecera wrote:
>
>
> On 14. 04. 25 8:36 dop., Andy Shevchenko wrote:
>>> What is wrong here?
>>>
>>> I have a device that uses 7-bit addresses and have 16 register pages.
>>> Each pages is from 0x00-0x7f and register 0x7f is used as page selector
>>> where bits 0-3 select the page.
>> The problem is that you overlap virtual page over the real one (the
>> main one).
>>
>> The drivers you mentioned in v2 discussions most likely are also buggy.
>> As I implied in the above question the developers hardly get the
>> regmap ranges
>> right. It took me quite a while to see the issue, so it's not
>> particularly your
>> fault.
> Hi Andy,
>
> thank you I see the point.
>
> Do you mean that the selector register should not be part of the range?
>
> If so, does it mean that I have to specify a range for each page? Like
> this:
>
>     {
>         /* Page 0 */
>         .range_min    = 0x000,
>         .range_max    = 0x07e,
>         .selector_reg    = ZL3073x_PAGE_SEL,
>         .selector_mask    = GENMASK(3, 0),
>         .selector_shift    = 0,
>         .window_start    = 0,
>         .window_len    = 0x7e,
>     },
>     {
>         /* Page 1 */
>         .range_min    = 0x080,
>         .range_max    = 0x0fe,
>         .selector_reg    = ZL3073x_PAGE_SEL,
>         .selector_mask    = GENMASK(3, 0),
>         .selector_shift    = 0,
>         .window_start    = 0,
>         .window_len    = 0x7e,
>     },
> ...
>
>
> Thank you,
> Ivan
Sorry,
.window_len = 0x7f /* Exclude selector reg */

I.