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

/dts-v1/;
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include "rk3399.dtsi"
#include "rk3399-sdram-lpddr3-4GB-1600.dtsi"

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

	chosen {
		stdout-path = &uart2;
		u-boot,spl-boot-order = \
			&sdhci, &sdmmc;
	};

	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 {
	u-boot,dm-pre-reloc;
	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";
};

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

&usb_host1_ehci {
	status = "okay";
};

&usb_host1_ohci {
	status = "okay";
};

&dwc3_typec1 {
	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 = <0x10>;
	rx_delay = <0x10>;
	status = "okay";
};
