[PATCH v3 02/10] dt-bindings: pincfg-node: Add properties 'skew-delay-{in,out}put'
Linus Walleij
linus.walleij at linaro.org
Tue Oct 14 12:33:14 PDT 2025
On Tue, Oct 14, 2025 at 8:04 PM Conor Dooley <conor at kernel.org> wrote:
> On Tue, Oct 14, 2025 at 04:04:43PM +0200, Antonio Borneo wrote:
> > + skew-delay-input:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description:
> > + this affects the expected clock skew on input pins.
> > + Typically indicates how many double-inverters are used to
> > + delay the signal.
>
> This property seems to be temporal, I would expect to see a unit of time
> mentioned here, otherwise it'll totally inconsistent in use between
> devices, and also a standard unit suffix in the property name.
> pw-bot: changes-requested
Don't blame the messenger, the existing property skew-delay
says:
skew-delay:
$ref: /schemas/types.yaml#/definitions/uint32
description:
this affects the expected clock skew on input pins
and the delay before latching a value to an output
pin. Typically indicates how many double-inverters are
used to delay the signal.
This in turn comes from the original
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
document, which in turn comes from this commit:
commit e0e1e39de490a2d9b8a173363ccf2415ddada871
Author: Linus Walleij <linus.walleij at linaro.org>
Date: Sat Oct 28 15:37:17 2017 +0200
pinctrl: Add skew-delay pin config and bindings
Some pin controllers (such as the Gemini) can control the
expected clock skew and output delay on certain pins with a
sub-nanosecond granularity. This is typically done by shunting
in a number of double inverters in front of or behind the pin.
Make it possible to configure this with a generic binding.
Cc: devicetree at vger.kernel.org
Acked-by: Rob Herring <robh at kernel.org>
Acked-by: Hans Ulli Kroll <ulli.kroll at googlemail.com>
Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
So by legacy skew-delay is a custom format, usually the number of
(double) inverters.
I don't recall the reason for this way of defining things, but one reason
could be that the skew-delay incurred by two inverters is very
dependent on the production node of the silicon, and can be
nanoseconds or picoseconds, these days mostly picoseconds.
Example: Documentation/devicetree/bindings/net/adi,adin.yaml
Antonio, what do you say? Do you have the actual skew picosecond
values for the different settings so we could define this as
skew-delay-input-ps:
skew-delay-output-ps:
and translate it to the right register values in the driver?
If we have the proper data this could be a good time to add this
ISO unit to these two props.
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list