162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mmc/cdns,sdhci.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Cadence SD/SDIO/eMMC Host Controller (SD4HC) 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Masahiro Yamada <yamada.masahiro@socionext.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciproperties: 1362306a36Sopenharmony_ci compatible: 1462306a36Sopenharmony_ci items: 1562306a36Sopenharmony_ci - enum: 1662306a36Sopenharmony_ci - amd,pensando-elba-sd4hc 1762306a36Sopenharmony_ci - microchip,mpfs-sd4hc 1862306a36Sopenharmony_ci - socionext,uniphier-sd4hc 1962306a36Sopenharmony_ci - const: cdns,sd4hc 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci reg: 2262306a36Sopenharmony_ci minItems: 1 2362306a36Sopenharmony_ci maxItems: 2 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci interrupts: 2662306a36Sopenharmony_ci maxItems: 1 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci clocks: 2962306a36Sopenharmony_ci maxItems: 1 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci resets: 3262306a36Sopenharmony_ci maxItems: 1 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci # PHY DLL input delays: 3562306a36Sopenharmony_ci # They are used to delay the data valid window, and align the window to 3662306a36Sopenharmony_ci # sampling clock. The delay starts from 5ns (for delay parameter equal to 0) 3762306a36Sopenharmony_ci # and it is increased by 2.5ns in each step. 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci cdns,phy-input-delay-sd-highspeed: 4062306a36Sopenharmony_ci description: Value of the delay in the input path for SD high-speed timing 4162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 4262306a36Sopenharmony_ci minimum: 0 4362306a36Sopenharmony_ci maximum: 0x1f 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci cdns,phy-input-delay-legacy: 4662306a36Sopenharmony_ci description: Value of the delay in the input path for legacy timing 4762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 4862306a36Sopenharmony_ci minimum: 0 4962306a36Sopenharmony_ci maximum: 0x1f 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci cdns,phy-input-delay-sd-uhs-sdr12: 5262306a36Sopenharmony_ci description: Value of the delay in the input path for SD UHS SDR12 timing 5362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 5462306a36Sopenharmony_ci minimum: 0 5562306a36Sopenharmony_ci maximum: 0x1f 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci cdns,phy-input-delay-sd-uhs-sdr25: 5862306a36Sopenharmony_ci description: Value of the delay in the input path for SD UHS SDR25 timing 5962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6062306a36Sopenharmony_ci minimum: 0 6162306a36Sopenharmony_ci maximum: 0x1f 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci cdns,phy-input-delay-sd-uhs-sdr50: 6462306a36Sopenharmony_ci description: Value of the delay in the input path for SD UHS SDR50 timing 6562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6662306a36Sopenharmony_ci minimum: 0 6762306a36Sopenharmony_ci maximum: 0x1f 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci cdns,phy-input-delay-sd-uhs-ddr50: 7062306a36Sopenharmony_ci description: Value of the delay in the input path for SD UHS DDR50 timing 7162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 7262306a36Sopenharmony_ci minimum: 0 7362306a36Sopenharmony_ci maximum: 0x1f 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci cdns,phy-input-delay-mmc-highspeed: 7662306a36Sopenharmony_ci description: Value of the delay in the input path for MMC high-speed timing 7762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 7862306a36Sopenharmony_ci minimum: 0 7962306a36Sopenharmony_ci maximum: 0x1f 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci cdns,phy-input-delay-mmc-ddr: 8262306a36Sopenharmony_ci description: Value of the delay in the input path for eMMC high-speed DDR timing 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci # PHY DLL clock delays: 8562306a36Sopenharmony_ci # Each delay property represents the fraction of the clock period. 8662306a36Sopenharmony_ci # The approximate delay value will be 8762306a36Sopenharmony_ci # (<delay property value>/128)*sdmclk_clock_period. 8862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 8962306a36Sopenharmony_ci minimum: 0 9062306a36Sopenharmony_ci maximum: 0x1f 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci cdns,phy-dll-delay-sdclk: 9362306a36Sopenharmony_ci description: | 9462306a36Sopenharmony_ci Value of the delay introduced on the sdclk output for all modes except 9562306a36Sopenharmony_ci HS200, HS400 and HS400_ES. 9662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9762306a36Sopenharmony_ci minimum: 0 9862306a36Sopenharmony_ci maximum: 0x7f 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci cdns,phy-dll-delay-sdclk-hsmmc: 10162306a36Sopenharmony_ci description: | 10262306a36Sopenharmony_ci Value of the delay introduced on the sdclk output for HS200, HS400 and 10362306a36Sopenharmony_ci HS400_ES speed modes. 10462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10562306a36Sopenharmony_ci minimum: 0 10662306a36Sopenharmony_ci maximum: 0x7f 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci cdns,phy-dll-delay-strobe: 10962306a36Sopenharmony_ci description: | 11062306a36Sopenharmony_ci Value of the delay introduced on the dat_strobe input used in 11162306a36Sopenharmony_ci HS400 / HS400_ES speed modes. 11262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 11362306a36Sopenharmony_ci minimum: 0 11462306a36Sopenharmony_ci maximum: 0x7f 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_cirequired: 11762306a36Sopenharmony_ci - compatible 11862306a36Sopenharmony_ci - reg 11962306a36Sopenharmony_ci - interrupts 12062306a36Sopenharmony_ci - clocks 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciallOf: 12362306a36Sopenharmony_ci - $ref: mmc-controller.yaml 12462306a36Sopenharmony_ci - if: 12562306a36Sopenharmony_ci properties: 12662306a36Sopenharmony_ci compatible: 12762306a36Sopenharmony_ci contains: 12862306a36Sopenharmony_ci const: amd,pensando-elba-sd4hc 12962306a36Sopenharmony_ci then: 13062306a36Sopenharmony_ci properties: 13162306a36Sopenharmony_ci reg: 13262306a36Sopenharmony_ci items: 13362306a36Sopenharmony_ci - description: Host controller registers 13462306a36Sopenharmony_ci - description: Elba byte-lane enable register for writes 13562306a36Sopenharmony_ci required: 13662306a36Sopenharmony_ci - resets 13762306a36Sopenharmony_ci else: 13862306a36Sopenharmony_ci properties: 13962306a36Sopenharmony_ci reg: 14062306a36Sopenharmony_ci maxItems: 1 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ciunevaluatedProperties: false 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ciexamples: 14562306a36Sopenharmony_ci - | 14662306a36Sopenharmony_ci emmc: mmc@5a000000 { 14762306a36Sopenharmony_ci compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc"; 14862306a36Sopenharmony_ci reg = <0x5a000000 0x400>; 14962306a36Sopenharmony_ci interrupts = <0 78 4>; 15062306a36Sopenharmony_ci clocks = <&clk 4>; 15162306a36Sopenharmony_ci bus-width = <8>; 15262306a36Sopenharmony_ci mmc-ddr-1_8v; 15362306a36Sopenharmony_ci mmc-hs200-1_8v; 15462306a36Sopenharmony_ci mmc-hs400-1_8v; 15562306a36Sopenharmony_ci cdns,phy-dll-delay-sdclk = <0>; 15662306a36Sopenharmony_ci }; 157