1/* 2 * This file is dual-licensed: you can use it either under the terms 3 * of the GPL or the X11 license, at your option. Note that this dual 4 * licensing only applies to this file, and not this project as a 5 * whole. 6 * 7 * a) This file is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation; either version 2 of the 10 * License, or (at your option) any later version. 11 * 12 * This file is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * Or, alternatively, 18 * 19 * b) Permission is hereby granted, free of charge, to any person 20 * obtaining a copy of this software and associated documentation 21 * files (the "Software"), to deal in the Software without 22 * restriction, including without limitation the rights to use, 23 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * sell copies of the Software, and to permit persons to whom the 25 * Software is furnished to do so, subject to the following 26 * conditions: 27 * 28 * The above copyright notice and this permission notice shall be 29 * included in all copies or substantial portions of the Software. 30 * 31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * OTHER DEALINGS IN THE SOFTWARE. 39 */ 40 41/dts-v1/; 42 43#include "rk3036.dtsi" 44 45/ { 46 model = "Rockchip RK3036 KylinBoard"; 47 compatible = "rockchip,rk3036-kylin", "rockchip,rk3036"; 48 49 memory@60000000 { 50 device_type = "memory"; 51 reg = <0x60000000 0x20000000>; 52 }; 53 54 leds: gpio-leds { 55 compatible = "gpio-leds"; 56 57 work { 58 gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; 59 label = "kylin:red:led"; 60 pinctrl-names = "default"; 61 pinctrl-0 = <&led_ctl>; 62 }; 63 }; 64 65 sdio_pwrseq: sdio-pwrseq { 66 compatible = "mmc-pwrseq-simple"; 67 pinctrl-names = "default"; 68 pinctrl-0 = <&bt_wake_h>; 69 70 /* 71 * On the module itself this is one of these (depending 72 * on the actual card populated): 73 * - SDIO_RESET_L_WL_REG_ON 74 * - SDIO_RESET_L_WL_RST 75 * - SDIO_RESET_L_BT_EN 76 */ 77 reset-gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_LOW>, /* WL_REG_ON */ 78 <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>, /* WL_RST */ 79 <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; /* BT_EN */ 80 }; 81 82 sound { 83 compatible = "simple-audio-card"; 84 simple-audio-card,format = "i2s"; 85 simple-audio-card,name = "rockchip,rt5616-codec"; 86 simple-audio-card,mclk-fs = <512>; 87 simple-audio-card,widgets = 88 "Microphone", "Microphone Jack", 89 "Headphone", "Headphone Jack"; 90 simple-audio-card,routing = 91 "MIC1", "Microphone Jack", 92 "MIC2", "Microphone Jack", 93 "Microphone Jack", "micbias1", 94 "Headphone Jack", "HPOL", 95 "Headphone Jack", "HPOR"; 96 97 simple-audio-card,cpu { 98 sound-dai = <&i2s>; 99 }; 100 101 simple-audio-card,codec { 102 sound-dai = <&rt5616>; 103 }; 104 }; 105 106 vcc_sys: vsys-regulator { 107 compatible = "regulator-fixed"; 108 regulator-name = "vcc_sys"; 109 regulator-min-microvolt = <5000000>; 110 regulator-max-microvolt = <5000000>; 111 regulator-always-on; 112 regulator-boot-on; 113 }; 114}; 115 116&acodec { 117 status = "okay"; 118}; 119 120&emac { 121 pinctrl-names = "default"; 122 pinctrl-0 = <&emac_xfer>, <&emac_mdio>; 123 phy = <&phy0>; 124 phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */ 125 phy-reset-duration = <10>; /* millisecond */ 126 127 status = "okay"; 128 129 phy0: ethernet-phy@0 { 130 reg = <0>; 131 }; 132}; 133 134&emmc { 135 status = "okay"; 136}; 137 138&hdmi { 139 status = "okay"; 140}; 141 142&i2c1 { 143 clock-frequency = <400000>; 144 145 status = "okay"; 146 147 rk808: pmic@1b { 148 compatible = "rockchip,rk808"; 149 reg = <0x1b>; 150 interrupt-parent = <&gpio2>; 151 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 152 pinctrl-names = "default"; 153 pinctrl-0 = <&pmic_int &global_pwroff>; 154 rockchip,system-power-controller; 155 wakeup-source; 156 #clock-cells = <1>; 157 clock-output-names = "xin32k", "rk808-clkout2"; 158 159 vcc1-supply = <&vcc_sys>; 160 vcc2-supply = <&vcc_sys>; 161 vcc3-supply = <&vcc_sys>; 162 vcc4-supply = <&vcc_sys>; 163 vcc6-supply = <&vcc_sys>; 164 vcc7-supply = <&vcc_sys>; 165 vcc8-supply = <&vcc_18>; 166 vcc9-supply = <&vcc_io>; 167 vcc10-supply = <&vcc_io>; 168 vcc11-supply = <&vcc_sys>; 169 vcc12-supply = <&vcc_io>; 170 vddio-supply = <&vccio_pmu>; 171 172 regulators { 173 vdd_cpu: DCDC_REG1 { 174 regulator-always-on; 175 regulator-boot-on; 176 regulator-min-microvolt = <750000>; 177 regulator-max-microvolt = <1350000>; 178 regulator-name = "vdd_arm"; 179 regulator-state-mem { 180 regulator-off-in-suspend; 181 }; 182 }; 183 184 vdd_gpu: DCDC_REG2 { 185 regulator-always-on; 186 regulator-boot-on; 187 regulator-min-microvolt = <850000>; 188 regulator-max-microvolt = <1250000>; 189 regulator-name = "vdd_gpu"; 190 regulator-state-mem { 191 regulator-on-in-suspend; 192 regulator-suspend-microvolt = <1000000>; 193 }; 194 }; 195 196 vcc_ddr: DCDC_REG3 { 197 regulator-always-on; 198 regulator-boot-on; 199 regulator-name = "vcc_ddr"; 200 regulator-state-mem { 201 regulator-on-in-suspend; 202 }; 203 }; 204 205 vcc_io: DCDC_REG4 { 206 regulator-always-on; 207 regulator-boot-on; 208 regulator-min-microvolt = <3300000>; 209 regulator-max-microvolt = <3300000>; 210 regulator-name = "vcc_io"; 211 regulator-state-mem { 212 regulator-on-in-suspend; 213 regulator-suspend-microvolt = <3300000>; 214 }; 215 }; 216 217 vccio_pmu: LDO_REG1 { 218 regulator-always-on; 219 regulator-boot-on; 220 regulator-min-microvolt = <3300000>; 221 regulator-max-microvolt = <3300000>; 222 regulator-name = "vccio_pmu"; 223 regulator-state-mem { 224 regulator-on-in-suspend; 225 regulator-suspend-microvolt = <3300000>; 226 }; 227 }; 228 229 vcc_tp: LDO_REG2 { 230 regulator-always-on; 231 regulator-boot-on; 232 regulator-min-microvolt = <3300000>; 233 regulator-max-microvolt = <3300000>; 234 regulator-name = "vcc_tp"; 235 regulator-state-mem { 236 regulator-off-in-suspend; 237 }; 238 }; 239 240 vdd_10: LDO_REG3 { 241 regulator-always-on; 242 regulator-boot-on; 243 regulator-min-microvolt = <1000000>; 244 regulator-max-microvolt = <1000000>; 245 regulator-name = "vdd_10"; 246 regulator-state-mem { 247 regulator-on-in-suspend; 248 regulator-suspend-microvolt = <1000000>; 249 }; 250 }; 251 252 vcc18_lcd: LDO_REG4 { 253 regulator-always-on; 254 regulator-boot-on; 255 regulator-min-microvolt = <1800000>; 256 regulator-max-microvolt = <1800000>; 257 regulator-name = "vcc18_lcd"; 258 regulator-state-mem { 259 regulator-on-in-suspend; 260 regulator-suspend-microvolt = <1800000>; 261 }; 262 }; 263 264 vccio_sd: LDO_REG5 { 265 regulator-always-on; 266 regulator-boot-on; 267 regulator-min-microvolt = <1800000>; 268 regulator-max-microvolt = <3300000>; 269 regulator-name = "vccio_sd"; 270 regulator-state-mem { 271 regulator-on-in-suspend; 272 regulator-suspend-microvolt = <3300000>; 273 }; 274 }; 275 276 vout5: LDO_REG6 { 277 regulator-always-on; 278 regulator-boot-on; 279 regulator-min-microvolt = <1800000>; 280 regulator-max-microvolt = <2500000>; 281 regulator-name = "vout5"; 282 regulator-state-mem { 283 regulator-on-in-suspend; 284 regulator-suspend-microvolt = <1800000>; 285 }; 286 }; 287 288 vcc_18: LDO_REG7 { 289 regulator-always-on; 290 regulator-boot-on; 291 regulator-min-microvolt = <1800000>; 292 regulator-max-microvolt = <1800000>; 293 regulator-name = "vcc_18"; 294 regulator-state-mem { 295 regulator-on-in-suspend; 296 regulator-suspend-microvolt = <1800000>; 297 }; 298 }; 299 300 vcca_codec: LDO_REG8 { 301 regulator-always-on; 302 regulator-boot-on; 303 regulator-min-microvolt = <1800000>; 304 regulator-max-microvolt = <1800000>; 305 regulator-name = "vcca_codec"; 306 regulator-state-mem { 307 regulator-on-in-suspend; 308 regulator-suspend-microvolt = <1800000>; 309 }; 310 }; 311 312 vcc_wl: SWITCH_REG1 { 313 regulator-always-on; 314 regulator-boot-on; 315 regulator-name = "vcc_wl"; 316 regulator-state-mem { 317 regulator-on-in-suspend; 318 }; 319 }; 320 321 vcc_lcd: SWITCH_REG2 { 322 regulator-always-on; 323 regulator-boot-on; 324 regulator-name = "vcc_lcd"; 325 regulator-state-mem { 326 regulator-on-in-suspend; 327 }; 328 }; 329 }; 330 }; 331}; 332 333&i2c2 { 334 status = "okay"; 335 336 rt5616: rt5616@1b { 337 compatible = "rt5616"; 338 reg = <0x1b>; 339 clocks = <&cru SCLK_I2S_OUT>; 340 clock-names = "mclk"; 341 #sound-dai-cells = <0>; 342 }; 343}; 344 345&i2s { 346 #sound-dai-cells = <0>; 347 status = "okay"; 348}; 349 350&sdio { 351 status = "okay"; 352 353 bus-width = <4>; 354 cap-sd-highspeed; 355 cap-sdio-irq; 356 default-sample-phase = <90>; 357 keep-power-in-suspend; 358 mmc-pwrseq = <&sdio_pwrseq>; 359 non-removable; 360 pinctrl-names = "default"; 361 pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>; 362 sd-uhs-sdr12; 363 sd-uhs-sdr25; 364 sd-uhs-sdr50; 365 sd-uhs-sdr104; 366}; 367 368&sdmmc { 369 bus-width = <4>; 370 cap-mmc-highspeed; 371 cap-sd-highspeed; 372 card-detect-delay = <200>; 373 disable-wp; 374 pinctrl-names = "default"; 375 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 376}; 377 378&uart0 { 379 status = "okay"; 380}; 381 382&uart2 { 383 status = "okay"; 384}; 385 386&usb_host { 387 status = "okay"; 388}; 389 390&usb_otg { 391 status = "okay"; 392}; 393 394&vop { 395 status = "okay"; 396}; 397 398&vop_mmu { 399 status = "okay"; 400}; 401 402&pinctrl { 403 leds { 404 led_ctl: led-ctl { 405 rockchip,pins = <2 30 RK_FUNC_GPIO &pcfg_pull_none>; 406 }; 407 }; 408 409 pmic { 410 pmic_int: pmic-int { 411 rockchip,pins = <2 2 RK_FUNC_GPIO &pcfg_pull_default>; 412 }; 413 }; 414 415 sdio { 416 bt_wake_h: bt-wake-h { 417 rockchip,pins = <2 8 RK_FUNC_GPIO &pcfg_pull_default>; 418 }; 419 }; 420 421 sdmmc { 422 sdmmc_pwr: sdmmc-pwr { 423 rockchip,pins = <2 28 RK_FUNC_GPIO &pcfg_pull_none>; 424 }; 425 }; 426 427 sleep { 428 global_pwroff: global-pwroff { 429 rockchip,pins = <2 7 RK_FUNC_1 &pcfg_pull_none>; 430 }; 431 }; 432}; 433