All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: phucduc.bui@gmail.com
Cc: devicetree@vger.kernel.org, wsa+renesas@sang-engineering.com,
	robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v3 01/10] ASoC: dt-bindings: renesas,fsi: add support multiple clocks
Date: Mon, 11 May 2026 20:45:27 +0000	[thread overview]
Message-ID: <20260511204528.14632C2BCB0@smtp.kernel.org> (raw)
In-Reply-To: <20260510084303.122426-2-phucduc.bui@gmail.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The schema fails to enforce the mandatory SPU clock for the r8a7740 hardware variant, and the example provides a functionally broken configuration.
- [Medium] Mismatch between strictly positional `clocks` descriptions and unordered `clock-names`, combined with missing `clock-names` enforcement.
--

commit 3adcf4902a5e62b71566ef5381f002fd5338a399
Author: bui duc phuc <phucduc.bui@gmail.com>

    ASoC: dt-bindings: renesas,fsi: add support multiple clocks

This commit updates the FSI bindings to support multiple clocks to properly
describe the hardware clock tree. It adds the SPU bus/bridge clock required
for the r8a7740 SoC, as well as definitions for functional clocks, internal
dividers, and external clock inputs.

> diff --git a/Documentation/devicetree/bindings/sound/renesas,fsi.yaml b/Documentation/devicetree/bindings/sound/renesas,fsi.yaml
> index df91991699a72..c50e7115b21a0 100644
> --- a/Documentation/devicetree/bindings/sound/renesas,fsi.yaml
> +++ b/Documentation/devicetree/bindings/sound/renesas,fsi.yaml
> @@ -38,7 +38,32 @@ properties:
>      maxItems: 1
>  
>    clocks:
> -    maxItems: 1
> +    minItems: 1
> +    items:
> +      - description: Main FSI module clock
> +      - description: |
> +          SPU bus/bridge clock. On R8A7740, this clock must be enabled to allow
> +          register access as the FSI block is connected behind the SPU bus.

Should we add an allOf block with an if-then condition to enforce the
presence of the SPU clock for the renesas,fsi2-r8a7740 hardware variant?

Without it, incomplete device trees might silently pass schema validation but
fail catastrophically at runtime, as the commit message notes that missing
this clock causes a system hang.

The examples section of this file demonstrates this:

    sh_fsi2: sound@fe1f0000 {
            compatible = "renesas,fsi2-r8a7740", "renesas,sh_fsi2";
            ...
            clocks = <&mstp3_clks R8A7740_CLK_FSI>;

This example only supplies a single clock and omits both the required SPU
clock and the clock-names property, which contradicts the commit message.

> +      - description: CPG DIV6 functional clocks for FSI port A
> +      - description: CPG DIV6 functional clocks for FSI port B
> +      - description: Internal FSI dividers for port A used for audio clock generation
> +      - description: Internal FSI dividers for port B used for audio clock generation
> +      - description: External clock inputs for FSI port A provided by the board
> +      - description: External clock inputs for FSI port B provided by the board
> +
> +  clock-names:
> +    minItems: 1
> +    maxItems: 8
> +    items:
> +      enum:
> +        - fck  # Main FSI module clock
> +        - spu  # optional SPU bus/bridge clock

Does defining clock-names with an enum correctly map sparse clocks?

Because clocks defines an items array with eight fixed descriptions, it
acts as a strict positional tuple. If a board provides the Main clock and
the icka clock but omits the optional spu clock, icka shifts to index
1. The dt-schema tooling will then incorrectly map it to the SPU description.

Additionally, using an enum here allows arbitrary ordering and does not
enforce uniqueItems: true.

Could we add clock-names to the required list when multiple clocks are
provided? Since it is not required, a device tree could specify multiple clocks
without names, leaving the driver unable to reliably map the phandles to their
respective internal functions.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260510084303.122426-1-phucduc.bui@gmail.com?part=1

  parent reply	other threads:[~2026-05-11 20:45 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-10  8:42 [PATCH v3 00/10] ASoC: renesas: fsi: Fix system hang by adding SPU clock phucduc.bui
2026-05-10  8:42 ` [PATCH v3 01/10] ASoC: dt-bindings: renesas,fsi: add support multiple clocks phucduc.bui
2026-05-11  7:30   ` Geert Uytterhoeven
2026-05-11 10:25     ` Bui Duc Phuc
2026-05-11 20:45   ` sashiko-bot [this message]
2026-05-12  6:42     ` Bui Duc Phuc
2026-05-14 15:17       ` Rob Herring
2026-05-15  7:21         ` Geert Uytterhoeven
2026-05-15  6:46   ` Krzysztof Kozlowski
2026-05-15 10:20     ` Bui Duc Phuc
2026-05-15 10:41       ` Bui Duc Phuc
2026-05-15 11:15       ` Krzysztof Kozlowski
2026-05-10  8:42 ` [PATCH v3 02/10] arm: dts: renesas: r8a7740: Add clocks for FSI phucduc.bui
2026-05-11 22:03   ` sashiko-bot
2026-05-15  6:58     ` Bui Duc Phuc
2026-05-10  8:42 ` [PATCH v3 03/10] ASoC: renesas: fsi: Fix trigger stop ordering phucduc.bui
2026-05-11 22:44   ` sashiko-bot
2026-05-10  8:42 ` [PATCH v3 04/10] ASoC: renesas: fsi: Fix register access from in-flight IRQ after shutdown phucduc.bui
2026-05-11  1:52   ` Kuninori Morimoto
2026-05-11 23:22   ` sashiko-bot
2026-05-10  8:42 ` [PATCH v3 05/10] ASoC: renesas: fsi: Move fsi_clk_init() phucduc.bui
2026-05-10  8:42 ` [PATCH v3 06/10] ASoC: renesas: fsi: Add shared SPU clock support phucduc.bui
2026-05-11  1:56   ` Kuninori Morimoto
2026-05-12  3:09     ` Bui Duc Phuc
2026-05-10  8:43 ` [PATCH v3 07/10] ASoC: renesas: fsi: refactor clock initialization phucduc.bui
2026-05-10 12:30   ` Mark Brown
2026-05-11  1:59   ` Kuninori Morimoto
2026-05-11 10:21     ` Bui Duc Phuc
2026-05-11 23:47   ` sashiko-bot
2026-05-10  8:43 ` [PATCH v3 08/10] ASoC: renesas: fsi: add fsi_clk_prepare/unprepare() phucduc.bui
2026-05-11  2:03   ` Kuninori Morimoto
2026-05-11 23:44   ` sashiko-bot
2026-05-10  8:43 ` [PATCH v3 09/10] ASoC: renesas: fsi: Use clock prepare handling in startup/shutdown phucduc.bui
2026-05-11  2:04   ` Kuninori Morimoto
2026-05-11 10:22     ` Bui Duc Phuc
2026-05-12  0:09   ` sashiko-bot
2026-05-10  8:43 ` [PATCH v3 10/10] ASoC: renesas: fsi: Add SPU clock control in hw_startup/shutdown phucduc.bui
2026-05-11 23:58   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260511204528.14632C2BCB0@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=phucduc.bui@gmail.com \
    --cc=robh@kernel.org \
    --cc=sashiko@lists.linux.dev \
    --cc=wsa+renesas@sang-engineering.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.