Linux Audio

Check our new training course

Real-Time Linux with PREEMPT_RT training

Feb 18-20, 2025
Register
Loading...
Note: File does not exist in v5.4.
  1/*
  2 * This file is dual-licensed: you can use it either under the terms
  3 * of the GPL or the X11 license, at your option. Note that this dual
  4 * licensing only applies to this file, and not this project as a
  5 * whole.
  6 *
  7 *  a) This file is free software; you can redistribute it and/or
  8 *     modify it under the terms of the GNU General Public License as
  9 *     published by the Free Software Foundation; either version 2 of the
 10 *     License, or (at your option) any later version.
 11 *
 12 *     This file is distributed in the hope that it will be useful,
 13 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 14 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 15 *     GNU General Public License for more details.
 16 *
 17 * Or, alternatively,
 18 *
 19 *  b) Permission is hereby granted, free of charge, to any person
 20 *     obtaining a copy of this software and associated documentation
 21 *     files (the "Software"), to deal in the Software without
 22 *     restriction, including without limitation the rights to use,
 23 *     copy, modify, merge, publish, distribute, sublicense, and/or
 24 *     sell copies of the Software, and to permit persons to whom the
 25 *     Software is furnished to do so, subject to the following
 26 *     conditions:
 27 *
 28 *     The above copyright notice and this permission notice shall be
 29 *     included in all copies or substantial portions of the Software.
 30 *
 31 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 32 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 33 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 34 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 35 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 36 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 37 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 38 *     OTHER DEALINGS IN THE SOFTWARE.
 39 */
 40
 41/dts-v1/;
 42
 43#include "rk3288.dtsi"
 44
 45/ {
 46	model = "Rockchip RK3288 Fennec Board";
 47	compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
 48
 49	memory@0 {
 50		reg = <0x0 0x80000000>;
 51		device_type = "memory";
 52	};
 53
 54	ext_gmac: external-gmac-clock {
 55		compatible = "fixed-clock";
 56		#clock-cells = <0>;
 57		clock-frequency = <125000000>;
 58		clock-output-names = "ext_gmac";
 59	};
 60
 61	vcc_sys: vsys-regulator {
 62		compatible = "regulator-fixed";
 63		regulator-name = "vcc_sys";
 64		regulator-min-microvolt = <5000000>;
 65		regulator-max-microvolt = <5000000>;
 66		regulator-always-on;
 67		regulator-boot-on;
 68	};
 69};
 70
 71&cpu0 {
 72	cpu0-supply = <&vdd_cpu>;
 73};
 74
 75&emmc {
 76	bus-width = <8>;
 77	cap-mmc-highspeed;
 78	disable-wp;
 79	non-removable;
 80	num-slots = <1>;
 81	pinctrl-names = "default";
 82	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
 83	status = "okay";
 84};
 85
 86&gmac {
 87	assigned-clocks = <&cru SCLK_MAC>;
 88	assigned-clock-parents = <&ext_gmac>;
 89	clock_in_out = "input";
 90	pinctrl-names = "default";
 91	pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
 92	phy-supply = <&vcc_lan>;
 93	phy-mode = "rgmii";
 94	snps,reset-active-low;
 95	snps,reset-delays-us = <0 10000 1000000>;
 96	snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
 97	tx_delay = <0x30>;
 98	rx_delay = <0x10>;
 99	status = "okay";
100};
101
102&hdmi {
103	status = "okay";
104};
105
106&i2c0 {
107	status = "okay";
108	clock-frequency = <400000>;
109
110	rk808: pmic@1b {
111		compatible = "rockchip,rk808";
112		reg = <0x1b>;
113		interrupt-parent = <&gpio0>;
114		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
115		#clock-cells = <1>;
116		clock-output-names = "xin32k", "rk808-clkout2";
117		pinctrl-names = "default";
118		pinctrl-0 = <&pmic_int &global_pwroff>;
119		rockchip,system-power-controller;
120		wakeup-source;
121
122		vcc1-supply = <&vcc_sys>;
123		vcc2-supply = <&vcc_sys>;
124		vcc3-supply = <&vcc_sys>;
125		vcc4-supply = <&vcc_sys>;
126		vcc6-supply = <&vcc_sys>;
127		vcc7-supply = <&vcc_sys>;
128		vcc8-supply = <&vcc_io>;
129		vcc9-supply = <&vcc_io>;
130		vcc10-supply = <&vcc_io>;
131		vcc11-supply = <&vcc_io>;
132		vcc12-supply = <&vcc_io>;
133		vddio-supply = <&vcc_io>;
134
135		regulators {
136			vdd_cpu: DCDC_REG1 {
137				regulator-always-on;
138				regulator-boot-on;
139				regulator-min-microvolt = <750000>;
140				regulator-max-microvolt = <1350000>;
141				regulator-name = "vdd_arm";
142				regulator-state-mem {
143					regulator-off-in-suspend;
144				};
145			};
146
147			vdd_gpu: DCDC_REG2 {
148				regulator-always-on;
149				regulator-boot-on;
150				regulator-min-microvolt = <850000>;
151				regulator-max-microvolt = <1250000>;
152				regulator-name = "vdd_gpu";
153				regulator-state-mem {
154					regulator-on-in-suspend;
155					regulator-suspend-microvolt = <1000000>;
156				};
157			};
158
159			vcc_ddr: DCDC_REG3 {
160				regulator-always-on;
161				regulator-boot-on;
162				regulator-name = "vcc_ddr";
163				regulator-state-mem {
164					regulator-on-in-suspend;
165				};
166			};
167
168			vcc_io: DCDC_REG4 {
169				regulator-always-on;
170				regulator-boot-on;
171				regulator-min-microvolt = <3300000>;
172				regulator-max-microvolt = <3300000>;
173				regulator-name = "vcc_io";
174				regulator-state-mem {
175					regulator-on-in-suspend;
176					regulator-suspend-microvolt = <3300000>;
177				};
178			};
179
180			vccio_pmu: LDO_REG1 {
181				regulator-always-on;
182				regulator-boot-on;
183				regulator-min-microvolt = <3300000>;
184				regulator-max-microvolt = <3300000>;
185				regulator-name = "vccio_pmu";
186				regulator-state-mem {
187					regulator-on-in-suspend;
188					regulator-suspend-microvolt = <3300000>;
189				};
190			};
191
192			vcca_33: LDO_REG2 {
193				regulator-always-on;
194				regulator-boot-on;
195				regulator-min-microvolt = <3300000>;
196				regulator-max-microvolt = <3300000>;
197				regulator-name = "vcca_33";
198				regulator-state-mem {
199					regulator-off-in-suspend;
200				};
201			};
202
203			vdd_10: LDO_REG3 {
204				regulator-always-on;
205				regulator-boot-on;
206				regulator-min-microvolt = <1000000>;
207				regulator-max-microvolt = <1000000>;
208				regulator-name = "vdd_10";
209				regulator-state-mem {
210					regulator-on-in-suspend;
211					regulator-suspend-microvolt = <1000000>;
212				};
213			};
214
215			vcc_wl: LDO_REG4 {
216				regulator-always-on;
217				regulator-boot-on;
218				regulator-min-microvolt = <1800000>;
219				regulator-max-microvolt = <1800000>;
220				regulator-name = "vcc_wl";
221				regulator-state-mem {
222					regulator-on-in-suspend;
223					regulator-suspend-microvolt = <1800000>;
224				};
225			};
226
227			vccio_sd: LDO_REG5 {
228				regulator-always-on;
229				regulator-boot-on;
230				regulator-min-microvolt = <1800000>;
231				regulator-max-microvolt = <3300000>;
232				regulator-name = "vccio_sd";
233				regulator-state-mem {
234					regulator-on-in-suspend;
235					regulator-suspend-microvolt = <3300000>;
236				};
237			};
238
239			vdd10_lcd: LDO_REG6 {
240				regulator-always-on;
241				regulator-boot-on;
242				regulator-min-microvolt = <1000000>;
243				regulator-max-microvolt = <1000000>;
244				regulator-name = "vdd10_lcd";
245				regulator-state-mem {
246					regulator-on-in-suspend;
247					regulator-suspend-microvolt = <1000000>;
248				};
249			};
250
251			vcc_18: LDO_REG7 {
252				regulator-always-on;
253				regulator-boot-on;
254				regulator-min-microvolt = <1800000>;
255				regulator-max-microvolt = <1800000>;
256				regulator-name = "vcc_18";
257				regulator-state-mem {
258					regulator-on-in-suspend;
259					regulator-suspend-microvolt = <1800000>;
260				};
261			};
262
263			vcc18_lcd: LDO_REG8 {
264				regulator-always-on;
265				regulator-boot-on;
266				regulator-min-microvolt = <1800000>;
267				regulator-max-microvolt = <1800000>;
268				regulator-name = "vcc18_lcd";
269				regulator-state-mem {
270					regulator-on-in-suspend;
271					regulator-suspend-microvolt = <1800000>;
272				};
273			};
274
275			vcc_sd: SWITCH_REG1 {
276				regulator-always-on;
277				regulator-boot-on;
278				regulator-name = "vcc_sd";
279				regulator-state-mem {
280					regulator-on-in-suspend;
281				};
282			};
283
284			vcc_lan: SWITCH_REG2 {
285				regulator-always-on;
286				regulator-boot-on;
287				regulator-name = "vcc_lan";
288				regulator-state-mem {
289					regulator-on-in-suspend;
290				};
291			};
292		};
293	};
294};
295
296&pinctrl {
297	pcfg_output_high: pcfg-output-high {
298		output-high;
299	};
300
301	pcfg_output_low: pcfg-output-low {
302		output-low;
303	};
304
305	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
306		drive-strength = <8>;
307	};
308
309	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
310		bias-pull-up;
311		drive-strength = <8>;
312	};
313
314	gmac {
315		phy_int: phy-int {
316			rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
317		};
318
319		phy_pmeb: phy-pmeb {
320			rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
321		};
322
323		phy_rst: phy-rst {
324			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
325		};
326	};
327
328	pmic {
329		pmic_int: pmic-int {
330			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
331		};
332	};
333
334	usbphy {
335		host_drv: host-drv {
336			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
337		};
338	};
339};
340
341&uart2 {
342	status = "okay";
343};
344
345&usbphy {
346	pinctrl-names = "default";
347	pinctrl-0 = <&host_drv>;
348	vbus_drv-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
349	status = "okay";
350};
351
352&usb_host0_ehci {
353	status = "okay";
354};
355
356&usb_host1 {
357	status = "okay";
358};
359
360&usb_otg {
361	status = "okay";
362};
363
364&usb_hsic {
365	status = "okay";
366};
367
368&vopb {
369	status = "okay";
370};
371
372&vopb_mmu {
373	status = "okay";
374};
375
376&vopl {
377	status = "okay";
378};
379
380&vopl_mmu {
381	status = "okay";
382};