xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mmc/sdhci-am654.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*4882a593Smuzhiyun# Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
3*4882a593Smuzhiyun%YAML 1.2
4*4882a593Smuzhiyun---
5*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/mmc/sdhci-am654.yaml#"
6*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7*4882a593Smuzhiyun
8*4882a593Smuzhiyuntitle: TI AM654 MMC Controller
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunmaintainers:
11*4882a593Smuzhiyun  - Ulf Hansson <ulf.hansson@linaro.org>
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunallOf:
14*4882a593Smuzhiyun  - $ref: mmc-controller.yaml#
15*4882a593Smuzhiyun
16*4882a593Smuzhiyunproperties:
17*4882a593Smuzhiyun  compatible:
18*4882a593Smuzhiyun    enum:
19*4882a593Smuzhiyun      - ti,am654-sdhci-5.1
20*4882a593Smuzhiyun      - ti,j721e-sdhci-8bit
21*4882a593Smuzhiyun      - ti,j721e-sdhci-4bit
22*4882a593Smuzhiyun      - ti,j7200-sdhci-8bit
23*4882a593Smuzhiyun      - ti,j721e-sdhci-4bit
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun  reg:
26*4882a593Smuzhiyun    maxItems: 2
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun  interrupts:
29*4882a593Smuzhiyun    maxItems: 1
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun  power-domains:
32*4882a593Smuzhiyun    maxItems: 1
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun  clocks:
35*4882a593Smuzhiyun    minItems: 1
36*4882a593Smuzhiyun    maxItems: 2
37*4882a593Smuzhiyun    description: Handles to input clocks
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun  clock-names:
40*4882a593Smuzhiyun    minItems: 1
41*4882a593Smuzhiyun    maxItems: 2
42*4882a593Smuzhiyun    items:
43*4882a593Smuzhiyun      - const: clk_ahb
44*4882a593Smuzhiyun      - const: clk_xin
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun  # PHY output tap delays:
47*4882a593Smuzhiyun  # Used to delay the data valid window and align it to the sampling clock.
48*4882a593Smuzhiyun  # Binding needs to be provided for each supported speed mode otherwise the
49*4882a593Smuzhiyun  # corresponding mode will be disabled.
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun  ti,otap-del-sel-legacy:
52*4882a593Smuzhiyun    description: Output tap delay for SD/MMC legacy timing
53*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
54*4882a593Smuzhiyun    minimum: 0
55*4882a593Smuzhiyun    maximum: 0xf
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun  ti,otap-del-sel-mmc-hs:
58*4882a593Smuzhiyun    description: Output tap delay for MMC high speed timing
59*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
60*4882a593Smuzhiyun    minimum: 0
61*4882a593Smuzhiyun    maximum: 0xf
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun  ti,otap-del-sel-sd-hs:
64*4882a593Smuzhiyun    description: Output tap delay for SD high speed timing
65*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
66*4882a593Smuzhiyun    minimum: 0
67*4882a593Smuzhiyun    maximum: 0xf
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun  ti,otap-del-sel-sdr12:
70*4882a593Smuzhiyun    description: Output tap delay for SD UHS SDR12 timing
71*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
72*4882a593Smuzhiyun    minimum: 0
73*4882a593Smuzhiyun    maximum: 0xf
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun  ti,otap-del-sel-sdr25:
76*4882a593Smuzhiyun    description: Output tap delay for SD UHS SDR25 timing
77*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
78*4882a593Smuzhiyun    minimum: 0
79*4882a593Smuzhiyun    maximum: 0xf
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun  ti,otap-del-sel-sdr50:
82*4882a593Smuzhiyun    description: Output tap delay for SD UHS SDR50 timing
83*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
84*4882a593Smuzhiyun    minimum: 0
85*4882a593Smuzhiyun    maximum: 0xf
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun  ti,otap-del-sel-sdr104:
88*4882a593Smuzhiyun    description: Output tap delay for SD UHS SDR104 timing
89*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
90*4882a593Smuzhiyun    minimum: 0
91*4882a593Smuzhiyun    maximum: 0xf
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun  ti,otap-del-sel-ddr50:
94*4882a593Smuzhiyun    description: Output tap delay for SD UHS DDR50 timing
95*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
96*4882a593Smuzhiyun    minimum: 0
97*4882a593Smuzhiyun    maximum: 0xf
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun  ti,otap-del-sel-ddr52:
100*4882a593Smuzhiyun    description: Output tap delay for eMMC DDR52 timing
101*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
102*4882a593Smuzhiyun    minimum: 0
103*4882a593Smuzhiyun    maximum: 0xf
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun  ti,otap-del-sel-hs200:
106*4882a593Smuzhiyun    description: Output tap delay for eMMC HS200 timing
107*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
108*4882a593Smuzhiyun    minimum: 0
109*4882a593Smuzhiyun    maximum: 0xf
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun  ti,otap-del-sel-hs400:
112*4882a593Smuzhiyun    description: Output tap delay for eMMC HS400 timing
113*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
114*4882a593Smuzhiyun    minimum: 0
115*4882a593Smuzhiyun    maximum: 0xf
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun  # PHY input tap delays:
118*4882a593Smuzhiyun  # Used to delay the data valid window and align it to the sampling clock for
119*4882a593Smuzhiyun  # modes that don't support tuning
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun  ti,itap-del-sel-legacy:
122*4882a593Smuzhiyun    description: Input tap delay for SD/MMC legacy timing
123*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
124*4882a593Smuzhiyun    minimum: 0
125*4882a593Smuzhiyun    maximum: 0x1f
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun  ti,itap-del-sel-mmc-hs:
128*4882a593Smuzhiyun    description: Input tap delay for MMC high speed timing
129*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
130*4882a593Smuzhiyun    minimum: 0
131*4882a593Smuzhiyun    maximum: 0x1f
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun  ti,itap-del-sel-sd-hs:
134*4882a593Smuzhiyun    description: Input tap delay for SD high speed timing
135*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
136*4882a593Smuzhiyun    minimum: 0
137*4882a593Smuzhiyun    maximum: 0x1f
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun  ti,itap-del-sel-sdr12:
140*4882a593Smuzhiyun    description: Input tap delay for SD UHS SDR12 timing
141*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
142*4882a593Smuzhiyun    minimum: 0
143*4882a593Smuzhiyun    maximum: 0x1f
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun  ti,itap-del-sel-sdr25:
146*4882a593Smuzhiyun    description: Input tap delay for SD UHS SDR25 timing
147*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
148*4882a593Smuzhiyun    minimum: 0
149*4882a593Smuzhiyun    maximum: 0x1f
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun  ti,itap-del-sel-ddr52:
152*4882a593Smuzhiyun    description: Input tap delay for MMC DDR52 timing
153*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
154*4882a593Smuzhiyun    minimum: 0
155*4882a593Smuzhiyun    maximum: 0x1f
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun  ti,trm-icp:
158*4882a593Smuzhiyun    description: DLL trim select
159*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
160*4882a593Smuzhiyun    minimum: 0
161*4882a593Smuzhiyun    maximum: 0xf
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun  ti,driver-strength-ohm:
164*4882a593Smuzhiyun    description: DLL drive strength in ohms
165*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
166*4882a593Smuzhiyun    enum:
167*4882a593Smuzhiyun      - 33
168*4882a593Smuzhiyun      - 40
169*4882a593Smuzhiyun      - 50
170*4882a593Smuzhiyun      - 66
171*4882a593Smuzhiyun      - 100
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun  ti,strobe-sel:
174*4882a593Smuzhiyun    description: strobe select delay for HS400 speed mode.
175*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun  ti,clkbuf-sel:
178*4882a593Smuzhiyun    description: Clock Delay Buffer Select
179*4882a593Smuzhiyun    $ref: "/schemas/types.yaml#/definitions/uint32"
180*4882a593Smuzhiyun
181*4882a593Smuzhiyunrequired:
182*4882a593Smuzhiyun  - compatible
183*4882a593Smuzhiyun  - reg
184*4882a593Smuzhiyun  - interrupts
185*4882a593Smuzhiyun  - clocks
186*4882a593Smuzhiyun  - clock-names
187*4882a593Smuzhiyun  - ti,otap-del-sel-legacy
188*4882a593Smuzhiyun
189*4882a593SmuzhiyununevaluatedProperties: false
190*4882a593Smuzhiyun
191*4882a593Smuzhiyunexamples:
192*4882a593Smuzhiyun  - |
193*4882a593Smuzhiyun    #include <dt-bindings/interrupt-controller/irq.h>
194*4882a593Smuzhiyun    #include <dt-bindings/interrupt-controller/arm-gic.h>
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun    bus {
197*4882a593Smuzhiyun        #address-cells = <2>;
198*4882a593Smuzhiyun        #size-cells = <2>;
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun        mmc0: mmc@4f80000 {
201*4882a593Smuzhiyun            compatible = "ti,am654-sdhci-5.1";
202*4882a593Smuzhiyun            reg = <0x0 0x4f80000 0x0 0x260>, <0x0 0x4f90000 0x0 0x134>;
203*4882a593Smuzhiyun            power-domains = <&k3_pds 47>;
204*4882a593Smuzhiyun            clocks = <&k3_clks 47 0>, <&k3_clks 47 1>;
205*4882a593Smuzhiyun            clock-names = "clk_ahb", "clk_xin";
206*4882a593Smuzhiyun            interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
207*4882a593Smuzhiyun            sdhci-caps-mask = <0x80000007 0x0>;
208*4882a593Smuzhiyun            mmc-ddr-1_8v;
209*4882a593Smuzhiyun            ti,otap-del-sel-legacy = <0x0>;
210*4882a593Smuzhiyun            ti,otap-del-sel-mmc-hs = <0x0>;
211*4882a593Smuzhiyun            ti,otap-del-sel-ddr52 = <0x5>;
212*4882a593Smuzhiyun            ti,otap-del-sel-hs200 = <0x5>;
213*4882a593Smuzhiyun            ti,otap-del-sel-hs400 = <0x0>;
214*4882a593Smuzhiyun            ti,itap-del-sel-legacy = <0x10>;
215*4882a593Smuzhiyun            ti,itap-del-sel-mmc-hs = <0xa>;
216*4882a593Smuzhiyun            ti,itap-del-sel-ddr52 = <0x3>;
217*4882a593Smuzhiyun            ti,trm-icp = <0x8>;
218*4882a593Smuzhiyun        };
219*4882a593Smuzhiyun    };
220