Re: [PATCH 06/10] dt-bindings: ufs: Add compatibles for S32N79 Host Controller platform driver

Frank Li <[email protected]>
Newsgroups org.kernel.vger.linux-scsi,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <ao75lU2zYDeOZi2f@SMW015318>
On Wed, Aug 26, 2026 at 03:40:44PM +0200, Larisa Grigore wrote:
> [You don't often get email from [email protected]. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> Document the device tree binding for the NXP S32N79 DWC-based UFS host
> controller which is compliant with JESD-223D "Universal Flash Storage Host
> Controller Interface" v3.0.
>
> The controller requires access to the SCM register block and the core
> clock rate when M-PHY initialization is performed. Add the optional
> nxp,mphy-boot-mode property to select the M-PHY firmware execution
> environment.
> Currently, the M-PHY firmware can only run from ROM. If the property is
> omitted, M-PHY initialization is assumed to be handled externally.
>
> Signed-off-by: Larisa Grigore <[email protected]>
> ---
>  .../bindings/ufs/nxp,s32n7-ufshc.yaml         | 99 +++++++++++++++++++
>  1 file changed, 99 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/ufs/nxp,s32n7-ufshc.yaml
>
> diff --git a/Documentation/devicetree/bindings/ufs/nxp,s32n7-ufshc.yaml b/Documentation/devicetree/bindings/ufs/nxp,s32n7-ufshc.yaml
> new file mode 100644
> index 000000000000..d9d5669be313
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/ufs/nxp,s32n7-ufshc.yaml
> @@ -0,0 +1,99 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/ufs/nxp,s32n7-ufshc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NXP S32N79 Universal Flash Storage (UFS) Controller
> +
> +maintainers:
> +  - Larisa Grigore <[email protected]>
> +
> +# Select only our matches, not all jedec,ufs
> +select:
> +  properties:
> +    compatible:
> +      contains:
> +        const: nxp,s32n79-ufshc
> +  required:
> +    - compatible
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: nxp,s32n79-ufshc
> +      - const: jedec,ufs-3.0

Any place actually use this fallback?

> +
> +  reg:
> +    minItems: 1
> +    items:
> +      - description: UFS Host Controller registers
> +      - description: System Control Module registers
> +
> +  reg-names:
> +    description: |
> +      Names for the register regions. The first entry must be "ufshc".
> +      The second entry "scm" is mandatory only when nxp,mphy-boot-mode
> +      property is present.

you already us if - else branch to restrict this limition, needn't
description here.

> +    minItems: 1
> +    items:
> +      - const: ufshc
> +      - const: scm
> +
> +  clocks:
> +    maxItems: 1
> +    description: UFS core clock
> +
> +  clock-names:
> +    items:
> +      - const: core_clk

Needn't suffix _clk, just "core", generally needn't clock-names if only
one clocks.

> +
> +  nxp,mphy-boot-mode:
> +    description: |
> +      MPHY initialization mode. Defines how the MPHY firmware should be
> +      initialized and executed during UFS controller startup.
> +      If this property is not specified, MPHY initialization will be skipped.
> +    $ref: /schemas/types.yaml#/definitions/string
> +    enum:
> +      - rom

why not use standard "phy" property, if no "phy" means ROM init it.

Frank
> +
> +required:
> +  - compatible
> +  - reg
> +
> +allOf:
> +  - $ref: ufs-common.yaml
> +  - if:
> +      required:
> +        - nxp,mphy-boot-mode
> +    then:
> +      properties:
> +        reg:
> +          minItems: 2
> +        reg-names:
> +          minItems: 2
> +      required:
> +        - reg-names
> +        - clocks
> +        - clock-names
> +    else:
> +      properties:
> +        reg:
> +          maxItems: 1
> +        reg-names:
> +          maxItems: 1
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    ufshc@4ac80000 {
> +        compatible = "nxp,s32n79-ufshc", "jedec,ufs-3.0";
> +        reg = <0x4ac80000 0x1000>, <0x4ac40000 0x1000>;
> +        reg-names = "ufshc", "scm";
> +        interrupt-parent = <&irqsteer_coss>;
> +        interrupts = <211>;
> +        clocks = <&sys_clk>;
> +        clock-names = "core_clk";
> +        nxp,mphy-boot-mode = "rom";
> +    };
> --
> 2.43.0
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.