Merge tag 'Smack-for-5.8' of git://github.com/cschaufler/smack-next
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / clock / renesas,rcar-usb2-clock-sel.txt
1 * Renesas R-Car USB 2.0 clock selector
2
3 This file provides information on what the device node for the R-Car USB 2.0
4 clock selector.
5
6 If you connect an external clock to the USB_EXTAL pin only, you should set
7 the clock rate to "usb_extal" node only.
8 If you connect an oscillator to both the USB_XTAL and USB_EXTAL, this module
9 is not needed because this is default setting. (Of course, you can set the
10 clock rates to both "usb_extal" and "usb_xtal" nodes.
11
12 Case 1: An external clock connects to R-Car SoC
13         +----------+   +--- R-Car ---------------------+
14         |External  |---|USB_EXTAL ---> all usb channels|
15         |clock     |   |USB_XTAL                       |
16         +----------+   +-------------------------------+
17 In this case, we need this driver with "usb_extal" clock.
18
19 Case 2: An oscillator connects to R-Car SoC
20         +----------+   +--- R-Car ---------------------+
21         |Oscillator|---|USB_EXTAL -+-> all usb channels|
22         |          |---|USB_XTAL --+                   |
23         +----------+   +-------------------------------+
24 In this case, we don't need this selector.
25
26 Required properties:
27 - compatible: "renesas,r8a7795-rcar-usb2-clock-sel" if the device is a part of
28               an R8A7795 SoC.
29               "renesas,r8a7796-rcar-usb2-clock-sel" if the device if a part of
30               an R8A7796 SoC.
31               "renesas,rcar-gen3-usb2-clock-sel" for a generic R-Car Gen3
32               compatible device.
33
34               When compatible with the generic version, nodes must list the
35               SoC-specific version corresponding to the platform first
36               followed by the generic version.
37
38 - reg: offset and length of the USB 2.0 clock selector register block.
39 - clocks: A list of phandles and specifier pairs.
40 - clock-names: Name of the clocks.
41  - The functional clock of USB 2.0 host side must be "ehci_ohci"
42  - The functional clock of HS-USB side must be "hs-usb-if"
43  - The USB_EXTAL clock pin must be "usb_extal"
44  - The USB_XTAL clock pin must be "usb_xtal"
45 - #clock-cells: Must be 0
46 - power-domains: A phandle and symbolic PM domain specifier.
47                  See power/renesas,rcar-sysc.yaml.
48 - resets: A list of phandles and specifier pairs.
49 - reset-names: Name of the resets.
50  - The reset of USB 2.0 host side must be "ehci_ohci"
51  - The reset of HS-USB side must be "hs-usb-if"
52
53 Example (R-Car H3):
54
55         usb2_clksel: clock-controller@e6590630 {
56                 compatible = "renesas,r8a7795-rcar-usb2-clock-sel",
57                              "renesas,rcar-gen3-usb2-clock-sel";
58                 reg = <0 0xe6590630 0 0x02>;
59                 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
60                          <&usb_extal>, <&usb_xtal>;
61                 clock-names = "ehci_ohci", "hs-usb-if", "usb_extal", "usb_xtal";
62                 #clock-cells = <0>;
63                 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
64                 resets = <&cpg 703>, <&cpg 704>;
65                 reset-names = "ehci_ohci", "hs-usb-if";
66         };