public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: hehuan1@eswincomputing.com
Cc: ulf.hansson@linaro.org, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, jszhang@kernel.org, adrian.hunter@intel.com,
	p.zabel@pengutronix.de, linux-mmc@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	ningyu@eswincomputing.com, linmin@eswincomputing.com,
	pinkesh.vaghela@einfochips.com, xuxiang@eswincomputing.com,
	luyulin@eswincomputing.com, dongxuyang@eswincomputing.com,
	zhangsenchuan@eswincomputing.com,
	weishangjuan@eswincomputing.com, lizhi2@eswincomputing.com,
	caohang@eswincomputing.com
Subject: Re: [PATCH v2 1/2] dt-bindings: mmc: sdhci-of-dwcmshc: Add Eswin EIC7700
Date: Fri, 12 Sep 2025 20:10:04 +0100	[thread overview]
Message-ID: <20250912-pork-oaf-3480d3d0ef67@spud> (raw)
In-Reply-To: <20250912093713.142-1-hehuan1@eswincomputing.com>

[-- Attachment #1: Type: text/plain, Size: 5191 bytes --]

On Fri, Sep 12, 2025 at 05:37:13PM +0800, hehuan1@eswincomputing.com wrote:
> From: Huan He <hehuan1@eswincomputing.com>
> 
> EIC7700 use Synopsys dwcmshc IP for SD/eMMC controllers.
> Add Eswin EIC7700 support in sdhci-of-dwcmshc.yaml.
> 
> Signed-off-by: Huan He <hehuan1@eswincomputing.com>
> ---
>  .../bindings/mmc/snps,dwcmshc-sdhci.yaml      | 81 +++++++++++++++++--
>  1 file changed, 75 insertions(+), 6 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mmc/snps,dwcmshc-sdhci.yaml b/Documentation/devicetree/bindings/mmc/snps,dwcmshc-sdhci.yaml
> index f882219a0a26..e0f34bc28e0c 100644
> --- a/Documentation/devicetree/bindings/mmc/snps,dwcmshc-sdhci.yaml
> +++ b/Documentation/devicetree/bindings/mmc/snps,dwcmshc-sdhci.yaml
> @@ -30,6 +30,7 @@ properties:
>            - sophgo,sg2002-dwcmshc
>            - sophgo,sg2042-dwcmshc
>            - thead,th1520-dwcmshc
> +          - eswin,eic7700-dwcmshc
>  
>    reg:
>      maxItems: 1
> @@ -52,17 +53,51 @@ properties:
>      maxItems: 5
>  
>    reset-names:
> -    items:
> -      - const: core
> -      - const: bus
> -      - const: axi
> -      - const: block
> -      - const: timer
> +    maxItems: 5
>  
>    rockchip,txclk-tapnum:
>      description: Specify the number of delay for tx sampling.
>      $ref: /schemas/types.yaml#/definitions/uint8
>  
> +  clock-output-names:
> +    maxItems: 1
> +    description:
> +      The name of the clock output representing the card clock,
> +      consumed by the PHY.

You have one clock, why do you need this?

> +
> +  '#clock-cells':
> +    enum: [0]

const: 0

> +    description:
> +      Specifies how many cells are used when referencing the
> +      exported clock from another node. This property indicates
> +      that the clock output has no extra parameters and represents
> +      the card clock.

This description is not needed.

> +
> +  eswin,hsp-sp-csr:
> +    $ref: /schemas/types.yaml#/definitions/phandle-array
> +    items:
> +      - description: Phandle to HSP(High-Speed Peripheral) device
> +      - description: Offset of the stability status register for
> +                     internal clock
> +      - description: Offset of the stability register for host
> +                     regulator voltage.
> +    description: |
> +      High-Speed Peripheral device needed to configure internal
> +      clocks, and the power.
> +
> +  eswin,syscrg-csr:
> +    $ref: /schemas/types.yaml#/definitions/phandle-array
> +    items:
> +      - description: Phandle to system CRG(System Clock and Reset
> +                     Generator) device
> +      - description: Offset of core clock control register
> +    description: |
> +      System Clock and Reset Generator device needed to configure
> +      core clock.

This reeks of improper clock tree description. Why can you not just
request the rate that you need via the common clk framework? Likewise
for reset. You already have a clocks property that has to include the
core clock, so I don't see why you need another property to get around
it.

As a result, I'm also suspicious of your hsp-sp-csr, but these at least
appear to be internal clocks if your description is to be believed.
I'd like you to explain exactly what those clocks do and what the "HSP"
actually is. What other peripherals use it?

Also, your driver turns on this hsp clock but never turns it off. Same
for the power.

I want to see the full dts for what you're doing here before I approve
this, there's too much here that looks wrong.

> +
> +  drive-impedance-ohm:

How come this one has no eswin prefix? Also, the unit is "Ohms", not
"Ohm".

Additionally, any eswin properties should be restricted to eswin devices
only.

> +    description: Specifies the drive impedance in Ohm.
> +    enum: [33, 40, 50, 66, 100]
> +
>  required:
>    - compatible
>    - reg
> @@ -110,6 +145,40 @@ allOf:
>              - const: block
>              - const: timer
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: eswin,eic7700-dwcmshc
> +    then:
> +      properties:
> +        resets:
> +          minItems: 4
> +          maxItems: 4
> +        reset-names:
> +          items:
> +            - const: arstn
> +            - const: phy_rst
> +            - const: prstn
> +            - const: txrx_rst

How come you're so drastically different to the other devices?
Also, putting "_rst" in a reset name is pointless. These are all resets
after all by nature.

Cheers,
Conor.

> +      required:
> +        - clock-output-names
> +        - '#clock-cells'
> +        - eswin,hsp-sp-csr
> +        - eswin,syscrg-csr
> +        - drive-impedance-ohm
> +    else:
> +      properties:
> +        resets:
> +          maxItems: 5
> +        reset-names:
> +          items:
> +            - const: core
> +            - const: bus
> +            - const: axi
> +            - const: block
> +            - const: timer
> +
>    - if:
>        properties:
>          compatible:
> -- 
> 2.25.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2025-09-12 19:10 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-12  9:34 [PATCH v2 0/2] Add support for Eswin EIC7700 SD/eMMC controller hehuan1
2025-09-12  9:37 ` [PATCH v2 1/2] dt-bindings: mmc: sdhci-of-dwcmshc: Add Eswin EIC7700 hehuan1
2025-09-12 19:10   ` Conor Dooley [this message]
2025-09-23  5:45     ` 何欢
2025-09-24 19:43       ` Conor Dooley
2025-09-25  9:37         ` 何欢
2025-09-25 19:32           ` Conor Dooley
2025-09-12  9:38 ` [PATCH v2 2/2] mmc: sdhci-of-dwcmshc: Add support for " hehuan1
2025-09-18 17:36   ` Adrian Hunter

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=20250912-pork-oaf-3480d3d0ef67@spud \
    --to=conor@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=caohang@eswincomputing.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dongxuyang@eswincomputing.com \
    --cc=hehuan1@eswincomputing.com \
    --cc=jszhang@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linmin@eswincomputing.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=lizhi2@eswincomputing.com \
    --cc=luyulin@eswincomputing.com \
    --cc=ningyu@eswincomputing.com \
    --cc=p.zabel@pengutronix.de \
    --cc=pinkesh.vaghela@einfochips.com \
    --cc=robh@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=weishangjuan@eswincomputing.com \
    --cc=xuxiang@eswincomputing.com \
    --cc=zhangsenchuan@eswincomputing.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox