On 2/18/19 2:32 PM, Geert Uytterhoeven wrote:
> Hi Marek,



>>>>  struct pinmux_data_reg {
>>>>         u32 reg;
>>>>         u8 reg_width;
>>>> @@ -270,6 +274,7 @@ struct sh_pfc_soc_info {
>>>>         const struct pinmux_drive_reg *drive_regs;
>>>>         const struct pinmux_bias_reg *bias_regs;
>>>>         const struct pinmux_ioctrl_reg *ioctrl_regs;
>>>> +       const struct pinmux_tdsel_reg *tdsel_regs;
>>>>         const struct pinmux_data_reg *data_regs;
>>>>         const u16 *pinmux_data;
>>> Is there any special reason why you added a new block of registers with
>>> separate handling, instead of adding TDSEL to the existing
>>> pinmux_ioctrl_reg[] arrays, which list other IOCTRL registers like
>> For one, It's unrelated register to POCCTRL, so I don't want to mix them
> That's why the array is called pinmux_ioctrl_reg[], not pinmux_pocctrl_reg[]:
> it is meant to cover various I/O control registers, including POCCTRL and
> TDSEL, to be saved/restored for PSCI system suspend.

I thought the array is called pinmux_ioctrl_reg[] because that's what
the pocctrl was called in older datasheets ? At least that's how you
explained it on IRC last time.

>> together. The other reason is this r8a779*_pin_to_pocctrl(), which uses
>> the ioctrl_regs[] array ; if I added the TDSEL there, that'd just make
>> things extra confusing.
> How r8a779*_pin_to_pocctrl() gets the registers is an implementation detail,
> IMHO (The function used to contain hardcoded register addresses).
> So I think you should just add the TDSEL registers to pinmux_ioctrl_reg[].

If that's what you think is better and makes the driver less confusing,
sure ...

Best regards,
Marek Vasut

Reply via email to