summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt
blob: ac96d6481bb8608c237e416dff236ed9e48b5dd4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
* Renesas R-Car generation 2 USB PHY

This file provides information on what the device node for the R-Car generation
2 USB PHY contains.

Required properties:
- compatible: "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC.
	      "renesas,usb-phy-r8a7744" if the device is a part of R8A7744 SoC.
	      "renesas,usb-phy-r8a7745" if the device is a part of R8A7745 SoC.
	      "renesas,usb-phy-r8a77470" if the device is a part of R8A77470 SoC.
	      "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC.
	      "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC.
	      "renesas,usb-phy-r8a7794" if the device is a part of R8A7794 SoC.
	      "renesas,rcar-gen2-usb-phy" for a generic R-Car Gen2 or
					  RZ/G1 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 register block.
- #address-cells: number of address cells for the USB channel subnodes, must
		  be <1>.
- #size-cells: number of size cells for the USB channel subnodes, must be <0>.
- clocks: clock phandle and specifier pair.
- clock-names: string, clock input name, must be "usbhs".

The USB PHY device tree node should have the subnodes corresponding to the USB
channels. These subnodes must contain the following properties:
- reg: the USB controller selector; see the table below for the values.
- #phy-cells: see phy-bindings.txt in the same directory, must be <1>.

The phandle's argument in the PHY specifier is the USB controller selector for
the USB channel other than r8a77470 SoC; see the selector meanings below:

+-----------+---------------+---------------+
|\ Selector |               |               |
+ --------- +       0       |       1       |
| Channel  \|               |               |
+-----------+---------------+---------------+
| 0         | PCI EHCI/OHCI | HS-USB        |
| 2         | PCI EHCI/OHCI | xHCI          |
+-----------+---------------+---------------+

For r8a77470 SoC;see the selector meaning below:

+-----------+---------------+---------------+
|\ Selector |               |               |
+ --------- +       0       |       1       |
| Channel  \|               |               |
+-----------+---------------+---------------+
| 0         | EHCI/OHCI     | HS-USB        |
+-----------+---------------+---------------+

Example (Lager board):

	usb-phy@e6590100 {
		compatible = "renesas,usb-phy-r8a7790", "renesas,rcar-gen2-usb-phy";
		reg = <0 0xe6590100 0 0x100>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&cpg CPG_MOD 704>;
		clock-names = "usbhs";
		power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
		resets = <&cpg 704>;

		usb0: usb-channel@0 {
			reg = <0>;
			#phy-cells = <1>;
		};
		usb2: usb-channel@2 {
			reg = <2>;
			#phy-cells = <1>;
		};
	};

Example (iWave RZ/G1C sbc):

	usbphy0: usb-phy0@e6590100 {
		compatible = "renesas,usb-phy-r8a77470",
			     "renesas,rcar-gen2-usb-phy";
		reg = <0 0xe6590100 0 0x100>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&cpg CPG_MOD 704>;
		clock-names = "usbhs";
		power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
		resets = <&cpg 704>;

		usb0: usb-channel@0 {
			reg = <0>;
			#phy-cells = <1>;
		};
	};

	usbphy1: usb-phy@e6598100 {
		compatible = "renesas,usb-phy-r8a77470",
			     "renesas,rcar-gen2-usb-phy";
		reg = <0 0xe6598100 0 0x100>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&cpg CPG_MOD 706>;
		clock-names = "usbhs";
		power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
		resets = <&cpg 706>;

		usb1: usb-channel@0 {
			reg = <0>;
			#phy-cells = <1>;
		};
	};