Re: [PATCH v2 7/9] dt-bindings: spi: mtk-snfi: Add read latch latency property

From: AngeloGioacchino Del Regno
Date: Wed Dec 07 2022 - 04:49:00 EST


Il 07/12/22 03:00, Xiangsheng Hou (侯祥胜) ha scritto:
Hi Angelo,

On Tue, 2022-12-06 at 13:19 +0100, AngeloGioacchino Del Regno wrote:
diff --git
a/Documentation/devicetree/bindings/spi/mediatek,spi-
mtk-snfi.yaml
b/Documentation/devicetree/bindings/spi/mediatek,spi-
mtk-snfi.yaml
index bab23f1b11fd..6e6ff8d73fcd 100644
--- a/Documentation/devicetree/bindings/spi/mediatek,spi-mtk-
snfi.yaml
+++ b/Documentation/devicetree/bindings/spi/mediatek,spi-mtk-
snfi.yaml
@@ -45,6 +45,13 @@ properties:
description: device-tree node of the accompanying ECC
engine.
$ref: /schemas/types.yaml#/definitions/phandle
+ mediatek,rx-latch-latency:
+ description: Rx delay to sample data with this value, the
value
+ unit is clock cycle.

Can't we use nanoseconds or microseconds as a unit here, instead
of
clock cycles?

The clock cycle will be various with MediaTek SPI NAND controller
which
clock frequency can support 26/52/68/81/104MHz...
It`s may be easy to configure and understand with clock cycle in
unit.


Yes, but whatever clock frequency we use, the target is to always
wait for
X nanoseconds, right?

Waiting for 5 clock cycles at 104MHz is obviously not the same as
waiting
for the same 5 clock cycles at 26MHz: in that case, expressing the
value
in nanoseconds or microseconds would make that independent from the
controller's clock frequency as the calculation from `time` to
`cycles`
would be performed inside of the driver.

There have two rx related timing properties in spi-peripheral-props.
The rx-sample-delay-ns have been used in Mediatek snfi driver to adjust
controller sample delay.
However another spi-rx-delay-us is in microseconds. Take 52MHz for
example, the clock cycle will be 19.23ns which lower than 1us. This may
not easy to by one clock cycle.


I agree, but nothing prevents you from adding your own property for that.

I propose "mediatek,rx-latch-latency-ns" or "mediatek,rx-latency-ns", so that
we can specify the delay in nanoseconds: in that case, when we specify 19ns,
the driver will safely round that resulting in 52MHz == 19.23ns => 19ns valid.

Regards,
Angelo