* 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"; };