[PATCH 07/11] dt-bindings: spi: spi-nxp-fspi: add a new property nxp,fspi-dll-slvdly

Han Xu han.xu at nxp.com
Tue Jul 5 08:50:31 PDT 2022


On 22/07/05 05:38PM, Krzysztof Kozlowski wrote:
> On 05/07/2022 16:52, Han Xu wrote:
> > On 22/07/05 04:12PM, Krzysztof Kozlowski wrote:
> >> On 05/07/2022 16:06, Michael Walle wrote:
> >>>
> >>>>>
> >>>>> I think you could use here clock cycles or clock phase, but then it 
> >>>>> has to be obvious
> >>>>> it is that unit.
> >>>>
> >>>> Hi Krzysztof,
> >>>>
> >>>> Let me clarify it, in the document a term "delay cell" was used to
> >>>> descript this register bit. Each delay cell equals "1/32 clock phase",
> >>>> so the unit of delay cell is clock phase. The value user need set in
> >>>> DT just number to define how many delay cells needed.
> >>>
> >>> Then should the unit be "-degrees" and the possible range 0-180?
> >>
> >> Thanks. We don't have it documented currently, but the unit seems
> >> reasonable.
> > 
> > IMO, use the unit "-degrees" makes it more complicate. Personaly I would
> > calculate how many clock cycle delay needed, such as 1/4 clock cycle or half
> > clock cycle. Using degree brings extra calculation.
> 
> And what if the next device uses a bit different divider? Like 1/16?
> This is why we have standard units so people won't push register values
> into the bindings.
> 
> > 
> > The granularity of the clock phase change is 1/32 of 180 degree, but the range
> > 0-180 make people feel it can be set in any degree in range.
> 
> Yes, because that's how the bindings are being written - allowing any
> reasonable value, not register-specific value, to be used because it is
> the most flexible, hardware-independent and allows further customization
> of bindings (e.g. new devices). Embedding device programming model into
> the bindings contradicts it.
> 
> Second, nothing stops you from narrowing the acceptable values with an
> enum. This still allows extension. Your 1/32 does not.
> 
> > 
> > If I describe all details of the relation between "nxp,fspi-dll-slvdly" and
> > "delay cell" in patch v2, do you think it's clear for users?
> 
> 1/32 could be a nice unit, but degrees is better. Just like uV is better
> than 1/32 of V. Like 1 us is better than 1/32 of ms.
> 
> Do you see  in the bindings many other values like time, potential,
> current or power described in 1/32 units?

That make sense. I will use degree as the unit and round to register proper
value in driver as Michael suggested. Thanks for all comments.

> 
> Best regards,
> Krzysztof



More information about the linux-arm-kernel mailing list