Hi Krzysztof, On Mon, Mar 14, 2022 at 11:41:27AM +0100, Krzysztof Kozlowski wrote: > On 14/03/2022 11:30, Pavan Kondeti wrote: > > Hi Krzysztof, > > > >> > >> Ah, I did not get it. That's not the solution for this case. defines in > >> dt-bindings are for constants which already can be in DT, e.g. IDs. Your > >> register values should not be stored in DT. > >> > > These are again not register definitions. These are encodings that dT and > > driver can use. These would be constants only, no? > > What do you mean it is not a register value? I don't have access to > datasheet/manual but I can clearly see code: > > + if (or->hs_disconnect.override) > + qcom_snps_hsphy_write_mask(hsphy->base, > + USB2_PHY_USB_PHY_HS_PHY_OVERRIDE_X0, > + HS_DISCONNECT_MASK, > + or->hs_disconnect.value << HS_DISCONNECT_SHIFT); > > You read the value from DT (e.g. "3" which means 6.3% for hs-disconnect) > and you write it to a register. Directly. 3 is a value for the hardware, > meaningless outside of it. It has meaning only in this one hardware > programming model. For humans it means nothing. For humans 6.3% means > something. > Right, This is what I have been saying will change. we don't pass the direct register values anymore. Instead I am saying, we pass the percentage multiplied by 100. For 6.3%, user will be passing 630 in device tree. for -2.75% user will pass (-275). Are we on the same page now? Thanks, Pavan