Linux Audio

Check our new training course

Real-Time Linux with PREEMPT_RT training

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