Commit 1eece23d authored by Johan Jonker's avatar Johan Jonker Committed by Ulf Hansson
Browse files

dt-bindings: mmc: convert rockchip dw-mshc bindings to yaml



Current dts files with 'dwmmc' nodes are manually verified.
In order to automate this process rockchip-dw-mshc.txt
has to be converted to yaml. In the new setup
rockchip-dw-mshc.yaml will inherit properties from
mmc-controller.yaml and synopsys-dw-mshc-common.yaml.
'dwmmc' will no longer be a valid name for a node and
should be changed to 'mmc'.

Signed-off-by: default avatarJohan Jonker <jbx6244@gmail.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200116152230.29831-2-jbx6244@gmail.com


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 8655ff21
Loading
Loading
Loading
Loading
+0 −49
Original line number Diff line number Diff line
* Rockchip specific extensions to the Synopsys Designware Mobile
  Storage Host Controller

The Synopsys designware mobile storage host controller is used to interface
a SoC with storage medium such as eMMC or SD/MMC cards. This file documents
differences between the core Synopsys dw mshc controller properties described
by synopsys-dw-mshc.txt and the properties used by the Rockchip specific
extensions to the Synopsys Designware Mobile Storage Host Controller.

Required Properties:

* compatible: should be
	- "rockchip,rk2928-dw-mshc": for Rockchip RK2928 and following,
							before RK3288
	- "rockchip,rk3288-dw-mshc": for Rockchip RK3288
	- "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RV1108
	- "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip PX30
	- "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3036
	- "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK322x
	- "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3328
	- "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3368
	- "rockchip,rk3399-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3399

Optional Properties:
* clocks: from common clock binding: if ciu-drive and ciu-sample are
  specified in clock-names, should contain handles to these clocks.

* clock-names: Apart from the clock-names described in synopsys-dw-mshc.txt
  two more clocks "ciu-drive" and "ciu-sample" are supported. They are used
  to control the clock phases, "ciu-sample" is required for tuning high-
  speed modes.

* rockchip,default-sample-phase: The default phase to set ciu-sample at
  probing, low speeds or in case where all phases work at tuning time.
  If not specified 0 deg will be used.

* rockchip,desired-num-phases: The desired number of times that the host
  execute tuning when needed. If not specified, the host will do tuning
  for 360 times, namely tuning for each degree.

Example:

	rkdwmmc0@12200000 {
		compatible = "rockchip,rk3288-dw-mshc";
		reg = <0x12200000 0x1000>;
		interrupts = <0 75 0>;
		#address-cells = <1>;
		#size-cells = <0>;
	};
+123 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/rockchip-dw-mshc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Rockchip designware mobile storage host controller device tree bindings

description:
  Rockchip uses the Synopsys designware mobile storage host controller
  to interface a SoC with storage medium such as eMMC or SD/MMC cards.
  This file documents the combined properties for the core Synopsys dw mshc
  controller that are not already included in the synopsys-dw-mshc-common.yaml
  file and the Rockchip specific extensions.

allOf:
  - $ref: "synopsys-dw-mshc-common.yaml#"

maintainers:
  - Heiko Stuebner <heiko@sntech.de>

# Everything else is described in the common file
properties:
  compatible:
    oneOf:
      # for Rockchip RK2928 and before RK3288
      - const: rockchip,rk2928-dw-mshc
      # for Rockchip RK3288
      - const: rockchip,rk3288-dw-mshc
      - items:
          - enum:
            # for Rockchip PX30
            - rockchip,px30-dw-mshc
            # for Rockchip RK3036
            - rockchip,rk3036-dw-mshc
            # for Rockchip RK322x
            - rockchip,rk3228-dw-mshc
            # for Rockchip RK3328
            - rockchip,rk3328-dw-mshc
            # for Rockchip RK3368
            - rockchip,rk3368-dw-mshc
            # for Rockchip RK3399
            - rockchip,rk3399-dw-mshc
            # for Rockchip RV1108
            - rockchip,rv1108-dw-mshc
          - const: rockchip,rk3288-dw-mshc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 2
    maxItems: 4
    description:
      Handle to "biu" and "ciu" clocks for the bus interface unit clock and
      the card interface unit clock. If "ciu-drive" and "ciu-sample" are
      specified in clock-names, it should also contain
      handles to these clocks.

  clock-names:
    minItems: 2
    items:
      - const: biu
      - const: ciu
      - const: ciu-drive
      - const: ciu-sample
    description:
      Apart from the clock-names "biu" and "ciu" two more clocks
      "ciu-drive" and "ciu-sample" are supported. They are used
      to control the clock phases, "ciu-sample" is required for tuning
      high speed modes.

  rockchip,default-sample-phase:
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 360
    default: 0
    description:
      The default phase to set "ciu-sample" at probing,
      low speeds or in case where all phases work at tuning time.
      If not specified 0 deg will be used.

  rockchip,desired-num-phases:
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 360
    default: 360
    description:
      The desired number of times that the host execute tuning when needed.
      If not specified, the host will do tuning for 360 times,
      namely tuning for each degree.

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

examples:
  - |
    #include <dt-bindings/clock/rk3288-cru.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    sdmmc: mmc@ff0c0000 {
      compatible = "rockchip,rk3288-dw-mshc";
      reg = <0x0 0xff0c0000 0x0 0x4000>;
      interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
               <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
      clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
      resets = <&cru SRST_MMC0>;
      reset-names = "reset";
      fifo-depth = <0x100>;
      max-frequency = <150000000>;
    };

...
+1 −0
Original line number Diff line number Diff line
@@ -2240,6 +2240,7 @@ L: linux-rockchip@lists.infradead.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
S:	Maintained
F:	Documentation/devicetree/bindings/i2c/i2c-rk3x.txt
F:	Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.yaml
F:	arch/arm/boot/dts/rk3*
F:	arch/arm/boot/dts/rv1108*
F:	arch/arm/mach-rockchip/