102 lines
2.9 KiB
YAML
102 lines
2.9 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: "http://devicetree.org/schemas/clock/renesas,rcar-usb2-clock-sel.yaml#"
|
||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||
|
|
||
|
title: Renesas R-Car USB 2.0 clock selector
|
||
|
|
||
|
maintainers:
|
||
|
- Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
|
||
|
|
||
|
description: |
|
||
|
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.
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
items:
|
||
|
- enum:
|
||
|
- renesas,r8a774a1-rcar-usb2-clock-sel # RZ/G2M
|
||
|
- renesas,r8a774b1-rcar-usb2-clock-sel # RZ/G2N
|
||
|
- renesas,r8a774e1-rcar-usb2-clock-sel # RZ/G2H
|
||
|
- renesas,r8a7795-rcar-usb2-clock-sel # R-Car H3
|
||
|
- renesas,r8a7796-rcar-usb2-clock-sel # R-Car M3-W
|
||
|
- renesas,r8a77961-rcar-usb2-clock-sel # R-Car M3-W+
|
||
|
- const: renesas,rcar-gen3-usb2-clock-sel
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
clocks:
|
||
|
maxItems: 4
|
||
|
|
||
|
clock-names:
|
||
|
items:
|
||
|
- const: ehci_ohci
|
||
|
- const: hs-usb-if
|
||
|
- const: usb_extal
|
||
|
- const: usb_xtal
|
||
|
|
||
|
'#clock-cells':
|
||
|
const: 0
|
||
|
|
||
|
power-domains:
|
||
|
maxItems: 1
|
||
|
|
||
|
resets:
|
||
|
maxItems: 2
|
||
|
|
||
|
reset-names:
|
||
|
items:
|
||
|
- const: ehci_ohci
|
||
|
- const: hs-usb-if
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- clocks
|
||
|
- clock-names
|
||
|
- '#clock-cells'
|
||
|
- power-domains
|
||
|
- resets
|
||
|
- reset-names
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/clock/r8a7795-cpg-mssr.h>
|
||
|
#include <dt-bindings/power/r8a7795-sysc.h>
|
||
|
|
||
|
usb2_clksel: clock-controller@e6590630 {
|
||
|
compatible = "renesas,r8a7795-rcar-usb2-clock-sel",
|
||
|
"renesas,rcar-gen3-usb2-clock-sel";
|
||
|
reg = <0xe6590630 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";
|
||
|
};
|