Commit 007e3580 authored by Yoshihiro Shimoda's avatar Yoshihiro Shimoda Committed by Kishon Vijay Abraham I
Browse files

dt-bindings: phy: renesas: usb3-phy: convert bindings to json-schema



Convert Renesas R-Car generation 3 USB 3.0 PHY bindings documentation
to json-schema.

Signed-off-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/1585301636-24399-4-git-send-email-yoshihiro.shimoda.uh@renesas.com


Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
parent ca432812
Loading
Loading
Loading
Loading
+0 −52
Original line number Diff line number Diff line
* Renesas R-Car generation 3 USB 3.0 PHY

This file provides information on what the device node for the R-Car generation
3 and RZ/G2 USB 3.0 PHY contain.
If you want to enable spread spectrum clock (ssc), you should use USB_EXTAL
instead of USB3_CLK. However, if you don't want to these features, you don't
need this driver.

Required properties:
- compatible: "renesas,r8a774a1-usb3-phy" if the device is a part of an R8A774A1
	      SoC.
	      "renesas,r8a774b1-usb3-phy" if the device is a part of an R8A774B1
	      SoC.
	      "renesas,r8a7795-usb3-phy" if the device is a part of an R8A7795
	      SoC.
	      "renesas,r8a7796-usb3-phy" if the device is a part of an R8A7796
	      SoC.
	      "renesas,r8a77965-usb3-phy" if the device is a part of an
	      R8A77965 SoC.
	      "renesas,rcar-gen3-usb3-phy" for a generic R-Car Gen3 or RZ/G2
	      compatible device.

	      When compatible with the generic version, nodes must list the
	      SoC-specific version corresponding to the platform first
	      followed by the generic version.

- reg: offset and length of the USB 3.0 PHY register block.
- clocks: A list of phandles and clock-specifier pairs.
- clock-names: Name of the clocks.
  - The funcional clock must be "usb3-if".
  - The usb3's external clock must be "usb3s_clk".
  - The usb2's external clock must be "usb_extal". If you want to use the ssc,
    the clock-frequency must not be 0.
- #phy-cells: see phy-bindings.txt in the same directory, must be <0>.

Optional properties:
- renesas,ssc-range: Enable/disable spread spectrum clock (ssc) by using
		     the following values as u32:
			- 0 (or the property doesn't exist): disable the ssc
			- 4980: enable the ssc as -4980 ppm
			- 4492: enable the ssc as -4492 ppm
			- 4003: enable the ssc as -4003 ppm

Example (R-Car H3):

	usb-phy@e65ee000 {
		compatible = "renesas,r8a7795-usb3-phy",
			     "renesas,rcar-gen3-usb3-phy";
		reg = <0 0xe65ee000 0 0x90>;
		clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, <&usb_extal>;
		clock-names = "usb3-if", "usb3s_clk", "usb_extal";
	};
+78 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/phy/renesas,usb3-phy.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas R-Car generation 3 USB 3.0 PHY

maintainers:
  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

properties:
  compatible:
    items:
      - enum:
          - renesas,r8a774a1-usb3-phy # RZ/G2M
          - renesas,r8a774b1-usb3-phy # RZ/G2N
          - renesas,r8a7795-usb3-phy  # R-Car H3
          - renesas,r8a7796-usb3-phy  # R-Car M3-W
          - renesas,r8a77965-usb3-phy # R-Car M3-N
      - const: renesas,rcar-gen3-usb3-phy

  reg:
    maxItems: 1

  clocks:
    minItems: 2
    maxItems: 3

  clock-names:
    # If you want to use the ssc, the clock-frequency of usb_extal
    # must not be 0.
    minItems: 2
    maxItems: 3
    items:
      - const: usb3-if # The funcional clock
      - const: usb3s_clk # The usb3's external clock
      - const: usb_extal # The usb2's external clock

  '#phy-cells':
    # see phy-bindings.txt in the same directory
    const: 0

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

  renesas,ssc-range:
    description: |
      Enable/disable spread spectrum clock (ssc). 0 or the property doesn't
      exist means disabling the ssc. The actual value will be -<value> ppm.
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
      - enum: [ 0, 4003, 4492, 4980 ]

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - '#phy-cells'

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
    #include <dt-bindings/power/r8a7795-sysc.h>

    usb-phy@e65ee000 {
        compatible = "renesas,r8a7795-usb3-phy", "renesas,rcar-gen3-usb3-phy";
        reg = <0xe65ee000 0x90>;
        clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, <&usb_extal>;
        clock-names = "usb3-if", "usb3s_clk", "usb_extal";
        #phy-cells = <0>;
    };