Linux Audio

Check our new training course

Yocto / OpenEmbedded training

Feb 10-13, 2025
Register
Loading...
v4.17
 
  1/*
  2 * Device tree file for Firefly Rockchip RK3288 Core board
  3 * Copyright (c) 2016 Randy Li <ayaka@soulik.info>
  4 *
  5 * This file is dual-licensed: you can use it either under the terms
  6 * of the GPL or the X11 license, at your option. Note that this dual
  7 * licensing only applies to this file, and not this project as a
  8 * whole.
  9 *
 10 *  a) This file is free software; you can redistribute it and/or
 11 *     modify it under the terms of the GNU General Public License as
 12 *     published by the Free Software Foundation; either version 2 of the
 13 *     License, or (at your option) any later version.
 14 *
 15 *     This file is distributed in the hope that it will be useful,
 16 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 17 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 18 *     GNU General Public License for more details.
 19 *
 20 * Or, alternatively,
 21 *
 22 *  b) Permission is hereby granted, free of charge, to any person
 23 *     obtaining a copy of this software and associated documentation
 24 *     files (the "Software"), to deal in the Software without
 25 *     restriction, including without limitation the rights to use,
 26 *     copy, modify, merge, publish, distribute, sublicense, and/or
 27 *     sell copies of the Software, and to permit persons to whom the
 28 *     Software is furnished to do so, subject to the following
 29 *     conditions:
 30 *
 31 *     The above copyright notice and this permission notice shall be
 32 *     included in all copies or substantial portions of the Software.
 33 *
 34 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 35 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 36 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 37 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 38 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 39 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 40 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 41 *     OTHER DEALINGS IN THE SOFTWARE.
 42 */
 43
 44/dts-v1/;
 45#include "rk3288-firefly-reload-core.dtsi"
 46
 47/ {
 48	model = "Firefly-RK3288-reload";
 49	compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
 50
 51	adc-keys {
 52		compatible = "adc-keys";
 53		io-channels = <&saradc 1>;
 54		io-channel-names = "buttons";
 55		keyup-threshold-microvolt = <1800000>;
 56
 57		button-recovery {
 58			label = "Recovery";
 59			linux,code = <KEY_VENDOR>;
 60			press-threshold-microvolt = <0>;
 61		};
 62	};
 63
 64	gpio-keys {
 65		compatible = "gpio-keys";
 66
 67		power {
 68			wakeup-source;
 69			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 70			label = "GPIO Power";
 71			linux,code = <KEY_POWER>;
 72			pinctrl-names = "default";
 73			pinctrl-0 = <&pwr_key>;
 74		};
 75	};
 76
 77	ir-receiver {
 78		compatible = "gpio-ir-receiver";
 79		gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
 80	};
 81
 82	leds {
 83		compatible = "gpio-leds";
 84
 85		power {
 86			gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>;
 87			label = "firefly:blue:power";
 88			pinctrl-names = "default";
 89			pinctrl-0 = <&power_led>;
 90			panic-indicator;
 91		};
 92
 93		work {
 94			gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
 95			label = "firefly:blue:user";
 96			linux,default-trigger = "rc-feedback";
 97			pinctrl-names = "default";
 98			pinctrl-0 = <&work_led>;
 99		};
100	};
101
102	sdio_pwrseq: sdio-pwrseq {
103		compatible = "mmc-pwrseq-simple";
104		clocks = <&hym8563>;
105		clock-names = "ext_clock";
106		pinctrl-names = "default";
107		pinctrl-0 = <&wifi_enable>;
108		reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
109	};
110
111	sound {
112		compatible = "simple-audio-card";
113		simple-audio-card,name = "SPDIF";
114		simple-audio-card,dai-link@1 {  /* S/PDIF - S/PDIF */
115			cpu { sound-dai = <&spdif>; };
116			codec { sound-dai = <&spdif_out>; };
117		};
118	};
119
120	spdif_out: spdif-out {
121		compatible = "linux,spdif-dit";
122		#sound-dai-cells = <0>;
123	};
124
125	vcc_host_5v: usb-host-regulator {
126		compatible = "regulator-fixed";
127		enable-active-high;
128		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
129		pinctrl-names = "default";
130		pinctrl-0 = <&host_vbus_drv>;
131		regulator-name = "vcc_host_5v";
132		regulator-min-microvolt = <5000000>;
133		regulator-max-microvolt = <5000000>;
134		regulator-always-on;
135		vin-supply = <&vcc_5v>;
136	};
137
138	vcc_5v: vcc_sys: vsys-regulator {
139		compatible = "regulator-fixed";
140		regulator-name = "vcc_5v";
141		regulator-min-microvolt = <5000000>;
142		regulator-max-microvolt = <5000000>;
143		regulator-always-on;
144		regulator-boot-on;
145	};
146
147	vcc_sd: sdmmc-regulator {
148		compatible = "regulator-fixed";
149		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
150		pinctrl-names = "default";
151		pinctrl-0 = <&sdmmc_pwr>;
152		regulator-name = "vcc_sd";
153		regulator-min-microvolt = <3300000>;
154		regulator-max-microvolt = <3300000>;
155		startup-delay-us = <100000>;
156		vin-supply = <&vcc_io>;
157	};
158
159	vcc_otg_5v: usb-otg-regulator {
160		compatible = "regulator-fixed";
161		enable-active-high;
162		gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
163		pinctrl-names = "default";
164		pinctrl-0 = <&otg_vbus_drv>;
165		regulator-name = "vcc_otg_5v";
166		regulator-min-microvolt = <5000000>;
167		regulator-max-microvolt = <5000000>;
168		regulator-always-on;
169		vin-supply = <&vcc_5v>;
170	};
171
172	dovdd_1v8: dovdd-1v8-regulator {
173		compatible = "regulator-fixed";
174		enable-active-high;
175		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
176		pinctrl-names = "default";
177		pinctrl-0 = <&dvp_pwr>;
178		regulator-name = "dovdd_1v8";
179		regulator-min-microvolt = <1800000>;
180		regulator-max-microvolt = <1800000>;
181		vin-supply = <&vcc_io>;
182	};
183
184	vcc28_dvp: vcc28-dvp-regulator {
185		compatible = "regulator-fixed";
186		enable-active-high;
187		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
188		pinctrl-names = "default";
189		pinctrl-0 = <&dvp_pwr>;
190		regulator-name = "vcc28_dvp";
191		regulator-min-microvolt = <2800000>;
192		regulator-max-microvolt = <2800000>;
193		vin-supply = <&vcc_io>;
194	};
195
196	af_28: af_28-regulator {
197		compatible = "regulator-fixed";
198		enable-active-high;
199		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
200		pinctrl-names = "default";
201		pinctrl-0 = <&dvp_pwr>;
202		regulator-name = "af_28";
203		regulator-min-microvolt = <2800000>;
204		regulator-max-microvolt = <2800000>;
205		vin-supply = <&vcc_io>;
206	};
207
208	dvdd_1v2: af_28-regulator {
209		compatible = "regulator-fixed";
210		enable-active-high;
211		gpio = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>;
212		pinctrl-names = "default";
213		pinctrl-0 = <&cif_pwr>;
214		regulator-name = "dvdd_1v2";
215		regulator-min-microvolt = <1200000>;
216		regulator-max-microvolt = <1200000>;
217		vin-supply = <&vcc_io>;
218	};
219
220	vbat_wl: wifi-regulator {
221		compatible = "regulator-fixed";
222		regulator-name = "vbat_wl";
223		regulator-min-microvolt = <3300000>;
224		regulator-max-microvolt = <3300000>;
225		vin-supply = <&vcc_io>;
226	};
227};
228
229&hdmi {
230	ddc-i2c-bus = <&i2c5>;
231	pinctrl-names = "default";
232	pinctrl-0 = <&hdmi_cec_c0>;
233	status = "okay";
234};
235
236&i2c0 {
237	hym8563: hym8563@51 {
238		compatible = "haoyu,hym8563";
239		reg = <0x51>;
240		#clock-cells = <0>;
241		clock-frequency = <32768>;
242		clock-output-names = "xin32k";
243		interrupt-parent = <&gpio7>;
244		interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
245		pinctrl-names = "default";
246		pinctrl-0 = <&rtc_int>;
247	};
248};
249
250&i2c2 {
251	status = "okay";
252
253	codec: es8328@10 {
254		compatible = "everest,es8328";
255		DVDD-supply = <&vcca_33>;
256		AVDD-supply = <&vcca_33>;
257		PVDD-supply = <&vcca_33>;
258		HPVDD-supply = <&vcca_33>;
259		clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
260		clock-names = "i2s_hclk", "i2s_clk";
261		reg = <0x10>;
262	};
263};
264
265&i2c5 {
266	status = "okay";
267};
268
269&i2s {
270	status = "okay";
271};
272
273&saradc {
 
274	status = "okay";
275};
276
277&sdmmc {
278	bus-width = <4>;
279	cap-mmc-highspeed;
280	cap-sd-highspeed;
281	card-detect-delay = <200>;
282	disable-wp;
283	pinctrl-names = "default";
284	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
285	vmmc-supply = <&vcc_sd>;
286	vqmmc-supply = <&vccio_sd>;
287	status = "okay";
288};
289
290&sdio0 {
291	bus-width = <4>;
292	cap-sd-highspeed;
293	cap-sdio-irq;
294	disable-wp;
295	mmc-pwrseq = <&sdio_pwrseq>;
296	non-removable;
297	pinctrl-names = "default";
298	pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>;
299	sd-uhs-sdr12;
300	sd-uhs-sdr25;
301	sd-uhs-sdr50;
302	sd-uhs-ddr50;
303	vmmc-supply = <&vbat_wl>;
304	vqmmc-supply = <&vccio_wl>;
305	status = "okay";
306};
307
308&spdif {
309	status = "okay";
310};
311
312&uart0 {
313	pinctrl-names = "default";
314	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
315	status = "okay";
316};
317
318&uart1 {
319	status = "okay";
320};
321
322&uart2 {
323	status = "okay";
324};
325
326&uart3 {
327	status = "okay";
328};
329
330&usbphy {
331	status = "okay";
332};
333
334&usb_host1 {
335	pinctrl-names = "default";
336	pinctrl-0 = <&usbhub_rst>;
337	status = "okay";
338};
339
340&usb_otg {
341	status = "okay";
342};
343
344&pinctrl {
345	ir {
346		ir_int: ir-int {
347			rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
348		};
349	};
350
351	dvp {
352		dvp_pwr: dvp-pwr {
353			rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_none>;
354		};
355
356		cif_pwr: cif-pwr {
357			rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_none>;
358		};
359	};
360
361	hym8563 {
362		rtc_int: rtc-int {
363			rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>;
364		};
365	};
366
367	keys {
368		pwr_key: pwr-key {
369			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
370		};
371	};
372
373	leds {
374		power_led: power-led {
375			rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>;
376		};
377
378		work_led: work-led {
379			rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
380		};
381	};
382
383	sdmmc {
384		/*
385		 * Default drive strength isn't enough to achieve even
386		 * high-speed mode on firefly board so bump up to 12ma.
387		 */
388		sdmmc_bus4: sdmmc-bus4 {
389			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
390					<6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
391					<6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
392					<6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
393		};
394
395		sdmmc_clk: sdmmc-clk {
396			rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
397		};
398
399		sdmmc_cmd: sdmmc-cmd {
400			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
401		};
402
403		sdmmc_pwr: sdmmc-pwr {
404			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
405		};
406	};
407
408	sdio {
409		wifi_enable: wifi-enable {
410			rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
411		};
412	};
413
414	usb_host {
415		host_vbus_drv: host-vbus-drv {
416			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
417		};
418
419		usbhub_rst: usbhub-rst {
420			rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>;
421		};
422	};
423
424	usb_otg {
425		otg_vbus_drv: otg-vbus-drv {
426			rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
427		};
428	};
429};
v5.14.15
  1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2/*
  3 * Device tree file for Firefly Rockchip RK3288 Core board
  4 * Copyright (c) 2016 Randy Li <ayaka@soulik.info>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  5 */
  6
  7/dts-v1/;
  8#include "rk3288-firefly-reload-core.dtsi"
  9
 10/ {
 11	model = "Firefly-RK3288-reload";
 12	compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
 13
 14	adc-keys {
 15		compatible = "adc-keys";
 16		io-channels = <&saradc 1>;
 17		io-channel-names = "buttons";
 18		keyup-threshold-microvolt = <1800000>;
 19
 20		button-recovery {
 21			label = "Recovery";
 22			linux,code = <KEY_VENDOR>;
 23			press-threshold-microvolt = <0>;
 24		};
 25	};
 26
 27	gpio-keys {
 28		compatible = "gpio-keys";
 29
 30		power {
 31			wakeup-source;
 32			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
 33			label = "GPIO Power";
 34			linux,code = <KEY_POWER>;
 35			pinctrl-names = "default";
 36			pinctrl-0 = <&pwr_key>;
 37		};
 38	};
 39
 40	ir-receiver {
 41		compatible = "gpio-ir-receiver";
 42		gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
 43	};
 44
 45	leds {
 46		compatible = "gpio-leds";
 47
 48		power_led: led-0 {
 49			gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>;
 50			label = "firefly:blue:power";
 51			pinctrl-names = "default";
 52			pinctrl-0 = <&power_led_pin>;
 53			panic-indicator;
 54		};
 55
 56		work_led: led-1 {
 57			gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
 58			label = "firefly:blue:user";
 59			linux,default-trigger = "rc-feedback";
 60			pinctrl-names = "default";
 61			pinctrl-0 = <&work_led_pin>;
 62		};
 63	};
 64
 65	sdio_pwrseq: sdio-pwrseq {
 66		compatible = "mmc-pwrseq-simple";
 67		clocks = <&hym8563>;
 68		clock-names = "ext_clock";
 69		pinctrl-names = "default";
 70		pinctrl-0 = <&wifi_enable>;
 71		reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
 72	};
 73
 74	sound {
 75		compatible = "simple-audio-card";
 76		simple-audio-card,name = "SPDIF";
 77		simple-audio-card,dai-link@1 {  /* S/PDIF - S/PDIF */
 78			cpu { sound-dai = <&spdif>; };
 79			codec { sound-dai = <&spdif_out>; };
 80		};
 81	};
 82
 83	spdif_out: spdif-out {
 84		compatible = "linux,spdif-dit";
 85		#sound-dai-cells = <0>;
 86	};
 87
 88	vcc_host_5v: usb-host-regulator {
 89		compatible = "regulator-fixed";
 90		enable-active-high;
 91		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
 92		pinctrl-names = "default";
 93		pinctrl-0 = <&host_vbus_drv>;
 94		regulator-name = "vcc_host_5v";
 95		regulator-min-microvolt = <5000000>;
 96		regulator-max-microvolt = <5000000>;
 97		regulator-always-on;
 98		vin-supply = <&vcc_5v>;
 99	};
100
101	vcc_5v: vcc_sys: vsys-regulator {
102		compatible = "regulator-fixed";
103		regulator-name = "vcc_5v";
104		regulator-min-microvolt = <5000000>;
105		regulator-max-microvolt = <5000000>;
106		regulator-always-on;
107		regulator-boot-on;
108	};
109
110	vcc_sd: sdmmc-regulator {
111		compatible = "regulator-fixed";
112		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
113		pinctrl-names = "default";
114		pinctrl-0 = <&sdmmc_pwr>;
115		regulator-name = "vcc_sd";
116		regulator-min-microvolt = <3300000>;
117		regulator-max-microvolt = <3300000>;
118		startup-delay-us = <100000>;
119		vin-supply = <&vcc_io>;
120	};
121
122	vcc_otg_5v: usb-otg-regulator {
123		compatible = "regulator-fixed";
124		enable-active-high;
125		gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
126		pinctrl-names = "default";
127		pinctrl-0 = <&otg_vbus_drv>;
128		regulator-name = "vcc_otg_5v";
129		regulator-min-microvolt = <5000000>;
130		regulator-max-microvolt = <5000000>;
131		regulator-always-on;
132		vin-supply = <&vcc_5v>;
133	};
134
135	dovdd_1v8: dovdd-1v8-regulator {
136		compatible = "regulator-fixed";
137		enable-active-high;
138		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
139		pinctrl-names = "default";
140		pinctrl-0 = <&dvp_pwr>;
141		regulator-name = "dovdd_1v8";
142		regulator-min-microvolt = <1800000>;
143		regulator-max-microvolt = <1800000>;
144		vin-supply = <&vcc_io>;
145	};
146
147	vcc28_dvp: vcc28-dvp-regulator {
148		compatible = "regulator-fixed";
149		enable-active-high;
150		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
151		pinctrl-names = "default";
152		pinctrl-0 = <&dvp_pwr>;
153		regulator-name = "vcc28_dvp";
154		regulator-min-microvolt = <2800000>;
155		regulator-max-microvolt = <2800000>;
156		vin-supply = <&vcc_io>;
157	};
158
159	af_28: af_28-regulator {
160		compatible = "regulator-fixed";
161		enable-active-high;
162		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
163		pinctrl-names = "default";
164		pinctrl-0 = <&dvp_pwr>;
165		regulator-name = "af_28";
166		regulator-min-microvolt = <2800000>;
167		regulator-max-microvolt = <2800000>;
168		vin-supply = <&vcc_io>;
169	};
170
171	dvdd_1v2: af_28-regulator {
172		compatible = "regulator-fixed";
173		enable-active-high;
174		gpio = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>;
175		pinctrl-names = "default";
176		pinctrl-0 = <&cif_pwr>;
177		regulator-name = "dvdd_1v2";
178		regulator-min-microvolt = <1200000>;
179		regulator-max-microvolt = <1200000>;
180		vin-supply = <&vcc_io>;
181	};
182
183	vbat_wl: wifi-regulator {
184		compatible = "regulator-fixed";
185		regulator-name = "vbat_wl";
186		regulator-min-microvolt = <3300000>;
187		regulator-max-microvolt = <3300000>;
188		vin-supply = <&vcc_io>;
189	};
190};
191
192&hdmi {
193	ddc-i2c-bus = <&i2c5>;
194	pinctrl-names = "default";
195	pinctrl-0 = <&hdmi_cec_c0>;
196	status = "okay";
197};
198
199&i2c0 {
200	hym8563: hym8563@51 {
201		compatible = "haoyu,hym8563";
202		reg = <0x51>;
203		#clock-cells = <0>;
204		clock-frequency = <32768>;
205		clock-output-names = "xin32k";
206		interrupt-parent = <&gpio7>;
207		interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
208		pinctrl-names = "default";
209		pinctrl-0 = <&rtc_int>;
210	};
211};
212
213&i2c2 {
214	status = "okay";
215
216	codec: es8328@10 {
217		compatible = "everest,es8328";
218		DVDD-supply = <&vcca_33>;
219		AVDD-supply = <&vcca_33>;
220		PVDD-supply = <&vcca_33>;
221		HPVDD-supply = <&vcca_33>;
222		clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
223		clock-names = "i2s_hclk", "i2s_clk";
224		reg = <0x10>;
225	};
226};
227
228&i2c5 {
229	status = "okay";
230};
231
232&i2s {
233	status = "okay";
234};
235
236&saradc {
237	vref-supply = <&vcc_18>;
238	status = "okay";
239};
240
241&sdmmc {
242	bus-width = <4>;
243	cap-mmc-highspeed;
244	cap-sd-highspeed;
245	card-detect-delay = <200>;
246	disable-wp;
247	pinctrl-names = "default";
248	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
249	vmmc-supply = <&vcc_sd>;
250	vqmmc-supply = <&vccio_sd>;
251	status = "okay";
252};
253
254&sdio0 {
255	bus-width = <4>;
256	cap-sd-highspeed;
257	cap-sdio-irq;
 
258	mmc-pwrseq = <&sdio_pwrseq>;
259	non-removable;
260	pinctrl-names = "default";
261	pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>;
262	sd-uhs-sdr12;
263	sd-uhs-sdr25;
264	sd-uhs-sdr50;
265	sd-uhs-ddr50;
266	vmmc-supply = <&vbat_wl>;
267	vqmmc-supply = <&vccio_wl>;
268	status = "okay";
269};
270
271&spdif {
272	status = "okay";
273};
274
275&uart0 {
276	pinctrl-names = "default";
277	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
278	status = "okay";
279};
280
281&uart1 {
282	status = "okay";
283};
284
285&uart2 {
286	status = "okay";
287};
288
289&uart3 {
290	status = "okay";
291};
292
293&usbphy {
294	status = "okay";
295};
296
297&usb_host1 {
298	pinctrl-names = "default";
299	pinctrl-0 = <&usbhub_rst>;
300	status = "okay";
301};
302
303&usb_otg {
304	status = "okay";
305};
306
307&pinctrl {
308	ir {
309		ir_int: ir-int {
310			rockchip,pins = <7 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
311		};
312	};
313
314	dvp {
315		dvp_pwr: dvp-pwr {
316			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
317		};
318
319		cif_pwr: cif-pwr {
320			rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
321		};
322	};
323
324	hym8563 {
325		rtc_int: rtc-int {
326			rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
327		};
328	};
329
330	keys {
331		pwr_key: pwr-key {
332			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
333		};
334	};
335
336	leds {
337		power_led_pin: power-led-pin {
338			rockchip,pins = <8 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
339		};
340
341		work_led_pin: work-led-pin {
342			rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
343		};
344	};
345
346	sdmmc {
347		/*
348		 * Default drive strength isn't enough to achieve even
349		 * high-speed mode on firefly board so bump up to 12ma.
350		 */
351		sdmmc_bus4: sdmmc-bus4 {
352			rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
353					<6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
354					<6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
355					<6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
356		};
357
358		sdmmc_clk: sdmmc-clk {
359			rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
360		};
361
362		sdmmc_cmd: sdmmc-cmd {
363			rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
364		};
365
366		sdmmc_pwr: sdmmc-pwr {
367			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
368		};
369	};
370
371	sdio {
372		wifi_enable: wifi-enable {
373			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
374		};
375	};
376
377	usb_host {
378		host_vbus_drv: host-vbus-drv {
379			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
380		};
381
382		usbhub_rst: usbhub-rst {
383			rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>;
384		};
385	};
386
387	usb_otg {
388		otg_vbus_drv: otg-vbus-drv {
389			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
390		};
391	};
392};