1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/mmc/samsung,exynos-dw-mshc.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: 8 Samsung Exynos SoC specific extensions to the Synopsys Designware Mobile 9 Storage Host Controller 10 11maintainers: 12 - Jaehoon Chung <jh80.chung@samsung.com> 13 - Krzysztof Kozlowski <krzk@kernel.org> 14 15properties: 16 compatible: 17 enum: 18 - samsung,exynos4210-dw-mshc 19 - samsung,exynos4412-dw-mshc 20 - samsung,exynos5250-dw-mshc 21 - samsung,exynos5420-dw-mshc 22 - samsung,exynos5420-dw-mshc-smu 23 - samsung,exynos7-dw-mshc 24 - samsung,exynos7-dw-mshc-smu 25 - axis,artpec8-dw-mshc 26 27 reg: 28 maxItems: 1 29 30 interrupts: 31 maxItems: 1 32 33 clocks: 34 maxItems: 2 35 description: 36 Handle to "biu" and "ciu" clocks for the 37 bus interface unit clock and the card interface unit clock. 38 39 clock-names: 40 items: 41 - const: biu 42 - const: ciu 43 44 samsung,dw-mshc-ciu-div: 45 $ref: /schemas/types.yaml#/definitions/uint32 46 minimum: 0 47 maximum: 7 48 description: 49 The divider value for the card interface unit (ciu) clock. 50 51 samsung,dw-mshc-ddr-timing: 52 $ref: /schemas/types.yaml#/definitions/uint32-array 53 items: 54 - description: CIU clock phase shift value for tx mode 55 minimum: 0 56 maximum: 7 57 - description: CIU clock phase shift value for rx mode 58 minimum: 0 59 maximum: 7 60 description: 61 The value of CUI clock phase shift value in transmit mode and CIU clock 62 phase shift value in receive mode for double data rate mode operation. 63 See also samsung,dw-mshc-hs400-timing property. 64 65 samsung,dw-mshc-hs400-timing: 66 $ref: /schemas/types.yaml#/definitions/uint32-array 67 items: 68 - description: CIU clock phase shift value for tx mode 69 minimum: 0 70 maximum: 7 71 - description: CIU clock phase shift value for rx mode 72 minimum: 0 73 maximum: 7 74 description: | 75 The value of CIU TX and RX clock phase shift value for HS400 mode 76 operation. 77 Valid values for SDR and DDR CIU clock timing:: 78 - valid value for tx phase shift and rx phase shift is 0 to 7. 79 - when CIU clock divider value is set to 3, all possible 8 phase shift 80 values can be used. 81 - if CIU clock divider value is 0 (that is divide by 1), both tx and rx 82 phase shift clocks should be 0. 83 If missing, values from samsung,dw-mshc-ddr-timing property are used. 84 85 samsung,dw-mshc-sdr-timing: 86 $ref: /schemas/types.yaml#/definitions/uint32-array 87 items: 88 - description: CIU clock phase shift value for tx mode 89 minimum: 0 90 maximum: 7 91 - description: CIU clock phase shift value for rx mode 92 minimum: 0 93 maximum: 7 94 description: 95 The value of CIU clock phase shift value in transmit mode and CIU clock 96 phase shift value in receive mode for single data rate mode operation. 97 See also samsung,dw-mshc-hs400-timing property. 98 99 samsung,read-strobe-delay: 100 $ref: /schemas/types.yaml#/definitions/uint32 101 description: 102 RCLK (Data strobe) delay to control HS400 mode (Latency value for delay 103 line in Read path). If missing, default from hardware is used. 104 105required: 106 - compatible 107 - reg 108 - interrupts 109 - clocks 110 - clock-names 111 - samsung,dw-mshc-ddr-timing 112 - samsung,dw-mshc-sdr-timing 113 114allOf: 115 - $ref: "synopsys-dw-mshc-common.yaml#" 116 - if: 117 properties: 118 compatible: 119 contains: 120 enum: 121 - samsung,exynos5250-dw-mshc 122 - samsung,exynos5420-dw-mshc 123 - samsung,exynos7-dw-mshc 124 - samsung,exynos7-dw-mshc-smu 125 - axis,artpec8-dw-mshc 126 then: 127 required: 128 - samsung,dw-mshc-ciu-div 129 130unevaluatedProperties: false 131 132examples: 133 - | 134 #include <dt-bindings/clock/exynos5420.h> 135 #include <dt-bindings/interrupt-controller/arm-gic.h> 136 137 mmc@12220000 { 138 compatible = "samsung,exynos5420-dw-mshc"; 139 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 140 #address-cells = <1>; 141 #size-cells = <0>; 142 reg = <0x12220000 0x1000>; 143 clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>; 144 clock-names = "biu", "ciu"; 145 fifo-depth = <0x40>; 146 card-detect-delay = <200>; 147 samsung,dw-mshc-ciu-div = <3>; 148 samsung,dw-mshc-sdr-timing = <0 4>; 149 samsung,dw-mshc-ddr-timing = <0 2>; 150 pinctrl-names = "default"; 151 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_wp &sd2_bus1 &sd2_bus4>; 152 bus-width = <4>; 153 cap-sd-highspeed; 154 max-frequency = <200000000>; 155 vmmc-supply = <&ldo19_reg>; 156 vqmmc-supply = <&ldo13_reg>; 157 sd-uhs-sdr50; 158 sd-uhs-sdr104; 159 sd-uhs-ddr50; 160 }; 161