1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mmc/cdns,sdhci.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: Cadence SD/SDIO/eMMC Host Controller (SD4HC) 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Masahiro Yamada <yamada.masahiro@socionext.com> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotproperties: 13c66ec88fSEmmanuel Vadot compatible: 14c66ec88fSEmmanuel Vadot items: 15c66ec88fSEmmanuel Vadot - enum: 16*fac71e4eSEmmanuel Vadot - amd,pensando-elba-sd4hc 178cc087a1SEmmanuel Vadot - microchip,mpfs-sd4hc 18c66ec88fSEmmanuel Vadot - socionext,uniphier-sd4hc 19c66ec88fSEmmanuel Vadot - const: cdns,sd4hc 20c66ec88fSEmmanuel Vadot 21c66ec88fSEmmanuel Vadot reg: 22*fac71e4eSEmmanuel Vadot minItems: 1 23*fac71e4eSEmmanuel Vadot maxItems: 2 24c66ec88fSEmmanuel Vadot 25c66ec88fSEmmanuel Vadot interrupts: 26c66ec88fSEmmanuel Vadot maxItems: 1 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot clocks: 29c66ec88fSEmmanuel Vadot maxItems: 1 30c66ec88fSEmmanuel Vadot 31cb7aa33aSEmmanuel Vadot resets: 32cb7aa33aSEmmanuel Vadot maxItems: 1 33cb7aa33aSEmmanuel Vadot 34c66ec88fSEmmanuel Vadot # PHY DLL input delays: 35c66ec88fSEmmanuel Vadot # They are used to delay the data valid window, and align the window to 36c66ec88fSEmmanuel Vadot # sampling clock. The delay starts from 5ns (for delay parameter equal to 0) 37c66ec88fSEmmanuel Vadot # and it is increased by 2.5ns in each step. 38c66ec88fSEmmanuel Vadot 39c66ec88fSEmmanuel Vadot cdns,phy-input-delay-sd-highspeed: 40c66ec88fSEmmanuel Vadot description: Value of the delay in the input path for SD high-speed timing 41cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 42c66ec88fSEmmanuel Vadot minimum: 0 43c66ec88fSEmmanuel Vadot maximum: 0x1f 44c66ec88fSEmmanuel Vadot 45c66ec88fSEmmanuel Vadot cdns,phy-input-delay-legacy: 46c66ec88fSEmmanuel Vadot description: Value of the delay in the input path for legacy timing 47cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 48c66ec88fSEmmanuel Vadot minimum: 0 49c66ec88fSEmmanuel Vadot maximum: 0x1f 50c66ec88fSEmmanuel Vadot 51c66ec88fSEmmanuel Vadot cdns,phy-input-delay-sd-uhs-sdr12: 52c66ec88fSEmmanuel Vadot description: Value of the delay in the input path for SD UHS SDR12 timing 53cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 54c66ec88fSEmmanuel Vadot minimum: 0 55c66ec88fSEmmanuel Vadot maximum: 0x1f 56c66ec88fSEmmanuel Vadot 57c66ec88fSEmmanuel Vadot cdns,phy-input-delay-sd-uhs-sdr25: 58c66ec88fSEmmanuel Vadot description: Value of the delay in the input path for SD UHS SDR25 timing 59cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 60c66ec88fSEmmanuel Vadot minimum: 0 61c66ec88fSEmmanuel Vadot maximum: 0x1f 62c66ec88fSEmmanuel Vadot 63c66ec88fSEmmanuel Vadot cdns,phy-input-delay-sd-uhs-sdr50: 64c66ec88fSEmmanuel Vadot description: Value of the delay in the input path for SD UHS SDR50 timing 65cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 66c66ec88fSEmmanuel Vadot minimum: 0 67c66ec88fSEmmanuel Vadot maximum: 0x1f 68c66ec88fSEmmanuel Vadot 69c66ec88fSEmmanuel Vadot cdns,phy-input-delay-sd-uhs-ddr50: 70c66ec88fSEmmanuel Vadot description: Value of the delay in the input path for SD UHS DDR50 timing 71cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 72c66ec88fSEmmanuel Vadot minimum: 0 73c66ec88fSEmmanuel Vadot maximum: 0x1f 74c66ec88fSEmmanuel Vadot 75c66ec88fSEmmanuel Vadot cdns,phy-input-delay-mmc-highspeed: 76c66ec88fSEmmanuel Vadot description: Value of the delay in the input path for MMC high-speed timing 77cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 78c66ec88fSEmmanuel Vadot minimum: 0 79c66ec88fSEmmanuel Vadot maximum: 0x1f 80c66ec88fSEmmanuel Vadot 81c66ec88fSEmmanuel Vadot cdns,phy-input-delay-mmc-ddr: 82c66ec88fSEmmanuel Vadot description: Value of the delay in the input path for eMMC high-speed DDR timing 83c66ec88fSEmmanuel Vadot 84c66ec88fSEmmanuel Vadot # PHY DLL clock delays: 85c66ec88fSEmmanuel Vadot # Each delay property represents the fraction of the clock period. 86c66ec88fSEmmanuel Vadot # The approximate delay value will be 87c66ec88fSEmmanuel Vadot # (<delay property value>/128)*sdmclk_clock_period. 88cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 89c66ec88fSEmmanuel Vadot minimum: 0 90c66ec88fSEmmanuel Vadot maximum: 0x1f 91c66ec88fSEmmanuel Vadot 92c66ec88fSEmmanuel Vadot cdns,phy-dll-delay-sdclk: 93c66ec88fSEmmanuel Vadot description: | 94c66ec88fSEmmanuel Vadot Value of the delay introduced on the sdclk output for all modes except 95c66ec88fSEmmanuel Vadot HS200, HS400 and HS400_ES. 96cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 97c66ec88fSEmmanuel Vadot minimum: 0 98c66ec88fSEmmanuel Vadot maximum: 0x7f 99c66ec88fSEmmanuel Vadot 100c66ec88fSEmmanuel Vadot cdns,phy-dll-delay-sdclk-hsmmc: 101c66ec88fSEmmanuel Vadot description: | 102c66ec88fSEmmanuel Vadot Value of the delay introduced on the sdclk output for HS200, HS400 and 103c66ec88fSEmmanuel Vadot HS400_ES speed modes. 104cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 105c66ec88fSEmmanuel Vadot minimum: 0 106c66ec88fSEmmanuel Vadot maximum: 0x7f 107c66ec88fSEmmanuel Vadot 108c66ec88fSEmmanuel Vadot cdns,phy-dll-delay-strobe: 109c66ec88fSEmmanuel Vadot description: | 110c66ec88fSEmmanuel Vadot Value of the delay introduced on the dat_strobe input used in 111c66ec88fSEmmanuel Vadot HS400 / HS400_ES speed modes. 112cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 113c66ec88fSEmmanuel Vadot minimum: 0 114c66ec88fSEmmanuel Vadot maximum: 0x7f 115c66ec88fSEmmanuel Vadot 116c66ec88fSEmmanuel Vadotrequired: 117c66ec88fSEmmanuel Vadot - compatible 118c66ec88fSEmmanuel Vadot - reg 119c66ec88fSEmmanuel Vadot - interrupts 120c66ec88fSEmmanuel Vadot - clocks 121c66ec88fSEmmanuel Vadot 122*fac71e4eSEmmanuel VadotallOf: 123*fac71e4eSEmmanuel Vadot - $ref: mmc-controller.yaml 124*fac71e4eSEmmanuel Vadot - if: 125*fac71e4eSEmmanuel Vadot properties: 126*fac71e4eSEmmanuel Vadot compatible: 127*fac71e4eSEmmanuel Vadot contains: 128*fac71e4eSEmmanuel Vadot const: amd,pensando-elba-sd4hc 129*fac71e4eSEmmanuel Vadot then: 130*fac71e4eSEmmanuel Vadot properties: 131*fac71e4eSEmmanuel Vadot reg: 132*fac71e4eSEmmanuel Vadot items: 133*fac71e4eSEmmanuel Vadot - description: Host controller registers 134*fac71e4eSEmmanuel Vadot - description: Elba byte-lane enable register for writes 135*fac71e4eSEmmanuel Vadot required: 136*fac71e4eSEmmanuel Vadot - resets 137*fac71e4eSEmmanuel Vadot else: 138*fac71e4eSEmmanuel Vadot properties: 139*fac71e4eSEmmanuel Vadot reg: 140*fac71e4eSEmmanuel Vadot maxItems: 1 141*fac71e4eSEmmanuel Vadot 1426be33864SEmmanuel VadotunevaluatedProperties: false 1436be33864SEmmanuel Vadot 144c66ec88fSEmmanuel Vadotexamples: 145c66ec88fSEmmanuel Vadot - | 146c66ec88fSEmmanuel Vadot emmc: mmc@5a000000 { 147c66ec88fSEmmanuel Vadot compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc"; 148c66ec88fSEmmanuel Vadot reg = <0x5a000000 0x400>; 149c66ec88fSEmmanuel Vadot interrupts = <0 78 4>; 150c66ec88fSEmmanuel Vadot clocks = <&clk 4>; 151c66ec88fSEmmanuel Vadot bus-width = <8>; 152c66ec88fSEmmanuel Vadot mmc-ddr-1_8v; 153c66ec88fSEmmanuel Vadot mmc-hs200-1_8v; 154c66ec88fSEmmanuel Vadot mmc-hs400-1_8v; 155c66ec88fSEmmanuel Vadot cdns,phy-dll-delay-sdclk = <0>; 156c66ec88fSEmmanuel Vadot }; 157