* Renesas R-Car USB 2.0 clock selector

This file provides information on what the device node for the R-Car USB 2.0
clock selector.

If you connect an external clock to the USB_EXTAL pin only, you should set
the clock rate to "usb_extal" node only.
If you connect an oscillator to both the USB_XTAL and USB_EXTAL, this module
is not needed because this is default setting. (Of course, you can set the
clock rates to both "usb_extal" and "usb_xtal" nodes.

Case 1: An external clock connects to R-Car SoC
	+----------+   +--- R-Car ---------------------+
	|External  |---|USB_EXTAL ---> all usb channels|
	|clock     |   |USB_XTAL                       |
	+----------+   +-------------------------------+
In this case, we need this driver with "usb_extal" clock.

Case 2: An oscillator connects to R-Car SoC
	+----------+   +--- R-Car ---------------------+
	|Oscillator|---|USB_EXTAL -+-> all usb channels|
	|          |---|USB_XTAL --+                   |
	+----------+   +-------------------------------+
In this case, we don't need this selector.

Required properties:
- compatible: "renesas,r8a7795-rcar-usb2-clock-sel" if the device is a part of
	      an R8A7795 SoC.
	      "renesas,r8a7796-rcar-usb2-clock-sel" if the device if a part of
	      an R8A77960 SoC.
	      "renesas,r8a77961-rcar-usb2-clock-sel" if the device if a part of
	      an R8A77961 SoC.
	      "renesas,rcar-gen3-usb2-clock-sel" for a generic R-Car Gen3
	      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 2.0 clock selector register block.
- clocks: A list of phandles and specifier pairs.
- clock-names: Name of the clocks.
 - The functional clock of USB 2.0 host side must be "ehci_ohci"
 - The functional clock of HS-USB side must be "hs-usb-if"
 - The USB_EXTAL clock pin must be "usb_extal"
 - The USB_XTAL clock pin must be "usb_xtal"
- #clock-cells: Must be 0
- power-domains: A phandle and symbolic PM domain specifier.
                 See power/renesas,rcar-sysc.yaml.
- resets: A list of phandles and specifier pairs.
- reset-names: Name of the resets.
 - The reset of USB 2.0 host side must be "ehci_ohci"
 - The reset of HS-USB side must be "hs-usb-if"

Example (R-Car H3):

	usb2_clksel: clock-controller@e6590630 {
		compatible = "renesas,r8a7795-rcar-usb2-clock-sel",
			     "renesas,rcar-gen3-usb2-clock-sel";
		reg = <0 0xe6590630 0 0x02>;
		clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
			 <&usb_extal>, <&usb_xtal>;
		clock-names = "ehci_ohci", "hs-usb-if", "usb_extal", "usb_xtal";
		#clock-cells = <0>;
		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
		resets = <&cpg 703>, <&cpg 704>;
		reset-names = "ehci_ohci", "hs-usb-if";
	};
