On 24-11-04 11:25:40, Konrad Dybcio wrote: > On 4.11.2024 11:16 AM, Abel Vesa wrote: > > On 24-11-02 10:17:56, Konrad Dybcio wrote: > >> On 1.11.2024 5:29 PM, Abel Vesa wrote: > >>> The Parade PS8830 is a USB4, DisplayPort and Thunderbolt 4 retimer, > >>> controlled over I2C. It usually sits between a USB/DisplayPort PHY > >>> and the Type-C connector, and provides orientation and altmode handling. > >>> > >>> The boards that use this retimer are the ones featuring the Qualcomm > >>> Snapdragon X Elite SoCs. > >>> > >>> Add a driver with support for the following modes: > >>> - DisplayPort 4-lanes > >>> - DisplayPort 2-lanes + USB3 > >>> - USB3 > >>> > >>> There is another variant of this retimer which is called PS8833. It seems > >>> to be really similar to the PS8830, so future-proof this driver by > >>> naming it ps883x. > >>> > >>> Signed-off-by: Abel Vesa <abel.vesa@xxxxxxxxxx> > >>> --- > >> > >> [...] > >> > >>> +static void ps883x_configure(struct ps883x_retimer *retimer, int cfg0, int cfg1, int cfg2) > >>> +{ > >>> + regmap_write(retimer->regmap, 0x0, cfg0); > >>> + regmap_write(retimer->regmap, 0x1, cfg1); > >>> + regmap_write(retimer->regmap, 0x2, cfg2); > >>> +} > >> > >> Somewhere between introducing regcache and dropping it, you removed > >> muxing to a safe mode during _configure() > > > > Oh, yeah, I forgot to mention that in the change log, it seems. > > > > Configuring to safe mode is not needed since we always do that on > > unplug anyway. > > > >> > >> [...] > >> > >>> + /* skip resetting if already configured */ > >>> + if (regmap_test_bits(retimer->regmap, 0x00, BIT(0))) > >>> + return 0; > >> > >> What is that register and what does BIT(0) mean? > > > > Looking at the documentation, the first register is > > REG_USB_PORT_CONN_STATUS and spans over the first 4 bytes. > > > > But it doesn't really help here. > > > > BIT(0) doesn't really have a name, it just says "Connection present". > > Please define both then. STATUS_CONNECTION_PRESENT sounds good for the bit. Sure, will do. For the register name I'll just define as: REG_USB_PORT_CONN_STATUS_1 REG_USB_PORT_CONN_STATUS_2 REG_USB_PORT_CONN_STATUS_3 And that's it. > > Konrad