1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2017 PINE64 4 */ 5 6/dts-v1/; 7#include "rk3328.dtsi" 8 9/ { 10 model = "Pine64 Rock64"; 11 compatible = "pine64,rock64", "rockchip,rk3328"; 12 13 aliases { 14 mmc0 = &sdmmc; 15 mmc1 = &emmc; 16 }; 17 18 chosen { 19 stdout-path = "serial2:1500000n8"; 20 }; 21 22 gmac_clkin: external-gmac-clock { 23 compatible = "fixed-clock"; 24 clock-frequency = <125000000>; 25 clock-output-names = "gmac_clkin"; 26 #clock-cells = <0>; 27 }; 28 29 vcc_sd: sdmmc-regulator { 30 compatible = "regulator-fixed"; 31 gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>; 32 pinctrl-names = "default"; 33 pinctrl-0 = <&sdmmc0m1_pin>; 34 regulator-name = "vcc_sd"; 35 regulator-min-microvolt = <3300000>; 36 regulator-max-microvolt = <3300000>; 37 vin-supply = <&vcc_io>; 38 }; 39 40 /* Common enable line for all of the rails mentioned in the labels */ 41 vcc_host_5v: vcc_host1_5v: vcc_otg_5v: vcc-host-5v-regulator { 42 compatible = "regulator-fixed"; 43 gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; 44 pinctrl-names = "default"; 45 pinctrl-0 = <&usb20_host_drv>; 46 regulator-name = "vcc_host_5v"; 47 regulator-always-on; 48 regulator-boot-on; 49 vin-supply = <&vcc_sys>; 50 }; 51 52 vcc_sys: vcc-sys { 53 compatible = "regulator-fixed"; 54 regulator-name = "vcc_sys"; 55 regulator-always-on; 56 regulator-boot-on; 57 regulator-min-microvolt = <5000000>; 58 regulator-max-microvolt = <5000000>; 59 }; 60 61 ir-receiver { 62 compatible = "gpio-ir-receiver"; 63 gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>; 64 pinctrl-0 = <&ir_int>; 65 pinctrl-names = "default"; 66 }; 67 68 leds { 69 compatible = "gpio-leds"; 70 71 power_led: led-0 { 72 gpios = <&rk805 1 GPIO_ACTIVE_LOW>; 73 linux,default-trigger = "mmc0"; 74 }; 75 76 standby_led: led-1 { 77 gpios = <&rk805 0 GPIO_ACTIVE_LOW>; 78 linux,default-trigger = "heartbeat"; 79 }; 80 }; 81 82 spdif_sound: spdif-sound { 83 compatible = "simple-audio-card"; 84 simple-audio-card,name = "SPDIF"; 85 86 simple-audio-card,cpu { 87 sound-dai = <&spdif>; 88 }; 89 90 simple-audio-card,codec { 91 sound-dai = <&spdif_dit>; 92 }; 93 }; 94 95 spdif_dit: spdif-dit { 96 compatible = "linux,spdif-dit"; 97 #sound-dai-cells = <0>; 98 }; 99}; 100 101&analog_sound { 102 status = "okay"; 103}; 104 105&codec { 106 mute-gpios = <&grf_gpio 0 GPIO_ACTIVE_LOW>; 107 status = "okay"; 108}; 109 110&cpu0 { 111 cpu-supply = <&vdd_arm>; 112}; 113 114&cpu1 { 115 cpu-supply = <&vdd_arm>; 116}; 117 118&cpu2 { 119 cpu-supply = <&vdd_arm>; 120}; 121 122&cpu3 { 123 cpu-supply = <&vdd_arm>; 124}; 125 126&emmc { 127 bus-width = <8>; 128 cap-mmc-highspeed; 129 mmc-hs200-1_8v; 130 non-removable; 131 pinctrl-names = "default"; 132 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 133 vmmc-supply = <&vcc_io>; 134 vqmmc-supply = <&vcc18_emmc>; 135 status = "okay"; 136}; 137 138&gmac2io { 139 assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>; 140 assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>; 141 clock_in_out = "input"; 142 phy-supply = <&vcc_io>; 143 phy-mode = "rgmii"; 144 pinctrl-names = "default"; 145 pinctrl-0 = <&rgmiim1_pins>; 146 snps,force_thresh_dma_mode; 147 snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; 148 snps,reset-active-low; 149 snps,reset-delays-us = <0 10000 50000>; 150 tx_delay = <0x24>; 151 rx_delay = <0x18>; 152 status = "okay"; 153}; 154 155&hdmi { 156 status = "okay"; 157}; 158 159&hdmi_sound { 160 status = "okay"; 161}; 162 163&hdmiphy { 164 status = "okay"; 165}; 166 167&i2c1 { 168 status = "okay"; 169 170 rk805: pmic@18 { 171 compatible = "rockchip,rk805"; 172 reg = <0x18>; 173 interrupt-parent = <&gpio2>; 174 interrupts = <6 IRQ_TYPE_LEVEL_LOW>; 175 #clock-cells = <1>; 176 clock-output-names = "xin32k", "rk805-clkout2"; 177 gpio-controller; 178 #gpio-cells = <2>; 179 pinctrl-names = "default"; 180 pinctrl-0 = <&pmic_int_l>; 181 rockchip,system-power-controller; 182 wakeup-source; 183 184 vcc1-supply = <&vcc_sys>; 185 vcc2-supply = <&vcc_sys>; 186 vcc3-supply = <&vcc_sys>; 187 vcc4-supply = <&vcc_sys>; 188 vcc5-supply = <&vcc_io>; 189 vcc6-supply = <&vcc_sys>; 190 191 regulators { 192 vdd_logic: DCDC_REG1 { 193 regulator-name = "vdd_logic"; 194 regulator-min-microvolt = <712500>; 195 regulator-max-microvolt = <1450000>; 196 regulator-ramp-delay = <12500>; 197 regulator-always-on; 198 regulator-boot-on; 199 regulator-state-mem { 200 regulator-on-in-suspend; 201 regulator-suspend-microvolt = <1000000>; 202 }; 203 }; 204 205 vdd_arm: DCDC_REG2 { 206 regulator-name = "vdd_arm"; 207 regulator-min-microvolt = <712500>; 208 regulator-max-microvolt = <1450000>; 209 regulator-ramp-delay = <12500>; 210 regulator-always-on; 211 regulator-boot-on; 212 regulator-state-mem { 213 regulator-on-in-suspend; 214 regulator-suspend-microvolt = <950000>; 215 }; 216 }; 217 218 vcc_ddr: DCDC_REG3 { 219 regulator-name = "vcc_ddr"; 220 regulator-always-on; 221 regulator-boot-on; 222 regulator-state-mem { 223 regulator-on-in-suspend; 224 }; 225 }; 226 227 vcc_io: DCDC_REG4 { 228 regulator-name = "vcc_io"; 229 regulator-min-microvolt = <3300000>; 230 regulator-max-microvolt = <3300000>; 231 regulator-always-on; 232 regulator-boot-on; 233 regulator-state-mem { 234 regulator-on-in-suspend; 235 regulator-suspend-microvolt = <3300000>; 236 }; 237 }; 238 239 vcc_18: LDO_REG1 { 240 regulator-name = "vcc_18"; 241 regulator-min-microvolt = <1800000>; 242 regulator-max-microvolt = <1800000>; 243 regulator-always-on; 244 regulator-boot-on; 245 regulator-state-mem { 246 regulator-on-in-suspend; 247 regulator-suspend-microvolt = <1800000>; 248 }; 249 }; 250 251 vcc18_emmc: LDO_REG2 { 252 regulator-name = "vcc18_emmc"; 253 regulator-min-microvolt = <1800000>; 254 regulator-max-microvolt = <1800000>; 255 regulator-always-on; 256 regulator-boot-on; 257 regulator-state-mem { 258 regulator-on-in-suspend; 259 regulator-suspend-microvolt = <1800000>; 260 }; 261 }; 262 263 vdd_10: LDO_REG3 { 264 regulator-name = "vdd_10"; 265 regulator-min-microvolt = <1000000>; 266 regulator-max-microvolt = <1000000>; 267 regulator-always-on; 268 regulator-boot-on; 269 regulator-state-mem { 270 regulator-on-in-suspend; 271 regulator-suspend-microvolt = <1000000>; 272 }; 273 }; 274 }; 275 }; 276}; 277 278&i2s0 { 279 status = "okay"; 280}; 281 282&i2s1 { 283 status = "okay"; 284}; 285 286&io_domains { 287 status = "okay"; 288 289 vccio1-supply = <&vcc_io>; 290 vccio2-supply = <&vcc18_emmc>; 291 vccio3-supply = <&vcc_io>; 292 vccio4-supply = <&vcc_18>; 293 vccio5-supply = <&vcc_io>; 294 vccio6-supply = <&vcc_io>; 295 pmuio-supply = <&vcc_io>; 296}; 297 298&pinctrl { 299 ir { 300 ir_int: ir-int { 301 rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 302 }; 303 }; 304 305 pmic { 306 pmic_int_l: pmic-int-l { 307 rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>; 308 }; 309 }; 310 311 usb2 { 312 usb20_host_drv: usb20-host-drv { 313 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 314 }; 315 }; 316}; 317 318&sdmmc { 319 bus-width = <4>; 320 cap-mmc-highspeed; 321 cap-sd-highspeed; 322 disable-wp; 323 max-frequency = <150000000>; 324 pinctrl-names = "default"; 325 pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>; 326 vmmc-supply = <&vcc_sd>; 327 status = "okay"; 328}; 329 330&spdif { 331 pinctrl-0 = <&spdifm0_tx>; 332 status = "okay"; 333}; 334 335&spi0 { 336 status = "okay"; 337 338 flash@0 { 339 compatible = "jedec,spi-nor"; 340 reg = <0>; 341 342 /* maximum speed for Rockchip SPI */ 343 spi-max-frequency = <50000000>; 344 }; 345}; 346 347&tsadc { 348 rockchip,hw-tshut-mode = <0>; 349 rockchip,hw-tshut-polarity = <0>; 350 status = "okay"; 351}; 352 353&uart2 { 354 status = "okay"; 355}; 356 357&u2phy { 358 status = "okay"; 359 360 u2phy_host: host-port { 361 status = "okay"; 362 }; 363 364 u2phy_otg: otg-port { 365 status = "okay"; 366 }; 367}; 368 369&usb20_otg { 370 dr_mode = "host"; 371 status = "okay"; 372}; 373 374&usbdrd3 { 375 dr_mode = "host"; 376 status = "okay"; 377}; 378 379&usb_host0_ehci { 380 status = "okay"; 381}; 382 383&usb_host0_ohci { 384 status = "okay"; 385}; 386 387&vop { 388 status = "okay"; 389}; 390 391&vop_mmu { 392 status = "okay"; 393}; 394