1777c834fSKever Yang/* 2777c834fSKever Yang * (C) Copyright 2016 Rockchip Electronics Co., Ltd 3777c834fSKever Yang * 4777c834fSKever Yang * SPDX-License-Identifier: GPL-2.0+ 5777c834fSKever Yang */ 6777c834fSKever Yang 7777c834fSKever Yang/dts-v1/; 8777c834fSKever Yang#include <dt-bindings/pwm/pwm.h> 9fd9884e2SKever Yang#include <dt-bindings/pinctrl/rockchip.h> 10777c834fSKever Yang#include "rk3399.dtsi" 11a82426e0SKever Yang#include "rk3399-sdram-lpddr3-4GB-1600.dtsi" 1248b6ef28SKever Yang#include "rk3399-u-boot.dtsi" 130313794bSKever Yang#include <linux/media-bus-format.h> 1448dac9b0SJoseph Chen#include <dt-bindings/input/input.h> 15777c834fSKever Yang 16777c834fSKever Yang/ { 17777c834fSKever Yang model = "Rockchip RK3399 Evaluation Board"; 18777c834fSKever Yang compatible = "rockchip,rk3399-evb", "rockchip,rk3399", 19777c834fSKever Yang "google,rk3399evb-rev2"; 20777c834fSKever Yang 2195351b7aSJoseph Chen /* RK3399 evb board */ 2295351b7aSJoseph Chen rk_key0 { 2348dac9b0SJoseph Chen u-boot,dm-pre-reloc; 2448dac9b0SJoseph Chen compatible = "rockchip,key"; 2548dac9b0SJoseph Chen status = "okay"; 2648dac9b0SJoseph Chen io-channels = <&saradc 1>; 2748dac9b0SJoseph Chen 28de573281SJoseph Chen vol-up-key0 { 2948dac9b0SJoseph Chen u-boot,dm-pre-reloc; 3048dac9b0SJoseph Chen linux,code = <KEY_VOLUMEUP>; 3148dac9b0SJoseph Chen label = "volume up"; 3248dac9b0SJoseph Chen rockchip,adc_value = <1>; 3348dac9b0SJoseph Chen }; 34777c834fSKever Yang }; 35777c834fSKever Yang 3695351b7aSJoseph Chen /* RK3399PRO evb board */ 3795351b7aSJoseph Chen rk_key1 { 3895351b7aSJoseph Chen u-boot,dm-pre-reloc; 3995351b7aSJoseph Chen compatible = "rockchip,key"; 4095351b7aSJoseph Chen status = "okay"; 4195351b7aSJoseph Chen io-channels = <&saradc 2>; 4295351b7aSJoseph Chen 43de573281SJoseph Chen vol-up-key1 { 4495351b7aSJoseph Chen u-boot,dm-pre-reloc; 4595351b7aSJoseph Chen linux,code = <KEY_VOLUMEUP>; 4695351b7aSJoseph Chen label = "volume up"; 4795351b7aSJoseph Chen rockchip,adc_value = <10>; 4895351b7aSJoseph Chen }; 4995351b7aSJoseph Chen }; 5095351b7aSJoseph Chen 51777c834fSKever Yang vdd_center: vdd-center { 52777c834fSKever Yang compatible = "pwm-regulator"; 5326b1edf4SKever Yang pwms = <&pwm3 0 25000 1>; 54777c834fSKever Yang regulator-name = "vdd_center"; 55777c834fSKever Yang regulator-min-microvolt = <800000>; 56777c834fSKever Yang regulator-max-microvolt = <1400000>; 57c553de90SKever Yang regulator-init-microvolt = <950000>; 58777c834fSKever Yang regulator-always-on; 59777c834fSKever Yang regulator-boot-on; 60777c834fSKever Yang status = "okay"; 61777c834fSKever Yang }; 62777c834fSKever Yang 63d3cf9eb2Seric.gao@rock-chips.com vccsys: vccsys { 64d3cf9eb2Seric.gao@rock-chips.com compatible = "regulator-fixed"; 65d3cf9eb2Seric.gao@rock-chips.com regulator-name = "vccsys"; 66d3cf9eb2Seric.gao@rock-chips.com regulator-boot-on; 67d3cf9eb2Seric.gao@rock-chips.com regulator-always-on; 68d3cf9eb2Seric.gao@rock-chips.com }; 69d3cf9eb2Seric.gao@rock-chips.com 70777c834fSKever Yang vcc3v3_sys: vcc3v3-sys { 71777c834fSKever Yang compatible = "regulator-fixed"; 72777c834fSKever Yang regulator-name = "vcc3v3_sys"; 73777c834fSKever Yang regulator-always-on; 74777c834fSKever Yang regulator-boot-on; 75777c834fSKever Yang regulator-min-microvolt = <3300000>; 76777c834fSKever Yang regulator-max-microvolt = <3300000>; 77777c834fSKever Yang }; 78777c834fSKever Yang 79777c834fSKever Yang vcc_phy: vcc-phy-regulator { 80777c834fSKever Yang compatible = "regulator-fixed"; 81777c834fSKever Yang regulator-name = "vcc_phy"; 82777c834fSKever Yang regulator-always-on; 83777c834fSKever Yang regulator-boot-on; 84777c834fSKever Yang }; 85b850d929SKever Yang 86b850d929SKever Yang vcc5v0_host: vcc5v0-host-en { 87b850d929SKever Yang compatible = "regulator-fixed"; 88b850d929SKever Yang regulator-name = "vcc5v0_host"; 89b850d929SKever Yang gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>; 908e652a33SWilliam Wu regulator-min-microvolt = <5000000>; 918e652a33SWilliam Wu regulator-max-microvolt = <5000000>; 928e652a33SWilliam Wu regulator-always-on; 938e652a33SWilliam Wu regulator-boot-on; 94b850d929SKever Yang }; 95d3cf9eb2Seric.gao@rock-chips.com 96f6f47c2eSMeng Dongyang vcc5v0_typec0: vcc5v0-typec0-en { 97f6f47c2eSMeng Dongyang compatible = "regulator-fixed"; 98f6f47c2eSMeng Dongyang regulator-name = "vcc5v0_typec0"; 99f6f47c2eSMeng Dongyang gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>; 100f6f47c2eSMeng Dongyang }; 101f6f47c2eSMeng Dongyang 102f6f47c2eSMeng Dongyang vcc5v0_typec1: vcc5v0-typec1-en { 103f6f47c2eSMeng Dongyang compatible = "regulator-fixed"; 104f6f47c2eSMeng Dongyang regulator-name = "vcc5v0_typec1"; 105f6f47c2eSMeng Dongyang gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>; 106f6f47c2eSMeng Dongyang }; 107f6f47c2eSMeng Dongyang 108fd9884e2SKever Yang clkin_gmac: external-gmac-clock { 109fd9884e2SKever Yang compatible = "fixed-clock"; 110fd9884e2SKever Yang clock-frequency = <125000000>; 111fd9884e2SKever Yang clock-output-names = "clkin_gmac"; 112fd9884e2SKever Yang #clock-cells = <0>; 113fd9884e2SKever Yang }; 114df8fe99cSEric Gao 115df8fe99cSEric Gao backlight: backlight { 116df8fe99cSEric Gao compatible = "pwm-backlight"; 117df8fe99cSEric Gao power-supply = <&vccsys>; 118df8fe99cSEric Gao enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; 119df8fe99cSEric Gao brightness-levels = < 120df8fe99cSEric Gao 0 1 2 3 4 5 6 7 121df8fe99cSEric Gao 8 9 10 11 12 13 14 15 122df8fe99cSEric Gao 16 17 18 19 20 21 22 23 123df8fe99cSEric Gao 24 25 26 27 28 29 30 31 124df8fe99cSEric Gao 32 33 34 35 36 37 38 39 125df8fe99cSEric Gao 40 41 42 43 44 45 46 47 126df8fe99cSEric Gao 48 49 50 51 52 53 54 55 127df8fe99cSEric Gao 56 57 58 59 60 61 62 63 128df8fe99cSEric Gao 64 65 66 67 68 69 70 71 129df8fe99cSEric Gao 72 73 74 75 76 77 78 79 130df8fe99cSEric Gao 80 81 82 83 84 85 86 87 131df8fe99cSEric Gao 88 89 90 91 92 93 94 95 132df8fe99cSEric Gao 96 97 98 99 100 101 102 103 133df8fe99cSEric Gao 104 105 106 107 108 109 110 111 134df8fe99cSEric Gao 112 113 114 115 116 117 118 119 135df8fe99cSEric Gao 120 121 122 123 124 125 126 127 136df8fe99cSEric Gao 128 129 130 131 132 133 134 135 137df8fe99cSEric Gao 136 137 138 139 140 141 142 143 138df8fe99cSEric Gao 144 145 146 147 148 149 150 151 139df8fe99cSEric Gao 152 153 154 155 156 157 158 159 140df8fe99cSEric Gao 160 161 162 163 164 165 166 167 141df8fe99cSEric Gao 168 169 170 171 172 173 174 175 142df8fe99cSEric Gao 176 177 178 179 180 181 182 183 143df8fe99cSEric Gao 184 185 186 187 188 189 190 191 144df8fe99cSEric Gao 192 193 194 195 196 197 198 199 145df8fe99cSEric Gao 200 201 202 203 204 205 206 207 146df8fe99cSEric Gao 208 209 210 211 212 213 214 215 147df8fe99cSEric Gao 216 217 218 219 220 221 222 223 148df8fe99cSEric Gao 224 225 226 227 228 229 230 231 149df8fe99cSEric Gao 232 233 234 235 236 237 238 239 150df8fe99cSEric Gao 240 241 242 243 244 245 246 247 151df8fe99cSEric Gao 248 249 250 251 252 253 254 255>; 152df8fe99cSEric Gao default-brightness-level = <200>; 153df8fe99cSEric Gao pwms = <&pwm0 0 25000 0>; 154df8fe99cSEric Gao pinctrl-names = "default"; 155df8fe99cSEric Gao pinctrl-0 = <&pwm0_pin>; 156df8fe99cSEric Gao pwm-delay-us = <10000>; 157df8fe99cSEric Gao status = "disabled"; 158df8fe99cSEric Gao }; 159df8fe99cSEric Gao 1600313794bSKever Yang vcc5v0_sys: vcc5v0-sys { 1610313794bSKever Yang compatible = "regulator-fixed"; 1620313794bSKever Yang regulator-name = "vcc5v0_sys"; 1630313794bSKever Yang regulator-always-on; 1640313794bSKever Yang regulator-boot-on; 1650313794bSKever Yang regulator-min-microvolt = <5000000>; 1660313794bSKever Yang regulator-max-microvolt = <5000000>; 1670313794bSKever Yang }; 1680313794bSKever Yang 1690313794bSKever Yang vcc_lcd: vcc-lcd { 1700313794bSKever Yang compatible = "regulator-fixed"; 1710313794bSKever Yang regulator-name = "vcc_lcd"; 1720313794bSKever Yang gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>; 1730313794bSKever Yang startup-delay-us = <20000>; 1740313794bSKever Yang enable-active-high; 1750313794bSKever Yang regulator-min-microvolt = <3300000>; 1760313794bSKever Yang regulator-max-microvolt = <3300000>; 1770313794bSKever Yang regulator-boot-on; 1780313794bSKever Yang vin-supply = <&vcc5v0_sys>; 1790313794bSKever Yang }; 1800313794bSKever Yang 181df8fe99cSEric Gao panel: panel { 182df8fe99cSEric Gao compatible = "simple-panel"; 183df8fe99cSEric Gao backlight = <&backlight>; 1840313794bSKever Yang power-supply = <&vcc_lcd>; 1850313794bSKever Yang enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; 1860313794bSKever Yang prepare-delay-ms = <20>; 1870313794bSKever Yang enable-delay-ms = <20>; 1880313794bSKever Yang 1890313794bSKever Yang display-timings { 1900313794bSKever Yang native-mode = <&timing0>; 1910313794bSKever Yang 1920313794bSKever Yang timing0: timing0 { 1930313794bSKever Yang clock-frequency = <200000000>; 1940313794bSKever Yang hactive = <1536>; 1950313794bSKever Yang vactive = <2048>; 1960313794bSKever Yang hfront-porch = <12>; 1970313794bSKever Yang hsync-len = <16>; 1980313794bSKever Yang hback-porch = <48>; 1990313794bSKever Yang vfront-porch = <8>; 2000313794bSKever Yang vsync-len = <4>; 2010313794bSKever Yang vback-porch = <8>; 2020313794bSKever Yang hsync-active = <0>; 2030313794bSKever Yang vsync-active = <0>; 2040313794bSKever Yang de-active = <0>; 2050313794bSKever Yang pixelclk-active = <0>; 206df8fe99cSEric Gao }; 207777c834fSKever Yang }; 208777c834fSKever Yang 2090313794bSKever Yang ports { 2100313794bSKever Yang panel_in: endpoint { 2110313794bSKever Yang remote-endpoint = <&edp_out>; 2120313794bSKever Yang }; 2130313794bSKever Yang }; 2140313794bSKever Yang }; 2150313794bSKever Yang 2160313794bSKever Yang}; 2170313794bSKever Yang 218272fdf68SJoseph Chen&crypto { 219272fdf68SJoseph Chen status = "okay"; 220272fdf68SJoseph Chen}; 221272fdf68SJoseph Chen 22248dac9b0SJoseph Chen&uart2 { 22348dac9b0SJoseph Chen status = "okay"; 22448dac9b0SJoseph Chen}; 22548dac9b0SJoseph Chen 226777c834fSKever Yang&emmc_phy { 227777c834fSKever Yang status = "okay"; 228777c834fSKever Yang}; 229777c834fSKever Yang 230777c834fSKever Yang&pwm0 { 231777c834fSKever Yang status = "okay"; 232777c834fSKever Yang}; 233777c834fSKever Yang 234777c834fSKever Yang&pwm2 { 235777c834fSKever Yang status = "okay"; 236777c834fSKever Yang}; 237777c834fSKever Yang 238777c834fSKever Yang&pwm3 { 239777c834fSKever Yang status = "okay"; 240777c834fSKever Yang}; 241777c834fSKever Yang 242cba12916SDavid Wu&saradc { 243cba12916SDavid Wu status = "okay"; 244cba12916SDavid Wu}; 245cba12916SDavid Wu 246da8ff82eSKever Yang&sdmmc { 247a82426e0SKever Yang bus-width = <4>; 248da8ff82eSKever Yang status = "okay"; 249da8ff82eSKever Yang}; 250da8ff82eSKever Yang 251777c834fSKever Yang&sdhci { 252777c834fSKever Yang bus-width = <8>; 253777c834fSKever Yang mmc-hs400-1_8v; 254777c834fSKever Yang mmc-hs400-enhanced-strobe; 255777c834fSKever Yang non-removable; 256777c834fSKever Yang status = "okay"; 257777c834fSKever Yang}; 258777c834fSKever Yang 259*0162d8c3SFrank Wang&tcphy0 { 260*0162d8c3SFrank Wang status = "okay"; 261*0162d8c3SFrank Wang}; 262*0162d8c3SFrank Wang 263*0162d8c3SFrank Wang&tcphy1 { 264*0162d8c3SFrank Wang status = "okay"; 265*0162d8c3SFrank Wang}; 266*0162d8c3SFrank Wang 267777c834fSKever Yang&usb_host0_ehci { 268777c834fSKever Yang status = "okay"; 269777c834fSKever Yang}; 270777c834fSKever Yang 271777c834fSKever Yang&usb_host0_ohci { 272777c834fSKever Yang status = "okay"; 273777c834fSKever Yang}; 274777c834fSKever Yang 275*0162d8c3SFrank Wang&usbdrd3_0 { 276*0162d8c3SFrank Wang status = "okay"; 277*0162d8c3SFrank Wang}; 278*0162d8c3SFrank Wang 279*0162d8c3SFrank Wang&usbdrd3_1 { 280*0162d8c3SFrank Wang status = "okay"; 281*0162d8c3SFrank Wang}; 282*0162d8c3SFrank Wang 283*0162d8c3SFrank Wang&usbdrd_dwc3_0 { 284*0162d8c3SFrank Wang status = "okay"; 285*0162d8c3SFrank Wang}; 286*0162d8c3SFrank Wang 287*0162d8c3SFrank Wang&usbdrd_dwc3_1 { 288fa5e2d16SMengDongyang status = "okay"; 289fa5e2d16SMengDongyang}; 290fa5e2d16SMengDongyang 291777c834fSKever Yang&usb_host1_ehci { 292777c834fSKever Yang status = "okay"; 293777c834fSKever Yang}; 294777c834fSKever Yang 295777c834fSKever Yang&usb_host1_ohci { 296777c834fSKever Yang status = "okay"; 297777c834fSKever Yang}; 298777c834fSKever Yang 299d3cf9eb2Seric.gao@rock-chips.com&i2c0 { 300d3cf9eb2Seric.gao@rock-chips.com status = "okay"; 301d3cf9eb2Seric.gao@rock-chips.com clock-frequency = <400000>; 302d3cf9eb2Seric.gao@rock-chips.com i2c-scl-falling-time-ns = <50>; 303d3cf9eb2Seric.gao@rock-chips.com i2c-scl-rising-time-ns = <100>; 304d3cf9eb2Seric.gao@rock-chips.com 305d3cf9eb2Seric.gao@rock-chips.com rk808: pmic@1b { 306d3cf9eb2Seric.gao@rock-chips.com compatible = "rockchip,rk808"; 307d3cf9eb2Seric.gao@rock-chips.com clock-output-names = "xin32k", "wifibt_32kin"; 308d3cf9eb2Seric.gao@rock-chips.com interrupt-parent = <&gpio0>; 309d3cf9eb2Seric.gao@rock-chips.com interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 310d3cf9eb2Seric.gao@rock-chips.com pinctrl-names = "default"; 311d3cf9eb2Seric.gao@rock-chips.com pinctrl-0 = <&pmic_int_l>; 312d3cf9eb2Seric.gao@rock-chips.com reg = <0x1b>; 313d3cf9eb2Seric.gao@rock-chips.com rockchip,system-power-controller; 314d3cf9eb2Seric.gao@rock-chips.com #clock-cells = <1>; 315d3cf9eb2Seric.gao@rock-chips.com status = "okay"; 316d3cf9eb2Seric.gao@rock-chips.com 317d3cf9eb2Seric.gao@rock-chips.com vcc12-supply = <&vcc3v3_sys>; 318df8fe99cSEric Gao 319d3cf9eb2Seric.gao@rock-chips.com regulators { 320d3cf9eb2Seric.gao@rock-chips.com vcc33_lcd: SWITCH_REG2 { 321d3cf9eb2Seric.gao@rock-chips.com regulator-always-on; 322d3cf9eb2Seric.gao@rock-chips.com regulator-boot-on; 323d3cf9eb2Seric.gao@rock-chips.com regulator-name = "vcc33_lcd"; 324d3cf9eb2Seric.gao@rock-chips.com }; 325d3cf9eb2Seric.gao@rock-chips.com }; 326d3cf9eb2Seric.gao@rock-chips.com }; 327d3cf9eb2Seric.gao@rock-chips.com}; 328d3cf9eb2Seric.gao@rock-chips.com 329df8fe99cSEric Gao&mipi_dsi { 330df8fe99cSEric Gao status = "disabled"; 331df8fe99cSEric Gao rockchip,panel = <&panel>; 332df8fe99cSEric Gao display-timings { 333df8fe99cSEric Gao timing0 { 334df8fe99cSEric Gao bits-per-pixel = <24>; 335df8fe99cSEric Gao clock-frequency = <160000000>; 336df8fe99cSEric Gao hfront-porch = <120>; 337df8fe99cSEric Gao hsync-len = <20>; 338df8fe99cSEric Gao hback-porch = <21>; 339df8fe99cSEric Gao hactive = <1200>; 340df8fe99cSEric Gao vfront-porch = <21>; 341df8fe99cSEric Gao vsync-len = <3>; 342df8fe99cSEric Gao vback-porch = <18>; 343df8fe99cSEric Gao vactive = <1920>; 344df8fe99cSEric Gao hsync-active = <0>; 345df8fe99cSEric Gao vsync-active = <0>; 346df8fe99cSEric Gao de-active = <1>; 347df8fe99cSEric Gao pixelclk-active = <0>; 348df8fe99cSEric Gao }; 349df8fe99cSEric Gao }; 350df8fe99cSEric Gao}; 351df8fe99cSEric Gao 352777c834fSKever Yang&pinctrl { 353777c834fSKever Yang pmic { 354777c834fSKever Yang pmic_int_l: pmic-int-l { 355777c834fSKever Yang rockchip,pins = 356777c834fSKever Yang <1 21 RK_FUNC_GPIO &pcfg_pull_up>; 357777c834fSKever Yang }; 358777c834fSKever Yang 359777c834fSKever Yang pmic_dvs2: pmic-dvs2 { 360777c834fSKever Yang rockchip,pins = 361777c834fSKever Yang <1 18 RK_FUNC_GPIO &pcfg_pull_down>; 362777c834fSKever Yang }; 363777c834fSKever Yang }; 364777c834fSKever Yang}; 365fd9884e2SKever Yang 366fd9884e2SKever Yang&gmac { 367fd9884e2SKever Yang phy-supply = <&vcc_phy>; 368fd9884e2SKever Yang phy-mode = "rgmii"; 369fd9884e2SKever Yang clock_in_out = "input"; 370fd9884e2SKever Yang snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 371fd9884e2SKever Yang snps,reset-active-low; 372fd9884e2SKever Yang snps,reset-delays-us = <0 10000 50000>; 373fd9884e2SKever Yang assigned-clocks = <&cru SCLK_RMII_SRC>; 374fd9884e2SKever Yang assigned-clock-parents = <&clkin_gmac>; 375fd9884e2SKever Yang pinctrl-names = "default"; 376fd9884e2SKever Yang pinctrl-0 = <&rgmii_pins>; 3779991a2b1SDavid Wu tx_delay = <0x28>; 3789991a2b1SDavid Wu rx_delay = <0x11>; 379fd9884e2SKever Yang status = "okay"; 380fd9884e2SKever Yang}; 3810313794bSKever Yang 3820313794bSKever Yang&backlight { 3830313794bSKever Yang status = "okay"; 3840313794bSKever Yang enable-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>; 3850313794bSKever Yang}; 3860313794bSKever Yang 3870313794bSKever Yang&route_edp { 3880313794bSKever Yang status = "okay"; 3890313794bSKever Yang}; 3900313794bSKever Yang 3910313794bSKever Yang&edp_in_vopl { 3920313794bSKever Yang status = "disabled"; 3930313794bSKever Yang}; 3940313794bSKever Yang 3950313794bSKever Yang&edp_in_vopb { 3960313794bSKever Yang status = "okay"; 3970313794bSKever Yang}; 3980313794bSKever Yang 3990313794bSKever Yang&edp { 4000313794bSKever Yang status = "okay"; 4010313794bSKever Yang force-hpd; 4020313794bSKever Yang 4030313794bSKever Yang ports { 4040313794bSKever Yang port@1 { 4050313794bSKever Yang reg = <1>; 4060313794bSKever Yang 4070313794bSKever Yang edp_out: endpoint { 4080313794bSKever Yang remote-endpoint = <&panel_in>; 4090313794bSKever Yang }; 4100313794bSKever Yang }; 4110313794bSKever Yang }; 4120313794bSKever Yang}; 4130313794bSKever Yang 4140313794bSKever Yang&vopb { 4150313794bSKever Yang status = "okay"; 4160313794bSKever Yang}; 417