Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
  1/*
  2 * Copyright (c) 2016 Heiko Stuebner <heiko@sntech.de>
  3 *
  4 * This file is dual-licensed: you can use it either under the terms
  5 * of the GPL or the X11 license, at your option. Note that this dual
  6 * licensing only applies to this file, and not this project as a
  7 * whole.
  8 *
  9 *  a) This file is free software; you can redistribute it and/or
 10 *     modify it under the terms of the GNU General Public License as
 11 *     published by the Free Software Foundation; either version 2 of the
 12 *     License, or (at your option) any later version.
 13 *
 14 *     This file is distributed in the hope that it will be useful,
 15 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 16 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 17 *     GNU General Public License for more details.
 18 *
 19 * Or, alternatively,
 20 *
 21 *  b) Permission is hereby granted, free of charge, to any person
 22 *     obtaining a copy of this software and associated documentation
 23 *     files (the "Software"), to deal in the Software without
 24 *     restriction, including without limitation the rights to use,
 25 *     copy, modify, merge, publish, distribute, sublicense, and/or
 26 *     sell copies of the Software, and to permit persons to whom the
 27 *     Software is furnished to do so, subject to the following
 28 *     conditions:
 29 *
 30 *     The above copyright notice and this permission notice shall be
 31 *     included in all copies or substantial portions of the Software.
 32 *
 33 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 34 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 35 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 36 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 37 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 38 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 39 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 40 *     OTHER DEALINGS IN THE SOFTWARE.
 41 */
 42
 43/dts-v1/;
 44#include <dt-bindings/input/input.h>
 45#include "rk3288.dtsi"
 46
 47/ {
 48	model = "mqmaker MiQi";
 49	compatible = "mqmaker,miqi", "rockchip,rk3288";
 50
 51	chosen {
 52		stdout-path = "serial2:115200n8";
 53	};
 54
 55	memory@0 {
 56		device_type = "memory";
 57		reg = <0x0 0x0 0x0 0x80000000>;
 58	};
 59
 60	ext_gmac: external-gmac-clock {
 61		compatible = "fixed-clock";
 62		#clock-cells = <0>;
 63		clock-frequency = <125000000>;
 64		clock-output-names = "ext_gmac";
 65	};
 66
 67	leds {
 68		compatible = "gpio-leds";
 69
 70		work {
 71			gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
 72			label = "miqi:green:user";
 73			linux,default-trigger = "timer";
 74		};
 75	};
 76
 77	vcc_flash: flash-regulator {
 78		compatible = "regulator-fixed";
 79		regulator-name = "vcc_flash";
 80		regulator-min-microvolt = <1800000>;
 81		regulator-max-microvolt = <1800000>;
 82		vin-supply = <&vcc_io>;
 83	};
 84
 85	vcc_host: usb-host-regulator {
 86		compatible = "regulator-fixed";
 87		enable-active-high;
 88		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
 89		pinctrl-names = "default";
 90		pinctrl-0 = <&host_vbus_drv>;
 91		regulator-name = "vcc_host";
 92		regulator-min-microvolt = <5000000>;
 93		regulator-max-microvolt = <5000000>;
 94		regulator-always-on;
 95		vin-supply = <&vcc_sys>;
 96	};
 97
 98	vcc_sd: sdmmc-regulator {
 99		compatible = "regulator-fixed";
100		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
101		pinctrl-names = "default";
102		pinctrl-0 = <&sdmmc_pwr>;
103		regulator-name = "vcc_sd";
104		regulator-min-microvolt = <3300000>;
105		regulator-max-microvolt = <3300000>;
106		startup-delay-us = <100000>;
107		vin-supply = <&vcc_io>;
108	};
109
110	vcc_sys: vsys-regulator {
111		compatible = "regulator-fixed";
112		regulator-name = "vcc_sys";
113		regulator-min-microvolt = <5000000>;
114		regulator-max-microvolt = <5000000>;
115		regulator-always-on;
116		regulator-boot-on;
117	};
118};
119
120&cpu0 {
121	cpu0-supply = <&vdd_cpu>;
122};
123
124&emmc {
125	bus-width = <8>;
126	cap-mmc-highspeed;
127	disable-wp;
128	non-removable;
129	pinctrl-names = "default";
130	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
131	vmmc-supply = <&vcc_io>;
132	vqmmc-supply = <&vcc_flash>;
133	status = "okay";
134};
135
136&gmac {
137	assigned-clocks = <&cru SCLK_MAC>;
138	assigned-clock-parents = <&ext_gmac>;
139	clock_in_out = "input";
140	pinctrl-names = "default";
141	pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
142	phy-supply = <&vcc_lan>;
143	phy-mode = "rgmii";
144	snps,reset-active-low;
145	snps,reset-delays-us = <0 10000 1000000>;
146	snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
147	tx_delay = <0x30>;
148	rx_delay = <0x10>;
149	status = "ok";
150};
151
152&hdmi {
153	ddc-i2c-bus = <&i2c5>;
154	status = "okay";
155};
156
157&i2c0 {
158	clock-frequency = <400000>;
159	status = "okay";
160
161	vdd_cpu: syr827@40 {
162		compatible = "silergy,syr827";
163		fcs,suspend-voltage-selector = <1>;
164		reg = <0x40>;
165		regulator-name = "vdd_cpu";
166		regulator-min-microvolt = <850000>;
167		regulator-max-microvolt = <1350000>;
168		regulator-always-on;
169		regulator-boot-on;
170		regulator-enable-ramp-delay = <300>;
171		regulator-ramp-delay = <8000>;
172		vin-supply = <&vcc_sys>;
173	};
174
175	vdd_gpu: syr828@41 {
176		compatible = "silergy,syr828";
177		fcs,suspend-voltage-selector = <1>;
178		reg = <0x41>;
179		regulator-name = "vdd_gpu";
180		regulator-min-microvolt = <850000>;
181		regulator-max-microvolt = <1350000>;
182		regulator-always-on;
183		vin-supply = <&vcc_sys>;
184	};
185
186	hym8563: hym8563@51 {
187		compatible = "haoyu,hym8563";
188		reg = <0x51>;
189		#clock-cells = <0>;
190		clock-frequency = <32768>;
191		clock-output-names = "xin32k";
192	};
193
194	act8846: act8846@5a {
195		compatible = "active-semi,act8846";
196		reg = <0x5a>;
197		pinctrl-names = "default";
198		pinctrl-0 = <&pmic_vsel>;
199		system-power-controller;
200
201		vp1-supply = <&vcc_sys>;
202		vp2-supply = <&vcc_sys>;
203		vp3-supply = <&vcc_sys>;
204		vp4-supply = <&vcc_sys>;
205		inl1-supply = <&vcc_sys>;
206		inl2-supply = <&vcc_sys>;
207		inl3-supply = <&vcc_20>;
208
209		regulators {
210			vcc_ddr: REG1 {
211				regulator-name = "vcc_ddr";
212				regulator-always-on;
213			};
214
215			vcc_io: REG2 {
216				regulator-name = "vcc_io";
217				regulator-min-microvolt = <3300000>;
218				regulator-max-microvolt = <3300000>;
219				regulator-always-on;
220			};
221
222			vdd_log: REG3 {
223				regulator-name = "vdd_log";
224				regulator-min-microvolt = <1100000>;
225				regulator-max-microvolt = <1100000>;
226				regulator-always-on;
227			};
228
229			vcc_20: REG4 {
230				regulator-name = "vcc_20";
231				regulator-min-microvolt = <2000000>;
232				regulator-max-microvolt = <2000000>;
233				regulator-always-on;
234			};
235
236			vccio_sd: REG5 {
237				regulator-name = "vccio_sd";
238				regulator-min-microvolt = <3300000>;
239				regulator-max-microvolt = <3300000>;
240				regulator-always-on;
241			};
242
243			vdd10_lcd: REG6 {
244				regulator-name = "vdd10_lcd";
245				regulator-min-microvolt = <1000000>;
246				regulator-max-microvolt = <1000000>;
247				regulator-always-on;
248			};
249
250			vcca_18: REG7 {
251				regulator-name = "vcca_18";
252				regulator-min-microvolt = <1800000>;
253				regulator-max-microvolt = <1800000>;
254			};
255
256			vcca_33: REG8 {
257				regulator-name = "vcca_33";
258				regulator-min-microvolt = <3300000>;
259				regulator-max-microvolt = <3300000>;
260			};
261
262			vcc_lan: REG9 {
263				regulator-name = "vcc_lan";
264				regulator-min-microvolt = <3300000>;
265				regulator-max-microvolt = <3300000>;
266			};
267
268			vdd_10: REG10 {
269				regulator-name = "vdd_10";
270				regulator-min-microvolt = <1000000>;
271				regulator-max-microvolt = <1000000>;
272				regulator-always-on;
273			};
274
275			vcc_18: REG11 {
276				regulator-name = "vcc_18";
277				regulator-min-microvolt = <1800000>;
278				regulator-max-microvolt = <1800000>;
279				regulator-always-on;
280			};
281
282			vcc18_lcd: REG12 {
283				regulator-name = "vcc18_lcd";
284				regulator-min-microvolt = <1800000>;
285				regulator-max-microvolt = <1800000>;
286				regulator-always-on;
287			};
288		};
289	};
290};
291
292&i2c1 {
293	status = "okay";
294};
295
296&i2c2 {
297	status = "okay";
298};
299
300&i2c4 {
301	status = "okay";
302};
303
304&i2c5 {
305	status = "okay";
306};
307
308&io_domains {
309	status = "okay";
310
311	audio-supply = <&vcca_33>;
312	flash0-supply = <&vcc_flash>;
313	flash1-supply = <&vcc_lan>;
314	gpio30-supply = <&vcc_io>;
315	gpio1830-supply = <&vcc_io>;
316	lcdc-supply = <&vcc_io>;
317	sdcard-supply = <&vccio_sd>;
318	wifi-supply = <&vcc_18>;
319};
320
321&pinctrl {
322	pcfg_output_high: pcfg-output-high {
323		output-high;
324	};
325
326	pcfg_output_low: pcfg-output-low {
327		output-low;
328	};
329
330	pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
331		bias-pull-up;
332		drive-strength = <12>;
333	};
334
335	act8846 {
336		pmic_int: pmic-int {
337			rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
338		};
339
340		pmic_sleep: pmic-sleep {
341			rockchip,pins = <0 0 RK_FUNC_GPIO &pcfg_output_low>;
342		};
343
344		pmic_vsel: pmic-vsel {
345			rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>;
346		};
347	};
348
349	gmac {
350		phy_int: phy-int {
351			rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
352		};
353
354		phy_pmeb: phy-pmeb {
355			rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
356		};
357
358		phy_rst: phy-rst {
359			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
360		};
361	};
362
363	sdmmc {
364		/*
365		 * Default drive strength isn't enough to achieve even
366		 * high-speed mode on firefly board so bump up to 12ma.
367		 */
368		sdmmc_bus4: sdmmc-bus4 {
369			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
370					<6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
371					<6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
372					<6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
373		};
374
375		sdmmc_clk: sdmmc-clk {
376			rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
377		};
378
379		sdmmc_cmd: sdmmc-cmd {
380			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
381		};
382
383		sdmmc_pwr: sdmmc-pwr {
384			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
385		};
386	};
387
388	usb_host {
389		host_vbus_drv: host-vbus-drv {
390			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
391		};
392	};
393};
394
395&saradc {
396	vref-supply = <&vcc_18>;
397	status = "okay";
398};
399
400&sdmmc {
401	bus-width = <4>;
402	cap-mmc-highspeed;
403	cap-sd-highspeed;
404	card-detect-delay = <200>;
405	disable-wp;
406	pinctrl-names = "default";
407	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
408	vmmc-supply = <&vcc_sd>;
409	vqmmc-supply = <&vccio_sd>;
410	status = "okay";
411};
412
413&tsadc {
414	rockchip,hw-tshut-mode = <0>;
415	rockchip,hw-tshut-polarity = <0>;
416	status = "okay";
417};
418
419&uart2 {
420	status = "okay";
421};
422
423&uart3 {
424	status = "okay";
425};
426
427&usbphy {
428	status = "okay";
429};
430
431&usb_host1 {
432	status = "okay";
433};
434
435&usb_otg {
436	/*
437	 * The otg controller is the only system power source,
438	 * so needs to always stay in device mode.
439	 */
440	dr_mode = "peripheral";
441	status = "okay";
442};
443
444&vopb {
445	status = "okay";
446};
447
448&vopb_mmu {
449	status = "okay";
450};
451
452&vopl {
453	status = "okay";
454};
455
456&vopl_mmu {
457	status = "okay";
458};
459
460&wdt {
461	status = "okay";
462};