11eece23dSJohan Jonker# SPDX-License-Identifier: GPL-2.0
21eece23dSJohan Jonker%YAML 1.2
31eece23dSJohan Jonker---
41eece23dSJohan Jonker$id: http://devicetree.org/schemas/mmc/rockchip-dw-mshc.yaml#
51eece23dSJohan Jonker$schema: http://devicetree.org/meta-schemas/core.yaml#
61eece23dSJohan Jonker
71eece23dSJohan Jonkertitle: Rockchip designware mobile storage host controller device tree bindings
81eece23dSJohan Jonker
91eece23dSJohan Jonkerdescription:
101eece23dSJohan Jonker  Rockchip uses the Synopsys designware mobile storage host controller
111eece23dSJohan Jonker  to interface a SoC with storage medium such as eMMC or SD/MMC cards.
121eece23dSJohan Jonker  This file documents the combined properties for the core Synopsys dw mshc
131eece23dSJohan Jonker  controller that are not already included in the synopsys-dw-mshc-common.yaml
141eece23dSJohan Jonker  file and the Rockchip specific extensions.
151eece23dSJohan Jonker
161eece23dSJohan JonkerallOf:
171eece23dSJohan Jonker  - $ref: "synopsys-dw-mshc-common.yaml#"
181eece23dSJohan Jonker
191eece23dSJohan Jonkermaintainers:
201eece23dSJohan Jonker  - Heiko Stuebner <heiko@sntech.de>
211eece23dSJohan Jonker
221eece23dSJohan Jonker# Everything else is described in the common file
231eece23dSJohan Jonkerproperties:
241eece23dSJohan Jonker  compatible:
251eece23dSJohan Jonker    oneOf:
261eece23dSJohan Jonker      # for Rockchip RK2928 and before RK3288
271eece23dSJohan Jonker      - const: rockchip,rk2928-dw-mshc
281eece23dSJohan Jonker      # for Rockchip RK3288
291eece23dSJohan Jonker      - const: rockchip,rk3288-dw-mshc
301eece23dSJohan Jonker      - items:
311eece23dSJohan Jonker          - enum:
321eece23dSJohan Jonker            # for Rockchip PX30
331eece23dSJohan Jonker            - rockchip,px30-dw-mshc
341eece23dSJohan Jonker            # for Rockchip RK3036
351eece23dSJohan Jonker            - rockchip,rk3036-dw-mshc
361eece23dSJohan Jonker            # for Rockchip RK322x
371eece23dSJohan Jonker            - rockchip,rk3228-dw-mshc
381eece23dSJohan Jonker            # for Rockchip RK3328
391eece23dSJohan Jonker            - rockchip,rk3328-dw-mshc
401eece23dSJohan Jonker            # for Rockchip RK3368
411eece23dSJohan Jonker            - rockchip,rk3368-dw-mshc
421eece23dSJohan Jonker            # for Rockchip RK3399
431eece23dSJohan Jonker            - rockchip,rk3399-dw-mshc
441eece23dSJohan Jonker            # for Rockchip RV1108
451eece23dSJohan Jonker            - rockchip,rv1108-dw-mshc
461eece23dSJohan Jonker          - const: rockchip,rk3288-dw-mshc
471eece23dSJohan Jonker
481eece23dSJohan Jonker  reg:
491eece23dSJohan Jonker    maxItems: 1
501eece23dSJohan Jonker
511eece23dSJohan Jonker  interrupts:
521eece23dSJohan Jonker    maxItems: 1
531eece23dSJohan Jonker
541eece23dSJohan Jonker  clocks:
551eece23dSJohan Jonker    minItems: 2
561eece23dSJohan Jonker    maxItems: 4
571eece23dSJohan Jonker    description:
581eece23dSJohan Jonker      Handle to "biu" and "ciu" clocks for the bus interface unit clock and
591eece23dSJohan Jonker      the card interface unit clock. If "ciu-drive" and "ciu-sample" are
601eece23dSJohan Jonker      specified in clock-names, it should also contain
611eece23dSJohan Jonker      handles to these clocks.
621eece23dSJohan Jonker
631eece23dSJohan Jonker  clock-names:
641eece23dSJohan Jonker    minItems: 2
651eece23dSJohan Jonker    items:
661eece23dSJohan Jonker      - const: biu
671eece23dSJohan Jonker      - const: ciu
681eece23dSJohan Jonker      - const: ciu-drive
691eece23dSJohan Jonker      - const: ciu-sample
701eece23dSJohan Jonker    description:
711eece23dSJohan Jonker      Apart from the clock-names "biu" and "ciu" two more clocks
721eece23dSJohan Jonker      "ciu-drive" and "ciu-sample" are supported. They are used
731eece23dSJohan Jonker      to control the clock phases, "ciu-sample" is required for tuning
741eece23dSJohan Jonker      high speed modes.
751eece23dSJohan Jonker
761eece23dSJohan Jonker  rockchip,default-sample-phase:
771eece23dSJohan Jonker    allOf:
781eece23dSJohan Jonker      - $ref: /schemas/types.yaml#/definitions/uint32
791eece23dSJohan Jonker    minimum: 0
801eece23dSJohan Jonker    maximum: 360
811eece23dSJohan Jonker    default: 0
821eece23dSJohan Jonker    description:
831eece23dSJohan Jonker      The default phase to set "ciu-sample" at probing,
841eece23dSJohan Jonker      low speeds or in case where all phases work at tuning time.
851eece23dSJohan Jonker      If not specified 0 deg will be used.
861eece23dSJohan Jonker
871eece23dSJohan Jonker  rockchip,desired-num-phases:
881eece23dSJohan Jonker    allOf:
891eece23dSJohan Jonker      - $ref: /schemas/types.yaml#/definitions/uint32
901eece23dSJohan Jonker    minimum: 0
911eece23dSJohan Jonker    maximum: 360
921eece23dSJohan Jonker    default: 360
931eece23dSJohan Jonker    description:
941eece23dSJohan Jonker      The desired number of times that the host execute tuning when needed.
951eece23dSJohan Jonker      If not specified, the host will do tuning for 360 times,
961eece23dSJohan Jonker      namely tuning for each degree.
971eece23dSJohan Jonker
981eece23dSJohan Jonkerrequired:
991eece23dSJohan Jonker  - compatible
1001eece23dSJohan Jonker  - reg
1011eece23dSJohan Jonker  - interrupts
1021eece23dSJohan Jonker  - clocks
1031eece23dSJohan Jonker  - clock-names
1041eece23dSJohan Jonker
1051eece23dSJohan Jonkerexamples:
1061eece23dSJohan Jonker  - |
1071eece23dSJohan Jonker    #include <dt-bindings/clock/rk3288-cru.h>
1081eece23dSJohan Jonker    #include <dt-bindings/interrupt-controller/arm-gic.h>
1091eece23dSJohan Jonker    #include <dt-bindings/interrupt-controller/irq.h>
1101eece23dSJohan Jonker    sdmmc: mmc@ff0c0000 {
1111eece23dSJohan Jonker      compatible = "rockchip,rk3288-dw-mshc";
1121eece23dSJohan Jonker      reg = <0x0 0xff0c0000 0x0 0x4000>;
1131eece23dSJohan Jonker      interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1141eece23dSJohan Jonker      clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
1151eece23dSJohan Jonker               <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
1161eece23dSJohan Jonker      clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1171eece23dSJohan Jonker      resets = <&cru SRST_MMC0>;
1181eece23dSJohan Jonker      reset-names = "reset";
1191eece23dSJohan Jonker      fifo-depth = <0x100>;
1201eece23dSJohan Jonker      max-frequency = <150000000>;
1211eece23dSJohan Jonker    };
1221eece23dSJohan Jonker
1231eece23dSJohan Jonker...
124