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 bootargs = "console=uart8250,mmio32,0x20068000 rw root=PARTUUID=7c0b0000-0000 rootfstype=ext4 rootwait"; 13 }; 14 15 memory@60000000 { 16 device_type = "memory"; 17 reg = <0x60000000 0x20000000>; 18 }; 19 20 leds: gpio-leds { 21 compatible = "gpio-leds"; 22 23 work_led: led-0 { 24 gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; 25 label = "kylin:red:led"; 26 pinctrl-names = "default"; 27 pinctrl-0 = <&led_ctl>; 28 }; 29 }; 30 31 sdio_pwrseq: sdio-pwrseq { 32 compatible = "mmc-pwrseq-simple"; 33 pinctrl-names = "default"; 34 pinctrl-0 = <&bt_wake_h>; 35 36 /* 37 * On the module itself this is one of these (depending 38 * on the actual card populated): 39 * - SDIO_RESET_L_WL_REG_ON 40 * - SDIO_RESET_L_WL_RST 41 * - SDIO_RESET_L_BT_EN 42 */ 43 reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; /* WL_REG_ON */ 44 }; 45 46 sound { 47 compatible = "simple-audio-card"; 48 simple-audio-card,format = "i2s"; 49 simple-audio-card,name = "rockchip,rt5616-codec"; 50 simple-audio-card,mclk-fs = <512>; 51 simple-audio-card,widgets = 52 "Microphone", "Microphone Jack", 53 "Headphone", "Headphone Jack"; 54 simple-audio-card,routing = 55 "MIC1", "Microphone Jack", 56 "MIC2", "Microphone Jack", 57 "Microphone Jack", "micbias1", 58 "Headphone Jack", "HPOL", 59 "Headphone Jack", "HPOR"; 60 61 simple-audio-card,dai-link@0 { 62 format = "i2s"; 63 cpu { 64 sound-dai = <&i2s>; 65 }; 66 67 codec { 68 sound-dai = <&rt5616>; 69 }; 70 }; 71 72 simple-audio-card,dai-link@1 { 73 format = "i2s"; 74 cpu { 75 sound-dai = <&i2s>; 76 }; 77 78 codec { 79 sound-dai = <&hdmi>; 80 }; 81 }; 82 }; 83 84 vcc_sys: vsys-regulator { 85 compatible = "regulator-fixed"; 86 regulator-name = "vcc_sys"; 87 regulator-min-microvolt = <5000000>; 88 regulator-max-microvolt = <5000000>; 89 regulator-always-on; 90 regulator-boot-on; 91 }; 92 93 xin32k: xin32k { 94 compatible = "fixed-clock"; 95 clock-frequency = <32768>; 96 clock-output-names = "xin32k"; 97 #clock-cells = <0>; 98 }; 99 100 wireless-bluetooth { 101 compatible = "bluetooth-platdata"; 102 uart_rts_gpios = <&gpio0 19 GPIO_ACTIVE_LOW>; 103 pinctrl-names = "default", "rts_gpio"; 104 pinctrl-0 = <&uart0_rts>; 105 pinctrl-1 = <&uart0_gpios>; 106 BT,reset_gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; 107 BT,wake_gpio = <&gpio2 8 GPIO_ACTIVE_HIGH>; 108 BT,wake_host_irq = <&gpio2 3 GPIO_ACTIVE_HIGH>; 109 status = "okay"; 110 }; 111 112 wireless-wlan { 113 compatible = "wlan-platdata"; 114 rockchip,grf = <&grf>; 115 wifi_chip_type = "ap6212"; 116 WIFI,host_wake_irq = <&gpio0 27 GPIO_ACTIVE_HIGH>; 117 status = "okay"; 118 }; 119}; 120 121&acodec { 122 status = "okay"; 123}; 124 125&cpu0 { 126 cpu-supply = <&vdd_cpu>; 127}; 128 129&cpu0_opp_table { 130 /delete-node/ opp-408000000; 131 /delete-node/ opp-600000000; 132 /delete-node/ opp-816000000; 133 /delete-node/ opp-1200000000; 134}; 135 136&emac { 137 pinctrl-names = "default"; 138 pinctrl-0 = <&emac_xfer>, <&emac_mdio>; 139 phy = <&phy0>; 140 phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */ 141 phy-reset-duration = <10>; /* millisecond */ 142 143 status = "okay"; 144 145 phy0: ethernet-phy@0 { 146 reg = <0>; 147 }; 148}; 149 150&emmc { 151 no-sdio; 152 no-sd; 153 status = "okay"; 154}; 155 156&gpu { 157 status = "okay"; 158 mali-supply = <&vdd_cpu>; 159}; 160 161/* 162 * Just as GPU's power supply is provided by cpu regulator, and fixed-frequency 163 * on CPU. 164 */ 165&gpu_opp_table { 166 opp-200000000 { 167 opp-microvolt = <1150000>; 168 }; 169 opp-400000000 { 170 opp-microvolt = <1150000>; 171 }; 172}; 173 174&hdmi { 175 status = "okay"; 176}; 177 178&hevc { 179 status = "okay"; 180}; 181 182&hevc_mmu { 183 status = "okay"; 184}; 185 186&i2c1 { 187 clock-frequency = <400000>; 188 189 status = "okay"; 190 191 rk808: pmic@1b { 192 compatible = "rockchip,rk808"; 193 reg = <0x1b>; 194 interrupt-parent = <&gpio2>; 195 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 196 pinctrl-names = "default"; 197 pinctrl-0 = <&pmic_int &global_pwroff>; 198 rockchip,system-power-controller; 199 wakeup-source; 200 #clock-cells = <1>; 201 clock-output-names = "rk808-clkout1", "rk808-clkout2"; 202 203 vcc1-supply = <&vcc_sys>; 204 vcc3-supply = <&vcc_sys>; 205 vcc4-supply = <&vcc_sys>; 206 vcc6-supply = <&vcc_sys>; 207 vcc7-supply = <&vcc_sys>; 208 vcc9-supply = <&vcc_sys>; 209 vcc10-supply = <&vcc_io>; 210 vcc11-supply = <&vcc_io>; 211 vddio-supply = <&vcc_io>; 212 213 regulators { 214 vdd_cpu: DCDC_REG1 { 215 regulator-always-on; 216 regulator-boot-on; 217 regulator-min-microvolt = <1150000>; 218 regulator-max-microvolt = <1150000>; 219 regulator-name = "vdd_arm"; 220 regulator-state-mem { 221 regulator-on-in-suspend; 222 regulator-suspend-microvolt = <1150000>; 223 }; 224 }; 225 226 vcc_ddr: DCDC_REG3 { 227 regulator-always-on; 228 regulator-boot-on; 229 regulator-name = "vcc_ddr"; 230 regulator-state-mem { 231 regulator-on-in-suspend; 232 }; 233 }; 234 235 vcc_io: DCDC_REG4 { 236 regulator-always-on; 237 regulator-boot-on; 238 regulator-min-microvolt = <3300000>; 239 regulator-max-microvolt = <3300000>; 240 regulator-name = "vcc_io"; 241 regulator-state-mem { 242 regulator-on-in-suspend; 243 regulator-suspend-microvolt = <3300000>; 244 }; 245 }; 246 247 vcca_33: LDO_REG1 { 248 regulator-always-on; 249 regulator-boot-on; 250 regulator-min-microvolt = <3300000>; 251 regulator-max-microvolt = <3300000>; 252 regulator-name = "vcca_33"; 253 regulator-state-mem { 254 regulator-on-in-suspend; 255 regulator-suspend-microvolt = <3300000>; 256 }; 257 }; 258 259 vout1: LDO_REG2 { 260 regulator-always-on; 261 regulator-boot-on; 262 regulator-min-microvolt = <3300000>; 263 regulator-max-microvolt = <3300000>; 264 regulator-name = "vout1"; 265 regulator-state-mem { 266 regulator-off-in-suspend; 267 }; 268 }; 269 270 vdd_11: LDO_REG3 { 271 regulator-always-on; 272 regulator-boot-on; 273 regulator-min-microvolt = <1000000>; 274 regulator-max-microvolt = <1000000>; 275 regulator-name = "vdd_11"; 276 regulator-state-mem { 277 regulator-on-in-suspend; 278 regulator-suspend-microvolt = <1000000>; 279 }; 280 }; 281 282 vout3: LDO_REG4 { 283 regulator-always-on; 284 regulator-boot-on; 285 regulator-min-microvolt = <1800000>; 286 regulator-max-microvolt = <3400000>; 287 regulator-name = "vout3"; 288 regulator-state-mem { 289 regulator-on-in-suspend; 290 regulator-suspend-microvolt = <1800000>; 291 }; 292 }; 293 294 vout4: LDO_REG5 { 295 regulator-always-on; 296 regulator-boot-on; 297 regulator-min-microvolt = <1800000>; 298 regulator-max-microvolt = <3400000>; 299 regulator-name = "vout4"; 300 regulator-state-mem { 301 regulator-on-in-suspend; 302 regulator-suspend-microvolt = <1800000>; 303 }; 304 }; 305 306 vout5: LDO_REG6 { 307 regulator-always-on; 308 regulator-boot-on; 309 regulator-min-microvolt = <1800000>; 310 regulator-max-microvolt = <3400000>; 311 regulator-name = "vout5"; 312 regulator-state-mem { 313 regulator-on-in-suspend; 314 regulator-suspend-microvolt = <1800000>; 315 }; 316 }; 317 318 vout2: LDO_REG7 { 319 regulator-always-on; 320 regulator-boot-on; 321 regulator-min-microvolt = <800000>; 322 regulator-max-microvolt = <2500000>; 323 regulator-name = "vout2"; 324 regulator-state-mem { 325 regulator-on-in-suspend; 326 regulator-suspend-microvolt = <1800000>; 327 }; 328 }; 329 330 vcc18: LDO_REG8 { 331 regulator-always-on; 332 regulator-boot-on; 333 regulator-min-microvolt = <1800000>; 334 regulator-max-microvolt = <1800000>; 335 regulator-name = "vcc18"; 336 regulator-state-mem { 337 regulator-on-in-suspend; 338 regulator-suspend-microvolt = <1800000>; 339 }; 340 }; 341 342 vswout1: SWITCH_REG1 { 343 regulator-always-on; 344 regulator-boot-on; 345 regulator-name = "vswout1"; 346 regulator-state-mem { 347 regulator-on-in-suspend; 348 }; 349 }; 350 351 vswout2: SWITCH_REG2 { 352 regulator-always-on; 353 regulator-boot-on; 354 regulator-name = "vswout2"; 355 regulator-state-mem { 356 regulator-on-in-suspend; 357 }; 358 }; 359 }; 360 }; 361}; 362 363&i2c2 { 364 status = "okay"; 365 366 rt5616: rt5616@1b { 367 compatible = "rt5616"; 368 reg = <0x1b>; 369 clocks = <&cru SCLK_I2S_OUT>; 370 clock-names = "mclk"; 371 #sound-dai-cells = <0>; 372 }; 373}; 374 375&i2s { 376 status = "okay"; 377 pinctrl-0 = <&i2s_sclk 378 &i2s_lrclktx 379 &i2s_sdo 380 &i2s_sdi>; 381}; 382 383&mpp_srv { 384 status = "okay"; 385}; 386 387&sdio { 388 status = "okay"; 389 390 bus-width = <4>; 391 cap-sd-highspeed; 392 cap-sdio-irq; 393 rockchip,default-sample-phase = <90>; 394 keep-power-in-suspend; 395 mmc-pwrseq = <&sdio_pwrseq>; 396 non-removable; 397 pinctrl-names = "default"; 398 pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>; 399 sd-uhs-sdr12; 400 sd-uhs-sdr25; 401 sd-uhs-sdr50; 402 sd-uhs-sdr104; 403 no-mmc; 404 no-sd; 405}; 406 407&sdmmc { 408 bus-width = <4>; 409 cap-mmc-highspeed; 410 cap-sd-highspeed; 411 card-detect-delay = <200>; 412 disable-wp; 413 pinctrl-names = "default"; 414 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 415 no-mmc; 416 no-sdio; 417}; 418 419&uart0 { 420 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>; 421 status = "okay"; 422}; 423 424&uart2 { 425 status = "okay"; 426}; 427 428&usb_host { 429 status = "okay"; 430}; 431 432&usb_otg { 433 status = "okay"; 434}; 435 436&vdpu { 437 status = "okay"; 438}; 439 440&vpu_mmu { 441 status = "okay"; 442}; 443 444&vop { 445 status = "okay"; 446}; 447 448&vop_mmu { 449 status = "okay"; 450}; 451 452&wdt { 453 status = "okay"; 454}; 455 456&pinctrl { 457 leds { 458 led_ctl: led-ctl { 459 rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; 460 }; 461 }; 462 463 pmic { 464 pmic_int: pmic-int { 465 rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>; 466 }; 467 }; 468 469 sdio { 470 bt_wake_h: bt-wake-h { 471 rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>; 472 }; 473 }; 474 475 sdmmc { 476 sdmmc_pwr: sdmmc-pwr { 477 rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 478 }; 479 }; 480 481 suspend { 482 global_pwroff: global-pwroff { 483 rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>; 484 }; 485 }; 486 487 wireless-bluetooth { 488 uart0_gpios: uart0-gpios { 489 rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; 490 }; 491 }; 492}; 493