xref: /freebsd/sys/contrib/device-tree/Bindings/mmc/cdns,sdhci.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mmc/cdns,sdhci.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Cadence SD/SDIO/eMMC Host Controller (SD4HC)
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Masahiro Yamada <yamada.masahiro@socionext.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotproperties:
13c66ec88fSEmmanuel Vadot  compatible:
14c66ec88fSEmmanuel Vadot    items:
15c66ec88fSEmmanuel Vadot      - enum:
16*fac71e4eSEmmanuel Vadot          - amd,pensando-elba-sd4hc
178cc087a1SEmmanuel Vadot          - microchip,mpfs-sd4hc
18c66ec88fSEmmanuel Vadot          - socionext,uniphier-sd4hc
19c66ec88fSEmmanuel Vadot      - const: cdns,sd4hc
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot  reg:
22*fac71e4eSEmmanuel Vadot    minItems: 1
23*fac71e4eSEmmanuel Vadot    maxItems: 2
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot  interrupts:
26c66ec88fSEmmanuel Vadot    maxItems: 1
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  clocks:
29c66ec88fSEmmanuel Vadot    maxItems: 1
30c66ec88fSEmmanuel Vadot
31cb7aa33aSEmmanuel Vadot  resets:
32cb7aa33aSEmmanuel Vadot    maxItems: 1
33cb7aa33aSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot  # PHY DLL input delays:
35c66ec88fSEmmanuel Vadot  # They are used to delay the data valid window, and align the window to
36c66ec88fSEmmanuel Vadot  # sampling clock. The delay starts from 5ns (for delay parameter equal to 0)
37c66ec88fSEmmanuel Vadot  # and it is increased by 2.5ns in each step.
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  cdns,phy-input-delay-sd-highspeed:
40c66ec88fSEmmanuel Vadot    description: Value of the delay in the input path for SD high-speed timing
41cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
42c66ec88fSEmmanuel Vadot    minimum: 0
43c66ec88fSEmmanuel Vadot    maximum: 0x1f
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot  cdns,phy-input-delay-legacy:
46c66ec88fSEmmanuel Vadot    description: Value of the delay in the input path for legacy timing
47cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
48c66ec88fSEmmanuel Vadot    minimum: 0
49c66ec88fSEmmanuel Vadot    maximum: 0x1f
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadot  cdns,phy-input-delay-sd-uhs-sdr12:
52c66ec88fSEmmanuel Vadot    description: Value of the delay in the input path for SD UHS SDR12 timing
53cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
54c66ec88fSEmmanuel Vadot    minimum: 0
55c66ec88fSEmmanuel Vadot    maximum: 0x1f
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot  cdns,phy-input-delay-sd-uhs-sdr25:
58c66ec88fSEmmanuel Vadot    description: Value of the delay in the input path for SD UHS SDR25 timing
59cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
60c66ec88fSEmmanuel Vadot    minimum: 0
61c66ec88fSEmmanuel Vadot    maximum: 0x1f
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel Vadot  cdns,phy-input-delay-sd-uhs-sdr50:
64c66ec88fSEmmanuel Vadot    description: Value of the delay in the input path for SD UHS SDR50 timing
65cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
66c66ec88fSEmmanuel Vadot    minimum: 0
67c66ec88fSEmmanuel Vadot    maximum: 0x1f
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot  cdns,phy-input-delay-sd-uhs-ddr50:
70c66ec88fSEmmanuel Vadot    description: Value of the delay in the input path for SD UHS DDR50 timing
71cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
72c66ec88fSEmmanuel Vadot    minimum: 0
73c66ec88fSEmmanuel Vadot    maximum: 0x1f
74c66ec88fSEmmanuel Vadot
75c66ec88fSEmmanuel Vadot  cdns,phy-input-delay-mmc-highspeed:
76c66ec88fSEmmanuel Vadot    description: Value of the delay in the input path for MMC high-speed timing
77cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
78c66ec88fSEmmanuel Vadot    minimum: 0
79c66ec88fSEmmanuel Vadot    maximum: 0x1f
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot  cdns,phy-input-delay-mmc-ddr:
82c66ec88fSEmmanuel Vadot    description: Value of the delay in the input path for eMMC high-speed DDR timing
83c66ec88fSEmmanuel Vadot
84c66ec88fSEmmanuel Vadot  # PHY DLL clock delays:
85c66ec88fSEmmanuel Vadot  # Each delay property represents the fraction of the clock period.
86c66ec88fSEmmanuel Vadot  # The approximate delay value will be
87c66ec88fSEmmanuel Vadot  # (<delay property value>/128)*sdmclk_clock_period.
88cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
89c66ec88fSEmmanuel Vadot    minimum: 0
90c66ec88fSEmmanuel Vadot    maximum: 0x1f
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadot  cdns,phy-dll-delay-sdclk:
93c66ec88fSEmmanuel Vadot    description: |
94c66ec88fSEmmanuel Vadot      Value of the delay introduced on the sdclk output for all modes except
95c66ec88fSEmmanuel Vadot      HS200, HS400 and HS400_ES.
96cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
97c66ec88fSEmmanuel Vadot    minimum: 0
98c66ec88fSEmmanuel Vadot    maximum: 0x7f
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot  cdns,phy-dll-delay-sdclk-hsmmc:
101c66ec88fSEmmanuel Vadot    description: |
102c66ec88fSEmmanuel Vadot      Value of the delay introduced on the sdclk output for HS200, HS400 and
103c66ec88fSEmmanuel Vadot      HS400_ES speed modes.
104cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
105c66ec88fSEmmanuel Vadot    minimum: 0
106c66ec88fSEmmanuel Vadot    maximum: 0x7f
107c66ec88fSEmmanuel Vadot
108c66ec88fSEmmanuel Vadot  cdns,phy-dll-delay-strobe:
109c66ec88fSEmmanuel Vadot    description: |
110c66ec88fSEmmanuel Vadot      Value of the delay introduced on the dat_strobe input used in
111c66ec88fSEmmanuel Vadot      HS400 / HS400_ES speed modes.
112cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
113c66ec88fSEmmanuel Vadot    minimum: 0
114c66ec88fSEmmanuel Vadot    maximum: 0x7f
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel Vadotrequired:
117c66ec88fSEmmanuel Vadot  - compatible
118c66ec88fSEmmanuel Vadot  - reg
119c66ec88fSEmmanuel Vadot  - interrupts
120c66ec88fSEmmanuel Vadot  - clocks
121c66ec88fSEmmanuel Vadot
122*fac71e4eSEmmanuel VadotallOf:
123*fac71e4eSEmmanuel Vadot  - $ref: mmc-controller.yaml
124*fac71e4eSEmmanuel Vadot  - if:
125*fac71e4eSEmmanuel Vadot      properties:
126*fac71e4eSEmmanuel Vadot        compatible:
127*fac71e4eSEmmanuel Vadot          contains:
128*fac71e4eSEmmanuel Vadot            const: amd,pensando-elba-sd4hc
129*fac71e4eSEmmanuel Vadot    then:
130*fac71e4eSEmmanuel Vadot      properties:
131*fac71e4eSEmmanuel Vadot        reg:
132*fac71e4eSEmmanuel Vadot          items:
133*fac71e4eSEmmanuel Vadot            - description: Host controller registers
134*fac71e4eSEmmanuel Vadot            - description: Elba byte-lane enable register for writes
135*fac71e4eSEmmanuel Vadot      required:
136*fac71e4eSEmmanuel Vadot        - resets
137*fac71e4eSEmmanuel Vadot    else:
138*fac71e4eSEmmanuel Vadot      properties:
139*fac71e4eSEmmanuel Vadot        reg:
140*fac71e4eSEmmanuel Vadot          maxItems: 1
141*fac71e4eSEmmanuel Vadot
1426be33864SEmmanuel VadotunevaluatedProperties: false
1436be33864SEmmanuel Vadot
144c66ec88fSEmmanuel Vadotexamples:
145c66ec88fSEmmanuel Vadot  - |
146c66ec88fSEmmanuel Vadot    emmc: mmc@5a000000 {
147c66ec88fSEmmanuel Vadot        compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
148c66ec88fSEmmanuel Vadot        reg = <0x5a000000 0x400>;
149c66ec88fSEmmanuel Vadot        interrupts = <0 78 4>;
150c66ec88fSEmmanuel Vadot        clocks = <&clk 4>;
151c66ec88fSEmmanuel Vadot        bus-width = <8>;
152c66ec88fSEmmanuel Vadot        mmc-ddr-1_8v;
153c66ec88fSEmmanuel Vadot        mmc-hs200-1_8v;
154c66ec88fSEmmanuel Vadot        mmc-hs400-1_8v;
155c66ec88fSEmmanuel Vadot        cdns,phy-dll-delay-sdclk = <0>;
156c66ec88fSEmmanuel Vadot    };
157