1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
4 */
5
6/dts-v1/;
7#include "rk3308.dtsi"
8
9/ {
10	model = "Firefly ROC-RK3308-CC board";
11	compatible = "firefly,roc-rk3308-cc", "rockchip,rk3308";
12
13	aliases {
14		mmc0 = &sdmmc;
15		mmc1 = &emmc;
16	};
17
18	chosen {
19		stdout-path = "serial2:1500000n8";
20	};
21
22	ir_rx {
23		compatible = "gpio-ir-receiver";
24		gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
25		pinctrl-names = "default";
26		pinctrl-0 = <&ir_recv_pin>;
27	};
28
29	ir_tx {
30		compatible = "pwm-ir-tx";
31		pwms = <&pwm5 0 25000 0>;
32	};
33
34	leds {
35		compatible = "gpio-leds";
36
37		power_led: led-0 {
38			label = "firefly:red:power";
39			linux,default-trigger = "ir-power-click";
40			default-state = "on";
41			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
42		};
43
44		user_led: led-1 {
45			label = "firefly:blue:user";
46			linux,default-trigger = "ir-user-click";
47			default-state = "off";
48			gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_HIGH>;
49		};
50	};
51
52	typec_vcc5v: typec-vcc5v {
53		compatible = "regulator-fixed";
54		regulator-name = "typec_vcc5v";
55		regulator-min-microvolt = <5000000>;
56		regulator-max-microvolt = <5000000>;
57		regulator-always-on;
58		regulator-boot-on;
59	};
60
61	vcc5v0_sys: vcc5v0-sys {
62		compatible = "regulator-fixed";
63		regulator-name = "vcc5v0_sys";
64		regulator-min-microvolt = <5000000>;
65		regulator-max-microvolt = <5000000>;
66		regulator-always-on;
67		regulator-boot-on;
68		vin-supply = <&typec_vcc5v>;
69	};
70
71	vcc_io: vcc-io {
72		compatible = "regulator-fixed";
73		regulator-name = "vcc_io";
74		regulator-min-microvolt = <3300000>;
75		regulator-max-microvolt = <3300000>;
76		regulator-always-on;
77		regulator-boot-on;
78		vin-supply = <&vcc5v0_sys>;
79	};
80
81	vcc_sdmmc: vcc-sdmmc {
82		compatible = "regulator-gpio";
83		regulator-name = "vcc_sdmmc";
84		regulator-min-microvolt = <1800000>;
85		regulator-max-microvolt = <3300000>;
86		gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>;
87		states = <1800000 0x0
88			  3300000 0x1>;
89		vin-supply = <&vcc5v0_sys>;
90	};
91
92	vcc_sd: vcc-sd {
93		compatible = "regulator-fixed";
94		gpio = <&gpio4 RK_PD6 GPIO_ACTIVE_LOW>;
95		regulator-name = "vcc_sd";
96		regulator-min-microvolt = <3300000>;
97		regulator-max-microvolt = <3300000>;
98		regulator-always-on;
99		regulator-boot-on;
100		vim-supply = <&vcc_io>;
101	};
102
103	vdd_core: vdd-core {
104		compatible = "pwm-regulator";
105		pwms = <&pwm0 0 5000 1>;
106		regulator-name = "vdd_core";
107		regulator-min-microvolt = <827000>;
108		regulator-max-microvolt = <1340000>;
109		regulator-init-microvolt = <1015000>;
110		regulator-settling-time-up-us = <250>;
111		regulator-always-on;
112		regulator-boot-on;
113		pwm-supply = <&vcc5v0_sys>;
114	};
115
116	vdd_log: vdd-log {
117		compatible = "regulator-fixed";
118		regulator-name = "vdd_log";
119		regulator-min-microvolt = <1050000>;
120		regulator-max-microvolt = <1050000>;
121		regulator-always-on;
122		regulator-boot-on;
123		vin-supply = <&vcc5v0_sys>;
124	};
125};
126
127&cpu0 {
128	cpu-supply = <&vdd_core>;
129};
130
131&emmc {
132	cap-mmc-highspeed;
133	mmc-hs200-1_8v;
134	non-removable;
135	status = "okay";
136};
137
138&i2c1 {
139	clock-frequency = <400000>;
140	status = "okay";
141
142	rtc: rtc@51 {
143		compatible = "nxp,pcf8563";
144		reg = <0x51>;
145		#clock-cells = <0>;
146	};
147};
148
149&pwm5 {
150	status = "okay";
151	pinctrl-names = "active";
152	pinctrl-0 = <&pwm5_pin_pull_down>;
153};
154
155&pinctrl {
156	pinctrl-names = "default";
157	pinctrl-0 = <&rtc_32k>;
158
159	ir-receiver {
160		ir_recv_pin: ir-recv-pin  {
161			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
162		};
163	};
164
165	buttons {
166		pwr_key: pwr-key {
167			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
168		};
169	};
170};
171
172&pwm0 {
173	status = "okay";
174	pinctrl-0 = <&pwm0_pin_pull_down>;
175};
176
177&sdmmc {
178	cap-mmc-highspeed;
179	cap-sd-highspeed;
180	card-detect-delay = <300>;
181	sd-uhs-sdr25;
182	sd-uhs-sdr50;
183	sd-uhs-sdr104;
184	vmmc-supply = <&vcc_sd>;
185	vqmmc-supply = <&vcc_sdmmc>;
186	status = "okay";
187};
188
189&uart2 {
190	status = "okay";
191};
192