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