1354c6d33SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2354c6d33SKrzysztof Kozlowski%YAML 1.2
3354c6d33SKrzysztof Kozlowski---
4354c6d33SKrzysztof Kozlowski$id: http://devicetree.org/schemas/mmc/samsung,exynos-dw-mshc.yaml#
5354c6d33SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6354c6d33SKrzysztof Kozlowski
7354c6d33SKrzysztof Kozlowskititle:
8354c6d33SKrzysztof Kozlowski  Samsung Exynos SoC specific extensions to the Synopsys Designware Mobile
9354c6d33SKrzysztof Kozlowski  Storage Host Controller
10354c6d33SKrzysztof Kozlowski
11354c6d33SKrzysztof Kozlowskimaintainers:
12354c6d33SKrzysztof Kozlowski  - Jaehoon Chung <jh80.chung@samsung.com>
13354c6d33SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzk@kernel.org>
14354c6d33SKrzysztof Kozlowski
15354c6d33SKrzysztof Kozlowskiproperties:
16354c6d33SKrzysztof Kozlowski  compatible:
17354c6d33SKrzysztof Kozlowski    enum:
18354c6d33SKrzysztof Kozlowski      - samsung,exynos4210-dw-mshc
19354c6d33SKrzysztof Kozlowski      - samsung,exynos4412-dw-mshc
20354c6d33SKrzysztof Kozlowski      - samsung,exynos5250-dw-mshc
21354c6d33SKrzysztof Kozlowski      - samsung,exynos5420-dw-mshc
22ca812a4eSKrzysztof Kozlowski      - samsung,exynos5420-dw-mshc-smu
23354c6d33SKrzysztof Kozlowski      - samsung,exynos7-dw-mshc
24354c6d33SKrzysztof Kozlowski      - samsung,exynos7-dw-mshc-smu
25354c6d33SKrzysztof Kozlowski      - axis,artpec8-dw-mshc
26354c6d33SKrzysztof Kozlowski
27354c6d33SKrzysztof Kozlowski  reg:
28354c6d33SKrzysztof Kozlowski    maxItems: 1
29354c6d33SKrzysztof Kozlowski
30354c6d33SKrzysztof Kozlowski  interrupts:
31354c6d33SKrzysztof Kozlowski    maxItems: 1
32354c6d33SKrzysztof Kozlowski
33354c6d33SKrzysztof Kozlowski  clocks:
34354c6d33SKrzysztof Kozlowski    maxItems: 2
35354c6d33SKrzysztof Kozlowski    description:
36354c6d33SKrzysztof Kozlowski      Handle to "biu" and "ciu" clocks for the
37354c6d33SKrzysztof Kozlowski      bus interface unit clock and the card interface unit clock.
38354c6d33SKrzysztof Kozlowski
39354c6d33SKrzysztof Kozlowski  clock-names:
40354c6d33SKrzysztof Kozlowski    items:
41354c6d33SKrzysztof Kozlowski      - const: biu
42354c6d33SKrzysztof Kozlowski      - const: ciu
43354c6d33SKrzysztof Kozlowski
44354c6d33SKrzysztof Kozlowski  samsung,dw-mshc-ciu-div:
45354c6d33SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
46354c6d33SKrzysztof Kozlowski    minimum: 0
47354c6d33SKrzysztof Kozlowski    maximum: 7
48354c6d33SKrzysztof Kozlowski    description:
49354c6d33SKrzysztof Kozlowski      The divider value for the card interface unit (ciu) clock.
50354c6d33SKrzysztof Kozlowski
51354c6d33SKrzysztof Kozlowski  samsung,dw-mshc-ddr-timing:
52354c6d33SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32-array
53354c6d33SKrzysztof Kozlowski    items:
54354c6d33SKrzysztof Kozlowski      - description: CIU clock phase shift value for tx mode
55354c6d33SKrzysztof Kozlowski        minimum: 0
56354c6d33SKrzysztof Kozlowski        maximum: 7
57354c6d33SKrzysztof Kozlowski      - description: CIU clock phase shift value for rx mode
58354c6d33SKrzysztof Kozlowski        minimum: 0
59354c6d33SKrzysztof Kozlowski        maximum: 7
60354c6d33SKrzysztof Kozlowski    description:
61354c6d33SKrzysztof Kozlowski      The value of CUI clock phase shift value in transmit mode and CIU clock
62354c6d33SKrzysztof Kozlowski      phase shift value in receive mode for double data rate mode operation.
63354c6d33SKrzysztof Kozlowski      See also samsung,dw-mshc-hs400-timing property.
64354c6d33SKrzysztof Kozlowski
65354c6d33SKrzysztof Kozlowski  samsung,dw-mshc-hs400-timing:
66354c6d33SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32-array
67354c6d33SKrzysztof Kozlowski    items:
68354c6d33SKrzysztof Kozlowski      - description: CIU clock phase shift value for tx mode
69354c6d33SKrzysztof Kozlowski        minimum: 0
70354c6d33SKrzysztof Kozlowski        maximum: 7
71354c6d33SKrzysztof Kozlowski      - description: CIU clock phase shift value for rx mode
72354c6d33SKrzysztof Kozlowski        minimum: 0
73354c6d33SKrzysztof Kozlowski        maximum: 7
74354c6d33SKrzysztof Kozlowski    description: |
75354c6d33SKrzysztof Kozlowski      The value of CIU TX and RX clock phase shift value for HS400 mode
76354c6d33SKrzysztof Kozlowski      operation.
77354c6d33SKrzysztof Kozlowski      Valid values for SDR and DDR CIU clock timing::
78354c6d33SKrzysztof Kozlowski        - valid value for tx phase shift and rx phase shift is 0 to 7.
79354c6d33SKrzysztof Kozlowski        - when CIU clock divider value is set to 3, all possible 8 phase shift
80354c6d33SKrzysztof Kozlowski          values can be used.
81354c6d33SKrzysztof Kozlowski        - if CIU clock divider value is 0 (that is divide by 1), both tx and rx
82354c6d33SKrzysztof Kozlowski          phase shift clocks should be 0.
83354c6d33SKrzysztof Kozlowski      If missing, values from samsung,dw-mshc-ddr-timing property are used.
84354c6d33SKrzysztof Kozlowski
85354c6d33SKrzysztof Kozlowski  samsung,dw-mshc-sdr-timing:
86354c6d33SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32-array
87354c6d33SKrzysztof Kozlowski    items:
88354c6d33SKrzysztof Kozlowski      - description: CIU clock phase shift value for tx mode
89354c6d33SKrzysztof Kozlowski        minimum: 0
90354c6d33SKrzysztof Kozlowski        maximum: 7
91354c6d33SKrzysztof Kozlowski      - description: CIU clock phase shift value for rx mode
92354c6d33SKrzysztof Kozlowski        minimum: 0
93354c6d33SKrzysztof Kozlowski        maximum: 7
94354c6d33SKrzysztof Kozlowski    description:
95354c6d33SKrzysztof Kozlowski      The value of CIU clock phase shift value in transmit mode and CIU clock
96354c6d33SKrzysztof Kozlowski      phase shift value in receive mode for single data rate mode operation.
97354c6d33SKrzysztof Kozlowski      See also samsung,dw-mshc-hs400-timing property.
98354c6d33SKrzysztof Kozlowski
99354c6d33SKrzysztof Kozlowski  samsung,read-strobe-delay:
100354c6d33SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
101354c6d33SKrzysztof Kozlowski    description:
102354c6d33SKrzysztof Kozlowski      RCLK (Data strobe) delay to control HS400 mode (Latency value for delay
103354c6d33SKrzysztof Kozlowski      line in Read path). If missing, default from hardware is used.
104354c6d33SKrzysztof Kozlowski
105354c6d33SKrzysztof Kozlowskirequired:
106354c6d33SKrzysztof Kozlowski  - compatible
107354c6d33SKrzysztof Kozlowski  - reg
108354c6d33SKrzysztof Kozlowski  - interrupts
109354c6d33SKrzysztof Kozlowski  - clocks
110354c6d33SKrzysztof Kozlowski  - clock-names
111354c6d33SKrzysztof Kozlowski  - samsung,dw-mshc-ddr-timing
112354c6d33SKrzysztof Kozlowski  - samsung,dw-mshc-sdr-timing
113354c6d33SKrzysztof Kozlowski
114354c6d33SKrzysztof KozlowskiallOf:
115*1e52a7e6SKrzysztof Kozlowski  - $ref: synopsys-dw-mshc-common.yaml#
116354c6d33SKrzysztof Kozlowski  - if:
117354c6d33SKrzysztof Kozlowski      properties:
118354c6d33SKrzysztof Kozlowski        compatible:
119354c6d33SKrzysztof Kozlowski          contains:
120354c6d33SKrzysztof Kozlowski            enum:
121354c6d33SKrzysztof Kozlowski              - samsung,exynos5250-dw-mshc
122354c6d33SKrzysztof Kozlowski              - samsung,exynos5420-dw-mshc
123354c6d33SKrzysztof Kozlowski              - samsung,exynos7-dw-mshc
124354c6d33SKrzysztof Kozlowski              - samsung,exynos7-dw-mshc-smu
125354c6d33SKrzysztof Kozlowski              - axis,artpec8-dw-mshc
126354c6d33SKrzysztof Kozlowski    then:
127354c6d33SKrzysztof Kozlowski      required:
128354c6d33SKrzysztof Kozlowski        - samsung,dw-mshc-ciu-div
129354c6d33SKrzysztof Kozlowski
130354c6d33SKrzysztof KozlowskiunevaluatedProperties: false
131354c6d33SKrzysztof Kozlowski
132354c6d33SKrzysztof Kozlowskiexamples:
133354c6d33SKrzysztof Kozlowski  - |
134354c6d33SKrzysztof Kozlowski    #include <dt-bindings/clock/exynos5420.h>
135354c6d33SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
136354c6d33SKrzysztof Kozlowski
137354c6d33SKrzysztof Kozlowski    mmc@12220000 {
138354c6d33SKrzysztof Kozlowski        compatible = "samsung,exynos5420-dw-mshc";
139354c6d33SKrzysztof Kozlowski        interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
140354c6d33SKrzysztof Kozlowski        #address-cells = <1>;
141354c6d33SKrzysztof Kozlowski        #size-cells = <0>;
142354c6d33SKrzysztof Kozlowski        reg = <0x12220000 0x1000>;
143354c6d33SKrzysztof Kozlowski        clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>;
144354c6d33SKrzysztof Kozlowski        clock-names = "biu", "ciu";
145354c6d33SKrzysztof Kozlowski        fifo-depth = <0x40>;
146354c6d33SKrzysztof Kozlowski        card-detect-delay = <200>;
147354c6d33SKrzysztof Kozlowski        samsung,dw-mshc-ciu-div = <3>;
148354c6d33SKrzysztof Kozlowski        samsung,dw-mshc-sdr-timing = <0 4>;
149354c6d33SKrzysztof Kozlowski        samsung,dw-mshc-ddr-timing = <0 2>;
150354c6d33SKrzysztof Kozlowski        pinctrl-names = "default";
151354c6d33SKrzysztof Kozlowski        pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_wp &sd2_bus1 &sd2_bus4>;
152354c6d33SKrzysztof Kozlowski        bus-width = <4>;
153354c6d33SKrzysztof Kozlowski        cap-sd-highspeed;
154354c6d33SKrzysztof Kozlowski        max-frequency = <200000000>;
155354c6d33SKrzysztof Kozlowski        vmmc-supply = <&ldo19_reg>;
156354c6d33SKrzysztof Kozlowski        vqmmc-supply = <&ldo13_reg>;
157354c6d33SKrzysztof Kozlowski        sd-uhs-sdr50;
158354c6d33SKrzysztof Kozlowski        sd-uhs-sdr104;
159354c6d33SKrzysztof Kozlowski        sd-uhs-ddr50;
160354c6d33SKrzysztof Kozlowski    };
161