Re: [PATCH v2 3/4] dt-bindings: ufs: mediatek,ufs: add MT8195 compatible and update clock nodes

AngeloGioacchino Del Regno
2025-07-22T09:48:56Z

Il 22/07/25 10:57, Macpaul Lin ha scritto:
> Add MT8195 UFSHCI compatible string.
> Relax the schema to allow between one to eight clocks/clock-names
> entries for all MediaTek UFS nodes. Legacy platforms may only need
> a few clocks, whereas newer devices such as the MT8195 require
> additional clock-gating domains. For MT8195 specifically, enforce
> exactly eight clocks and clock-names entries to satisfy its hardware
> requirements.
>
> Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
> ---
> .../devicetree/bindings/ufs/mediatek,ufs.yaml | 42 ++++++++++++++++---
> 1 file changed, 36 insertions(+), 6 deletions(-)
>
> Changes for v2:
> - Remove duplicate minItems and maxItems as suggested in the review.
> - Add a description of how the MT8195 hardware differs from earlier
> platforms.
>
> diff --git a/Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml b/Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml
> index 20f341d25ebc..1dec54fb00f3 100644
> --- a/Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml
> +++ b/Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml
> @@ -9,21 +9,20 @@ title: Mediatek Universal Flash Storage (UFS) Controller
> maintainers:
> - Stanley Chu <stanley.chu@mediatek.com>
>
> -allOf:
> - - $ref: ufs-common.yaml
> -
> properties:
> compatible:
> enum:
> - mediatek,mt8183-ufshci
> - mediatek,mt8192-ufshci
> + - mediatek,mt8195-ufshci
>
> clocks:
> - maxItems: 1
> + minItems: 1
> + maxItems: 8
>
> clock-names:
> - items:
> - - const: ufs
> + minItems: 1
> + maxItems: 8
>
> phys:
> maxItems: 1
> @@ -47,6 +46,37 @@ required:
>
> unevaluatedProperties: false
>
> +allOf:
> + - $ref: ufs-common.yaml
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - mediatek,mt8195-ufshci
> + then:
> + properties:
> + clocks:
> + minItems: 8
> + clock-names:
> + items:
> + - const: ufs
> + - const: ufs_aes
> + - const: ufs_tick
> + - const: unipro_sysclk
> + - const: unipro_tick
> + - const: unipro_mp_bclk

The unipro mp_bclk really is the ufs-sap clock; besides, the standard has clocks
for both TX and RX symbols - and also MT8195 (and also MT6991, MT8196, and others)
UFS controller do have both TX and RX symbol clocks.

Besides, you're also missing the crypto clocks for UFS, which brings the count to
12 total clocks for MT8195.

Please, look at my old submission, which actually fixes the compatibles other than
adding the right clocks for all UFS controllers in MediaTek platforms.

https://lore.kernel.org/all/20240612074309.50278-1-angelogioacchino.delregno@collabora.com/

I want to take the occasion to remind everyone that my fixes were discarded because
the MediaTek UFS driver maintainer wants to keep the low quality of the driver in
favor of easier downstream porting - which is *not* in any way adhering to quality
standards that the Linux community deserves.

Cheers,
Angelo

> + - const: ufs_tx_symbol
> + - const: ufs_mem_sub
> + else:
> + properties:
> + clocks:
> + maxItems: 1
> + clock-names:
> + items:
> + - const: ufs
> +
> examples:
> - |
> #include <dt-bindings/clock/mt8183-clk.h>