// SPDX-License-Identifier: GPL-2.0+
/*
 * (C) Copyright 2016 Rockchip Electronics Co., Ltd
 */

/dts-v1/;
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include "rk3399.dtsi"

/ {
	model = "Rockchip RK3399 Evaluation Board";
	compatible = "rockchip,rk3399-evb", "rockchip,rk3399",
		     "google,rk3399evb-rev2";

	chosen {
		stdout-path = &uart2;
	};

	vdd_center: vdd-center {
		compatible = "pwm-regulator";
		pwms = <&pwm3 0 25000 1>;
		regulator-name = "vdd_center";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <1400000>;
		regulator-init-microvolt = <950000>;
		regulator-always-on;
		regulator-boot-on;
		status = "okay";
	};

	vccsys: vccsys {
		compatible = "regulator-fixed";
		regulator-name = "vccsys";
		regulator-boot-on;
		regulator-always-on;
	};

	vcc3v3_sys: vcc3v3-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	vcc_phy: vcc-phy-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc_phy";
		regulator-always-on;
		regulator-boot-on;
	};

	vcc5v0_host: vcc5v0-host-en {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_host";
		gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
	};

	vcc5v0_typec0: vcc5v0-typec0-en {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_typec0";
		gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
	};

	vcc5v0_typec1: vcc5v0-typec1-en {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_typec1";
		gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
	};

	clkin_gmac: external-gmac-clock {
		compatible = "fixed-clock";
		clock-frequency = <125000000>;
		clock-output-names = "clkin_gmac";
		#clock-cells = <0>;
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		power-supply = <&vccsys>;
		enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
		brightness-levels = <
			  0   1   2   3   4   5   6   7
			  8   9  10  11  12  13  14  15
			 16  17  18  19  20  21  22  23
			 24  25  26  27  28  29  30  31
			 32  33  34  35  36  37  38  39
			 40  41  42  43  44  45  46  47
			 48  49  50  51  52  53  54  55
			 56  57  58  59  60  61  62  63
			 64  65  66  67  68  69  70  71
			 72  73  74  75  76  77  78  79
			 80  81  82  83  84  85  86  87
			 88  89  90  91  92  93  94  95
			 96  97  98  99 100 101 102 103
			104 105 106 107 108 109 110 111
			112 113 114 115 116 117 118 119
			120 121 122 123 124 125 126 127
			128 129 130 131 132 133 134 135
			136 137 138 139 140 141 142 143
			144 145 146 147 148 149 150 151
			152 153 154 155 156 157 158 159
			160 161 162 163 164 165 166 167
			168 169 170 171 172 173 174 175
			176 177 178 179 180 181 182 183
			184 185 186 187 188 189 190 191
			192 193 194 195 196 197 198 199
			200 201 202 203 204 205 206 207
			208 209 210 211 212 213 214 215
			216 217 218 219 220 221 222 223
			224 225 226 227 228 229 230 231
			232 233 234 235 236 237 238 239
			240 241 242 243 244 245 246 247
			248 249 250 251 252 253 254 255>;
		default-brightness-level = <200>;
		pwms = <&pwm0 0 25000 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&pwm0_pin>;
		pwm-delay-us = <10000>;
		status = "disabled";
	};

	panel:panel {
		compatible = "simple-panel";
		power-supply = <&vcc33_lcd>;
		backlight = <&backlight>;
		/*enable-gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>;*/
		status = "disabled";
	};
};

&emmc_phy {
	status = "okay";
};

&pwm0 {
	status = "okay";
};

&pwm2 {
	status = "okay";
};

&pwm3 {
	status = "okay";
};

&saradc {
	status = "okay";
};

&sdmmc {
	bus-width = <4>;
	status = "okay";
};

&sdhci {
	bus-width = <8>;
	mmc-hs400-1_8v;
	mmc-hs400-enhanced-strobe;
	non-removable;
	status = "okay";
};

&uart2 {
	status = "okay";
};

&usb_host0_ehci {
	status = "okay";
};

&usb_host0_ohci {
	status = "okay";
};

&usbdrd3_0 {
	vbus-supply = <&vcc5v0_typec0>;
	status = "okay";
};

&usb_host1_ehci {
	status = "okay";
};

&usb_host1_ohci {
	status = "okay";
};

&usbdrd3_1 {
	vbus-supply = <&vcc5v0_typec1>;
	status = "okay";
};

&i2c0 {
	status = "okay";
	clock-frequency = <400000>;
	i2c-scl-falling-time-ns = <50>;
	i2c-scl-rising-time-ns = <100>;
	u-boot,dm-pre-reloc;

	rk808: pmic@1b {
		compatible = "rockchip,rk808";
		clock-output-names = "xin32k", "wifibt_32kin";
		interrupt-parent = <&gpio0>;
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int_l>;
		reg = <0x1b>;
		rockchip,system-power-controller;
		#clock-cells = <1>;
		u-boot,dm-pre-reloc;
		status = "okay";

		vcc12-supply = <&vcc3v3_sys>;

		regulators {
			vcc33_lcd: SWITCH_REG2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-name = "vcc33_lcd";
			};
		};
	};
};

&mipi_dsi {
	status = "disabled";
	rockchip,panel = <&panel>;
	display-timings {
		timing0 {
		bits-per-pixel = <24>;
		clock-frequency = <160000000>;
		hfront-porch = <120>;
		hsync-len = <20>;
		hback-porch = <21>;
		hactive = <1200>;
		vfront-porch = <21>;
		vsync-len = <3>;
		vback-porch = <18>;
		vactive = <1920>;
		hsync-active = <0>;
		vsync-active = <0>;
		de-active = <1>;
		pixelclk-active = <0>;
		};
	};
};

&pinctrl {
	pmic {
		pmic_int_l: pmic-int-l {
			rockchip,pins =
				<1 21 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		pmic_dvs2: pmic-dvs2 {
			rockchip,pins =
				<1 18 RK_FUNC_GPIO &pcfg_pull_down>;
		};
	};
};

&gmac {
        phy-supply = <&vcc_phy>;
	phy-mode = "rgmii";
	clock_in_out = "input";
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
	snps,reset-active-low;
	snps,reset-delays-us = <0 10000 50000>;
	assigned-clocks = <&cru SCLK_RMII_SRC>;
	assigned-clock-parents = <&clkin_gmac>;
	pinctrl-names = "default";
	pinctrl-0 = <&rgmii_pins>;
	tx_delay = <0x28>;
	rx_delay = <0x11>;
	status = "okay";
};
