xref: /openbmc/linux/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1f5c50b1fSYoshihiro Shimoda# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2f5c50b1fSYoshihiro Shimoda%YAML 1.2
3f5c50b1fSYoshihiro Shimoda---
4*32671977SRob Herring$id: http://devicetree.org/schemas/clock/renesas,rcar-usb2-clock-sel.yaml#
5*32671977SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
6f5c50b1fSYoshihiro Shimoda
7f5c50b1fSYoshihiro Shimodatitle: Renesas R-Car USB 2.0 clock selector
8f5c50b1fSYoshihiro Shimoda
9f5c50b1fSYoshihiro Shimodamaintainers:
10f5c50b1fSYoshihiro Shimoda  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
11f5c50b1fSYoshihiro Shimoda
12f5c50b1fSYoshihiro Shimodadescription: |
13f5c50b1fSYoshihiro Shimoda  If you connect an external clock to the USB_EXTAL pin only, you should set
14f5c50b1fSYoshihiro Shimoda  the clock rate to "usb_extal" node only.
15f5c50b1fSYoshihiro Shimoda  If you connect an oscillator to both the USB_XTAL and USB_EXTAL, this module
16f5c50b1fSYoshihiro Shimoda  is not needed because this is default setting. (Of course, you can set the
17f5c50b1fSYoshihiro Shimoda  clock rates to both "usb_extal" and "usb_xtal" nodes.
18f5c50b1fSYoshihiro Shimoda
19f5c50b1fSYoshihiro Shimoda  Case 1: An external clock connects to R-Car SoC
20f5c50b1fSYoshihiro Shimoda    +----------+   +--- R-Car ---------------------+
21f5c50b1fSYoshihiro Shimoda    |External  |---|USB_EXTAL ---> all usb channels|
22f5c50b1fSYoshihiro Shimoda    |clock     |   |USB_XTAL                       |
23f5c50b1fSYoshihiro Shimoda    +----------+   +-------------------------------+
24f5c50b1fSYoshihiro Shimoda
25f5c50b1fSYoshihiro Shimoda  In this case, we need this driver with "usb_extal" clock.
26f5c50b1fSYoshihiro Shimoda
27f5c50b1fSYoshihiro Shimoda  Case 2: An oscillator connects to R-Car SoC
28f5c50b1fSYoshihiro Shimoda    +----------+   +--- R-Car ---------------------+
29f5c50b1fSYoshihiro Shimoda    |Oscillator|---|USB_EXTAL -+-> all usb channels|
30f5c50b1fSYoshihiro Shimoda    |          |---|USB_XTAL --+                   |
31f5c50b1fSYoshihiro Shimoda    +----------+   +-------------------------------+
32f5c50b1fSYoshihiro Shimoda  In this case, we don't need this selector.
33f5c50b1fSYoshihiro Shimoda
34f5c50b1fSYoshihiro Shimodaproperties:
35f5c50b1fSYoshihiro Shimoda  compatible:
36f5c50b1fSYoshihiro Shimoda    items:
37f5c50b1fSYoshihiro Shimoda      - enum:
38c7061213SAdam Ford          - renesas,r8a774a1-rcar-usb2-clock-sel # RZ/G2M
39c7061213SAdam Ford          - renesas,r8a774b1-rcar-usb2-clock-sel # RZ/G2N
40c7061213SAdam Ford          - renesas,r8a774e1-rcar-usb2-clock-sel # RZ/G2H
41f5c50b1fSYoshihiro Shimoda          - renesas,r8a7795-rcar-usb2-clock-sel  # R-Car H3
42f5c50b1fSYoshihiro Shimoda          - renesas,r8a7796-rcar-usb2-clock-sel  # R-Car M3-W
43f5c50b1fSYoshihiro Shimoda          - renesas,r8a77961-rcar-usb2-clock-sel # R-Car M3-W+
44f5c50b1fSYoshihiro Shimoda      - const: renesas,rcar-gen3-usb2-clock-sel
45f5c50b1fSYoshihiro Shimoda
46f5c50b1fSYoshihiro Shimoda  reg:
47f5c50b1fSYoshihiro Shimoda    maxItems: 1
48f5c50b1fSYoshihiro Shimoda
49f5c50b1fSYoshihiro Shimoda  clocks:
50f5c50b1fSYoshihiro Shimoda    maxItems: 4
51f5c50b1fSYoshihiro Shimoda
52f5c50b1fSYoshihiro Shimoda  clock-names:
53f5c50b1fSYoshihiro Shimoda    items:
54f5c50b1fSYoshihiro Shimoda      - const: ehci_ohci
55f5c50b1fSYoshihiro Shimoda      - const: hs-usb-if
56f5c50b1fSYoshihiro Shimoda      - const: usb_extal
57f5c50b1fSYoshihiro Shimoda      - const: usb_xtal
58f5c50b1fSYoshihiro Shimoda
59f5c50b1fSYoshihiro Shimoda  '#clock-cells':
60f5c50b1fSYoshihiro Shimoda    const: 0
61f5c50b1fSYoshihiro Shimoda
62f5c50b1fSYoshihiro Shimoda  power-domains:
63f5c50b1fSYoshihiro Shimoda    maxItems: 1
64f5c50b1fSYoshihiro Shimoda
65f5c50b1fSYoshihiro Shimoda  resets:
66f5c50b1fSYoshihiro Shimoda    maxItems: 2
67f5c50b1fSYoshihiro Shimoda
68f5c50b1fSYoshihiro Shimoda  reset-names:
69f5c50b1fSYoshihiro Shimoda    items:
70f5c50b1fSYoshihiro Shimoda      - const: ehci_ohci
71f5c50b1fSYoshihiro Shimoda      - const: hs-usb-if
72f5c50b1fSYoshihiro Shimoda
73f5c50b1fSYoshihiro Shimodarequired:
74f5c50b1fSYoshihiro Shimoda  - compatible
75f5c50b1fSYoshihiro Shimoda  - reg
76f5c50b1fSYoshihiro Shimoda  - clocks
77f5c50b1fSYoshihiro Shimoda  - clock-names
78f5c50b1fSYoshihiro Shimoda  - '#clock-cells'
79f5c50b1fSYoshihiro Shimoda  - power-domains
80f5c50b1fSYoshihiro Shimoda  - resets
81f5c50b1fSYoshihiro Shimoda  - reset-names
82f5c50b1fSYoshihiro Shimoda
83f5c50b1fSYoshihiro ShimodaadditionalProperties: false
84f5c50b1fSYoshihiro Shimoda
85f5c50b1fSYoshihiro Shimodaexamples:
86f5c50b1fSYoshihiro Shimoda  - |
87f5c50b1fSYoshihiro Shimoda    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
88f5c50b1fSYoshihiro Shimoda    #include <dt-bindings/power/r8a7795-sysc.h>
89f5c50b1fSYoshihiro Shimoda
90f5c50b1fSYoshihiro Shimoda    usb2_clksel: clock-controller@e6590630 {
91f5c50b1fSYoshihiro Shimoda        compatible = "renesas,r8a7795-rcar-usb2-clock-sel",
92f5c50b1fSYoshihiro Shimoda                     "renesas,rcar-gen3-usb2-clock-sel";
93f5c50b1fSYoshihiro Shimoda        reg = <0xe6590630 0x02>;
94f5c50b1fSYoshihiro Shimoda        clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
95f5c50b1fSYoshihiro Shimoda                 <&usb_extal>, <&usb_xtal>;
96f5c50b1fSYoshihiro Shimoda        clock-names = "ehci_ohci", "hs-usb-if", "usb_extal", "usb_xtal";
97f5c50b1fSYoshihiro Shimoda        #clock-cells = <0>;
98f5c50b1fSYoshihiro Shimoda        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
99f5c50b1fSYoshihiro Shimoda        resets = <&cpg 703>, <&cpg 704>;
100f5c50b1fSYoshihiro Shimoda        reset-names = "ehci_ohci", "hs-usb-if";
101f5c50b1fSYoshihiro Shimoda    };
102