xref: /linux/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml (revision 354c6d33ddfbda5b29063ffff54a965301e2e459)
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