9247f0b4217bb61a0768bd0c4e192e9895d703be
[openwrt/staging/chunkeey.git] / target / linux / gemini / patches-4.19 / 0018-ARM-dts-Add-the-FOTG210-USB-host-to-Gemini-boards.patch
1 From 1ff9a279dbeb0034929042faef186ce934474c2b Mon Sep 17 00:00:00 2001
2 From: Linus Walleij <linus.walleij@linaro.org>
3 Date: Fri, 21 Apr 2017 20:50:22 +0200
4 Subject: [PATCH 18/18] ARM: dts: Add the FOTG210 USB host to Gemini boards
5
6 This adds the FOTG210 USB host controller to the Gemini
7 device trees. In the main SoC DTSI it is flagged as disabled
8 and then it is selectively enabled on the devices that utilize
9 it.
10
11 Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
12 ---
13 ChangeLog v1->v2:
14 - Rebased to kernel v4.19-rc1
15 - Drop pinctrl-0 handle from the second USB port
16 - Add comment on how to deal with the USB pin control
17 ---
18 arch/arm/boot/dts/gemini-dlink-dir-685.dts | 8 ++++++
19 arch/arm/boot/dts/gemini-nas4220b.dts | 8 ++++++
20 arch/arm/boot/dts/gemini-rut1xx.dts | 20 ++++++++++++++
21 arch/arm/boot/dts/gemini-sl93512r.dts | 8 ++++++
22 arch/arm/boot/dts/gemini-sq201.dts | 8 ++++++
23 arch/arm/boot/dts/gemini-wbd111.dts | 8 ++++++
24 arch/arm/boot/dts/gemini-wbd222.dts | 8 ++++++
25 arch/arm/boot/dts/gemini.dtsi | 32 ++++++++++++++++++++++
26 8 files changed, 100 insertions(+)
27
28 diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
29 index 850a605124eb..848b16375873 100644
30 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
31 +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
32 @@ -452,5 +452,13 @@
33 };
34 };
35 };
36 +
37 + usb@68000000 {
38 + status = "okay";
39 + };
40 +
41 + usb@69000000 {
42 + status = "okay";
43 + };
44 };
45 };
46 diff --git a/arch/arm/boot/dts/gemini-nas4220b.dts b/arch/arm/boot/dts/gemini-nas4220b.dts
47 index 963ea890c87f..53b65ebe8454 100644
48 --- a/arch/arm/boot/dts/gemini-nas4220b.dts
49 +++ b/arch/arm/boot/dts/gemini-nas4220b.dts
50 @@ -204,5 +204,13 @@
51 ata@63400000 {
52 status = "okay";
53 };
54 +
55 + usb@68000000 {
56 + status = "okay";
57 + };
58 +
59 + usb@69000000 {
60 + status = "okay";
61 + };
62 };
63 };
64 diff --git a/arch/arm/boot/dts/gemini-rut1xx.dts b/arch/arm/boot/dts/gemini-rut1xx.dts
65 index eb4f0bf074da..b2354c215a84 100644
66 --- a/arch/arm/boot/dts/gemini-rut1xx.dts
67 +++ b/arch/arm/boot/dts/gemini-rut1xx.dts
68 @@ -124,5 +124,25 @@
69 /* Not used in this platform */
70 };
71 };
72 +
73 + ethernet@60000000 {
74 + status = "okay";
75 +
76 + ethernet-port@0 {
77 + phy-mode = "rgmii";
78 + phy-handle = <&phy0>;
79 + };
80 + ethernet-port@1 {
81 + /* Not used in this platform */
82 + };
83 + };
84 +
85 + usb@68000000 {
86 + status = "okay";
87 + };
88 +
89 + usb@69000000 {
90 + status = "okay";
91 + };
92 };
93 };
94 diff --git a/arch/arm/boot/dts/gemini-sl93512r.dts b/arch/arm/boot/dts/gemini-sl93512r.dts
95 index ebefb7297379..2bb953440793 100644
96 --- a/arch/arm/boot/dts/gemini-sl93512r.dts
97 +++ b/arch/arm/boot/dts/gemini-sl93512r.dts
98 @@ -324,5 +324,13 @@
99 ata@63400000 {
100 status = "okay";
101 };
102 +
103 + usb@68000000 {
104 + status = "okay";
105 + };
106 +
107 + usb@69000000 {
108 + status = "okay";
109 + };
110 };
111 };
112 diff --git a/arch/arm/boot/dts/gemini-sq201.dts b/arch/arm/boot/dts/gemini-sq201.dts
113 index c5bb24102b75..ecbc27d93b2d 100644
114 --- a/arch/arm/boot/dts/gemini-sq201.dts
115 +++ b/arch/arm/boot/dts/gemini-sq201.dts
116 @@ -292,5 +292,13 @@
117 ata@63000000 {
118 status = "okay";
119 };
120 +
121 + usb@68000000 {
122 + status = "okay";
123 + };
124 +
125 + usb@69000000 {
126 + status = "okay";
127 + };
128 };
129 };
130 diff --git a/arch/arm/boot/dts/gemini-wbd111.dts b/arch/arm/boot/dts/gemini-wbd111.dts
131 index 29af86cd10f7..6831d2aed17a 100644
132 --- a/arch/arm/boot/dts/gemini-wbd111.dts
133 +++ b/arch/arm/boot/dts/gemini-wbd111.dts
134 @@ -171,5 +171,13 @@
135 /* Not used in this platform */
136 };
137 };
138 +
139 + usb@68000000 {
140 + status = "okay";
141 + };
142 +
143 + usb@69000000 {
144 + status = "okay";
145 + };
146 };
147 };
148 diff --git a/arch/arm/boot/dts/gemini-wbd222.dts b/arch/arm/boot/dts/gemini-wbd222.dts
149 index 24e6ae3616f7..ed38d48ef5f6 100644
150 --- a/arch/arm/boot/dts/gemini-wbd222.dts
151 +++ b/arch/arm/boot/dts/gemini-wbd222.dts
152 @@ -183,5 +183,13 @@
153 phy-handle = <&phy1>;
154 };
155 };
156 +
157 + usb@68000000 {
158 + status = "okay";
159 + };
160 +
161 + usb@69000000 {
162 + status = "okay";
163 + };
164 };
165 };
166 diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi
167 index eb752e9495de..8cf67b11751f 100644
168 --- a/arch/arm/boot/dts/gemini.dtsi
169 +++ b/arch/arm/boot/dts/gemini.dtsi
170 @@ -409,5 +409,37 @@
171 #size-cells = <0>;
172 status = "disabled";
173 };
174 +
175 + usb@68000000 {
176 + compatible = "cortina,gemini-usb", "faraday,fotg210";
177 + reg = <0x68000000 0x1000>;
178 + interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
179 + resets = <&syscon GEMINI_RESET_USB0>;
180 + clocks = <&syscon GEMINI_CLK_GATE_USB0>;
181 + clock-names = "PCLK";
182 + /*
183 + * This will claim pins for USB0 and USB1 at the same
184 + * time as they are using some common pins. If you for
185 + * some reason have a system using USB1 at 96000000 but
186 + * NOT using USB0 at 68000000 you wll have to add the
187 + * usb_default_pins to the USB controller at 96000000
188 + * in your .dts for the board.
189 + */
190 + pinctrl-names = "default";
191 + pinctrl-0 = <&usb_default_pins>;
192 + syscon = <&syscon>;
193 + status = "disabled";
194 + };
195 +
196 + usb@69000000 {
197 + compatible = "cortina,gemini-usb", "faraday,fotg210";
198 + reg = <0x69000000 0x1000>;
199 + interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
200 + resets = <&syscon GEMINI_RESET_USB1>;
201 + clocks = <&syscon GEMINI_CLK_GATE_USB1>;
202 + clock-names = "PCLK";
203 + syscon = <&syscon>;
204 + status = "disabled";
205 + };
206 };
207 };
208 --
209 2.19.2
210