1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 3/dts-v1/; 4 5#include "rk3036.dtsi" 6 7/ { 8 model = "Rockchip RK3036 KylinBoard"; 9 compatible = "rockchip,rk3036-kylin", "rockchip,rk3036"; 10 11 chosen { 12 stdout-path = "serial2:115200n8"; 13 }; 14 15 memory@60000000 { 16 device_type = "memory"; 17 reg = <0x60000000 0x20000000>; 18 }; 19 20 hdmi_con: hdmi-con { 21 compatible = "hdmi-connector"; 22 type = "a"; 23 24 port { 25 hdmi_con_in: endpoint { 26 remote-endpoint = <&hdmi_out_con>; 27 }; 28 }; 29 }; 30 31 leds: gpio-leds { 32 compatible = "gpio-leds"; 33 34 work_led: led-0 { 35 gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; 36 label = "kylin:red:led"; 37 pinctrl-names = "default"; 38 pinctrl-0 = <&led_ctl>; 39 }; 40 }; 41 42 sdio_pwrseq: sdio-pwrseq { 43 compatible = "mmc-pwrseq-simple"; 44 pinctrl-names = "default"; 45 pinctrl-0 = <&bt_wake_h>; 46 47 /* 48 * On the module itself this is one of these (depending 49 * on the actual card populated): 50 * - SDIO_RESET_L_WL_REG_ON 51 * - SDIO_RESET_L_WL_RST 52 * - SDIO_RESET_L_BT_EN 53 */ 54 reset-gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_LOW>, /* WL_REG_ON */ 55 <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>, /* WL_RST */ 56 <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; /* BT_EN */ 57 }; 58 59 sound { 60 compatible = "simple-audio-card"; 61 simple-audio-card,format = "i2s"; 62 simple-audio-card,name = "rockchip,rt5616-codec"; 63 simple-audio-card,mclk-fs = <512>; 64 simple-audio-card,widgets = 65 "Microphone", "Microphone Jack", 66 "Headphone", "Headphone Jack"; 67 simple-audio-card,routing = 68 "MIC1", "Microphone Jack", 69 "MIC2", "Microphone Jack", 70 "Microphone Jack", "micbias1", 71 "Headphone Jack", "HPOL", 72 "Headphone Jack", "HPOR"; 73 74 simple-audio-card,cpu { 75 sound-dai = <&i2s>; 76 }; 77 78 simple-audio-card,codec { 79 sound-dai = <&rt5616>; 80 }; 81 }; 82 83 vcc_sys: regulator-vsys { 84 compatible = "regulator-fixed"; 85 regulator-name = "vcc_sys"; 86 regulator-min-microvolt = <5000000>; 87 regulator-max-microvolt = <5000000>; 88 regulator-always-on; 89 regulator-boot-on; 90 }; 91}; 92 93&acodec { 94 status = "okay"; 95}; 96 97&emac { 98 phy = <&phy0>; 99 phy-reset-duration = <10>; /* millisecond */ 100 phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */ 101 pinctrl-names = "default"; 102 pinctrl-0 = <&emac_xfer>, <&emac_mdio>; 103 status = "okay"; 104 105 mdio { 106 #address-cells = <1>; 107 #size-cells = <0>; 108 109 phy0: ethernet-phy@0 { 110 reg = <0>; 111 }; 112 }; 113}; 114 115&emmc { 116 status = "okay"; 117}; 118 119&gpu { 120 mali-supply = <&vdd_gpu>; 121 status = "okay"; 122}; 123 124&hdmi { 125 status = "okay"; 126}; 127 128&hdmi_out { 129 hdmi_out_con: endpoint { 130 remote-endpoint = <&hdmi_con_in>; 131 }; 132}; 133 134&i2c1 { 135 clock-frequency = <400000>; 136 137 status = "okay"; 138 139 rk808: pmic@1b { 140 compatible = "rockchip,rk808"; 141 reg = <0x1b>; 142 interrupt-parent = <&gpio2>; 143 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 144 pinctrl-names = "default"; 145 pinctrl-0 = <&pmic_int &global_pwroff>; 146 rockchip,system-power-controller; 147 wakeup-source; 148 #clock-cells = <1>; 149 clock-output-names = "xin32k", "rk808-clkout2"; 150 151 vcc1-supply = <&vcc_sys>; 152 vcc2-supply = <&vcc_sys>; 153 vcc3-supply = <&vcc_sys>; 154 vcc4-supply = <&vcc_sys>; 155 vcc6-supply = <&vcc_sys>; 156 vcc7-supply = <&vcc_sys>; 157 vcc8-supply = <&vcc_18>; 158 vcc9-supply = <&vcc_io>; 159 vcc10-supply = <&vcc_io>; 160 vcc11-supply = <&vcc_sys>; 161 vcc12-supply = <&vcc_io>; 162 vddio-supply = <&vccio_pmu>; 163 164 regulators { 165 vdd_cpu: DCDC_REG1 { 166 regulator-always-on; 167 regulator-boot-on; 168 regulator-min-microvolt = <750000>; 169 regulator-max-microvolt = <1350000>; 170 regulator-name = "vdd_arm"; 171 regulator-state-mem { 172 regulator-off-in-suspend; 173 }; 174 }; 175 176 vdd_gpu: DCDC_REG2 { 177 regulator-always-on; 178 regulator-boot-on; 179 regulator-min-microvolt = <850000>; 180 regulator-max-microvolt = <1250000>; 181 regulator-name = "vdd_gpu"; 182 regulator-state-mem { 183 regulator-on-in-suspend; 184 regulator-suspend-microvolt = <1000000>; 185 }; 186 }; 187 188 vcc_ddr: DCDC_REG3 { 189 regulator-always-on; 190 regulator-boot-on; 191 regulator-name = "vcc_ddr"; 192 regulator-state-mem { 193 regulator-on-in-suspend; 194 }; 195 }; 196 197 vcc_io: DCDC_REG4 { 198 regulator-always-on; 199 regulator-boot-on; 200 regulator-min-microvolt = <3300000>; 201 regulator-max-microvolt = <3300000>; 202 regulator-name = "vcc_io"; 203 regulator-state-mem { 204 regulator-on-in-suspend; 205 regulator-suspend-microvolt = <3300000>; 206 }; 207 }; 208 209 vccio_pmu: LDO_REG1 { 210 regulator-always-on; 211 regulator-boot-on; 212 regulator-min-microvolt = <3300000>; 213 regulator-max-microvolt = <3300000>; 214 regulator-name = "vccio_pmu"; 215 regulator-state-mem { 216 regulator-on-in-suspend; 217 regulator-suspend-microvolt = <3300000>; 218 }; 219 }; 220 221 vcc_tp: LDO_REG2 { 222 regulator-always-on; 223 regulator-boot-on; 224 regulator-min-microvolt = <3300000>; 225 regulator-max-microvolt = <3300000>; 226 regulator-name = "vcc_tp"; 227 regulator-state-mem { 228 regulator-off-in-suspend; 229 }; 230 }; 231 232 vdd_10: LDO_REG3 { 233 regulator-always-on; 234 regulator-boot-on; 235 regulator-min-microvolt = <1000000>; 236 regulator-max-microvolt = <1000000>; 237 regulator-name = "vdd_10"; 238 regulator-state-mem { 239 regulator-on-in-suspend; 240 regulator-suspend-microvolt = <1000000>; 241 }; 242 }; 243 244 vcc18_lcd: LDO_REG4 { 245 regulator-always-on; 246 regulator-boot-on; 247 regulator-min-microvolt = <1800000>; 248 regulator-max-microvolt = <1800000>; 249 regulator-name = "vcc18_lcd"; 250 regulator-state-mem { 251 regulator-on-in-suspend; 252 regulator-suspend-microvolt = <1800000>; 253 }; 254 }; 255 256 vccio_sd: LDO_REG5 { 257 regulator-always-on; 258 regulator-boot-on; 259 regulator-min-microvolt = <1800000>; 260 regulator-max-microvolt = <3300000>; 261 regulator-name = "vccio_sd"; 262 regulator-state-mem { 263 regulator-on-in-suspend; 264 regulator-suspend-microvolt = <3300000>; 265 }; 266 }; 267 268 vout5: LDO_REG6 { 269 regulator-always-on; 270 regulator-boot-on; 271 regulator-min-microvolt = <1800000>; 272 regulator-max-microvolt = <2500000>; 273 regulator-name = "vout5"; 274 regulator-state-mem { 275 regulator-on-in-suspend; 276 regulator-suspend-microvolt = <1800000>; 277 }; 278 }; 279 280 vcc_18: LDO_REG7 { 281 regulator-always-on; 282 regulator-boot-on; 283 regulator-min-microvolt = <1800000>; 284 regulator-max-microvolt = <1800000>; 285 regulator-name = "vcc_18"; 286 regulator-state-mem { 287 regulator-on-in-suspend; 288 regulator-suspend-microvolt = <1800000>; 289 }; 290 }; 291 292 vcca_codec: LDO_REG8 { 293 regulator-always-on; 294 regulator-boot-on; 295 regulator-min-microvolt = <1800000>; 296 regulator-max-microvolt = <1800000>; 297 regulator-name = "vcca_codec"; 298 regulator-state-mem { 299 regulator-on-in-suspend; 300 regulator-suspend-microvolt = <1800000>; 301 }; 302 }; 303 304 vcc_wl: SWITCH_REG1 { 305 regulator-always-on; 306 regulator-boot-on; 307 regulator-name = "vcc_wl"; 308 regulator-state-mem { 309 regulator-on-in-suspend; 310 }; 311 }; 312 313 vcc_lcd: SWITCH_REG2 { 314 regulator-always-on; 315 regulator-boot-on; 316 regulator-name = "vcc_lcd"; 317 regulator-state-mem { 318 regulator-on-in-suspend; 319 }; 320 }; 321 }; 322 }; 323}; 324 325&i2c2 { 326 status = "okay"; 327 328 rt5616: rt5616@1b { 329 compatible = "rt5616"; 330 reg = <0x1b>; 331 clocks = <&cru SCLK_I2S_OUT>; 332 clock-names = "mclk"; 333 #sound-dai-cells = <0>; 334 }; 335}; 336 337&i2s { 338 status = "okay"; 339}; 340 341&sdio { 342 status = "okay"; 343 344 bus-width = <4>; 345 cap-sd-highspeed; 346 cap-sdio-irq; 347 rockchip,default-sample-phase = <90>; 348 keep-power-in-suspend; 349 mmc-pwrseq = <&sdio_pwrseq>; 350 non-removable; 351 pinctrl-names = "default"; 352 pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>; 353 sd-uhs-sdr12; 354 sd-uhs-sdr25; 355 sd-uhs-sdr50; 356 sd-uhs-sdr104; 357}; 358 359&sdmmc { 360 bus-width = <4>; 361 cap-mmc-highspeed; 362 cap-sd-highspeed; 363 card-detect-delay = <200>; 364 disable-wp; 365 pinctrl-names = "default"; 366 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 367}; 368 369&uart0 { 370 status = "okay"; 371}; 372 373&uart2 { 374 status = "okay"; 375}; 376 377&usb_host { 378 status = "okay"; 379}; 380 381&usb_otg { 382 status = "okay"; 383}; 384 385&vop { 386 status = "okay"; 387}; 388 389&vop_mmu { 390 status = "okay"; 391}; 392 393&pinctrl { 394 leds { 395 led_ctl: led-ctl { 396 rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; 397 }; 398 }; 399 400 pmic { 401 pmic_int: pmic-int { 402 rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>; 403 }; 404 }; 405 406 sdio { 407 bt_wake_h: bt-wake-h { 408 rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>; 409 }; 410 }; 411 412 sdmmc { 413 sdmmc_pwr: sdmmc-pwr { 414 rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 415 }; 416 }; 417 418 suspend { 419 global_pwroff: global-pwroff { 420 rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>; 421 }; 422 }; 423}; 424