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#include <dt-bindings/pwm/pwm.h> 42#include "rk3288.dtsi" 43 44/ { 45 memory { 46 reg = <0x0 0x80000000>; 47 device_type = "memory"; 48 }; 49 50 emmc_pwrseq: emmc-pwrseq { 51 compatible = "mmc-pwrseq-emmc"; 52 pinctrl-0 = <&emmc_reset>; 53 pinctrl-names = "default"; 54 reset-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>; 55 }; 56 57 ext_gmac: external-gmac-clock { 58 compatible = "fixed-clock"; 59 #clock-cells = <0>; 60 clock-frequency = <125000000>; 61 clock-output-names = "ext_gmac"; 62 }; 63 64 vcc_flash: flash-regulator { 65 compatible = "regulator-fixed"; 66 regulator-name = "vcc_sys"; 67 regulator-min-microvolt = <1800000>; 68 regulator-max-microvolt = <1800000>; 69 startup-delay-us = <150>; 70 vin-supply = <&vcc_io>; 71 }; 72 73 vcc_sys: vsys-regulator { 74 compatible = "regulator-fixed"; 75 regulator-name = "vcc_sys"; 76 regulator-min-microvolt = <5000000>; 77 regulator-max-microvolt = <5000000>; 78 regulator-always-on; 79 regulator-boot-on; 80 }; 81}; 82 83&cpu0 { 84 cpu0-supply = <&vdd_cpu>; 85}; 86 87&emmc { 88 bus-width = <8>; 89 cap-mmc-highspeed; 90 disable-wp; 91 non-removable; 92 num-slots = <1>; 93 mmc-pwrseq = <&emmc_pwrseq>; 94 pinctrl-names = "default"; 95 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 96 vmmc-supply = <&vcc_io>; 97 vqmmc-supply = <&vcc_flash>; 98 status = "okay"; 99}; 100 101&gmac { 102 assigned-clocks = <&cru SCLK_MAC>; 103 assigned-clock-parents = <&ext_gmac>; 104 clock_in_out = "input"; 105 phy-mode = "rgmii"; 106 phy-supply = <&vccio_pmu>; 107 pinctrl-names = "default"; 108 pinctrl-0 = <&rgmii_pins &phy_rst>; 109 snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>; 110 snps,reset-active-low; 111 snps,reset-delays-us = <0 10000 30000>; 112 rx_delay = <0x10>; 113 tx_delay = <0x30>; 114}; 115 116&i2c0 { 117 status = "okay"; 118 119 act8846: act8846@5a { 120 compatible = "active-semi,act8846"; 121 reg = <0x5a>; 122 system-power-controller; 123 inl1-supply = <&vcc_io>; 124 inl2-supply = <&vcc_sys>; 125 inl3-supply = <&vcc_20>; 126 vp1-supply = <&vcc_sys>; 127 vp2-supply = <&vcc_sys>; 128 vp3-supply = <&vcc_sys>; 129 vp4-supply = <&vcc_sys>; 130 131 regulators { 132 vcc_ddr: REG1 { 133 regulator-name = "VCC_DDR"; 134 regulator-min-microvolt = <1200000>; 135 regulator-max-microvolt = <1200000>; 136 regulator-always-on; 137 }; 138 139 vcc_io: REG2 { 140 regulator-name = "VCC_IO"; 141 regulator-min-microvolt = <3300000>; 142 regulator-max-microvolt = <3300000>; 143 regulator-always-on; 144 }; 145 146 vdd_log: REG3 { 147 regulator-name = "VDD_LOG"; 148 regulator-min-microvolt = <1000000>; 149 regulator-max-microvolt = <1000000>; 150 regulator-always-on; 151 }; 152 153 vcc_20: REG4 { 154 regulator-name = "VCC_20"; 155 regulator-min-microvolt = <2000000>; 156 regulator-max-microvolt = <2000000>; 157 regulator-always-on; 158 }; 159 160 vccio_sd: REG5 { 161 regulator-name = "VCCIO_SD"; 162 regulator-min-microvolt = <3300000>; 163 regulator-max-microvolt = <3300000>; 164 regulator-always-on; 165 }; 166 167 vdd10_lcd: REG6 { 168 regulator-name = "VDD10_LCD"; 169 regulator-min-microvolt = <1000000>; 170 regulator-max-microvolt = <1000000>; 171 regulator-always-on; 172 }; 173 174 vcca_codec: REG7 { 175 regulator-name = "VCCA_CODEC"; 176 regulator-min-microvolt = <3300000>; 177 regulator-max-microvolt = <3300000>; 178 regulator-always-on; 179 }; 180 181 vcca_tp: REG8 { 182 regulator-name = "VCCA_TP"; 183 regulator-min-microvolt = <3300000>; 184 regulator-max-microvolt = <3300000>; 185 regulator-always-on; 186 }; 187 188 vccio_pmu: REG9 { 189 regulator-name = "VCCIO_PMU"; 190 regulator-min-microvolt = <3300000>; 191 regulator-max-microvolt = <3300000>; 192 regulator-always-on; 193 }; 194 195 vdd_10: REG10 { 196 regulator-name = "VDD_10"; 197 regulator-min-microvolt = <1000000>; 198 regulator-max-microvolt = <1000000>; 199 regulator-always-on; 200 }; 201 202 vcc_18: REG11 { 203 regulator-name = "VCC_18"; 204 regulator-min-microvolt = <1800000>; 205 regulator-max-microvolt = <1800000>; 206 regulator-always-on; 207 }; 208 209 vcc18_lcd: REG12 { 210 regulator-name = "VCC18_LCD"; 211 regulator-min-microvolt = <1800000>; 212 regulator-max-microvolt = <1800000>; 213 regulator-always-on; 214 }; 215 }; 216 }; 217 218 vdd_cpu: syr827@40 { 219 compatible = "silergy,syr827"; 220 reg = <0x40>; 221 fcs,suspend-voltage-selector = <1>; 222 regulator-always-on; 223 regulator-boot-on; 224 regulator-enable-ramp-delay = <300>; 225 regulator-name = "vdd_cpu"; 226 regulator-min-microvolt = <850000>; 227 regulator-max-microvolt = <1350000>; 228 regulator-ramp-delay = <8000>; 229 vin-supply = <&vcc_sys>; 230 }; 231 232 vdd_gpu: syr828@41 { 233 compatible = "silergy,syr828"; 234 reg = <0x41>; 235 fcs,suspend-voltage-selector = <1>; 236 regulator-always-on; 237 regulator-enable-ramp-delay = <300>; 238 regulator-min-microvolt = <850000>; 239 regulator-max-microvolt = <1350000>; 240 regulator-name = "vdd_gpu"; 241 regulator-ramp-delay = <8000>; 242 vin-supply = <&vcc_sys>; 243 }; 244}; 245 246&io_domains { 247 status = "okay"; 248 249 audio-supply = <&vcc_io>; 250 bb-supply = <&vcc_io>; 251 dvp-supply = <&vcc_18>; 252 flash0-supply = <&vcc_flash>; 253 flash1-supply = <&vccio_pmu>; 254 gpio30-supply = <&vccio_pmu>; 255 gpio1830 = <&vcc_io>; 256 lcdc-supply = <&vcc_io>; 257 sdcard-supply = <&vccio_sd>; 258 wifi-supply = <&vcc_18>; 259}; 260 261&pinctrl { 262 pcfg_output_high: pcfg-output-high { 263 output-high; 264 }; 265 266 emmc { 267 emmc_reset: emmc-reset { 268 rockchip,pins = <3 9 RK_FUNC_GPIO &pcfg_pull_none>; 269 }; 270 }; 271 272 gmac { 273 phy_rst: phy-rst { 274 rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>; 275 }; 276 }; 277}; 278 279&tsadc { 280 rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 281 rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 282 status = "okay"; 283}; 284 285&vopb { 286 status = "okay"; 287}; 288 289&vopb_mmu { 290 status = "okay"; 291}; 292 293&vopl { 294 status = "okay"; 295}; 296 297&vopl_mmu { 298 status = "okay"; 299}; 300 301&wdt { 302 status = "okay"; 303}; 304