1/* 2 * Copyright (c) 2015 Caesar Wang <wxt@rock-chips.com> 3 * 4 * This file is dual-licensed: you can use it either under the terms 5 * of the GPL or the X11 license, at your option. Note that this dual 6 * licensing only applies to this file, and not this project as a 7 * whole. 8 * 9 * a) This file is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License as 11 * published by the Free Software Foundation; either version 2 of the 12 * License, or (at your option) any later version. 13 * 14 * This file is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * Or, alternatively, 20 * 21 * b) Permission is hereby granted, free of charge, to any person 22 * obtaining a copy of this software and associated documentation 23 * files (the "Software"), to deal in the Software without 24 * restriction, including without limitation the rights to use, 25 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * sell copies of the Software, and to permit persons to whom the 27 * Software is furnished to do so, subject to the following 28 * conditions: 29 * 30 * The above copyright notice and this permission notice shall be 31 * included in all copies or substantial portions of the Software. 32 * 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * OTHER DEALINGS IN THE SOFTWARE. 41 */ 42 43#include <dt-bindings/input/input.h> 44#include <dt-bindings/pwm/pwm.h> 45#include "rk3368.dtsi" 46 47/ { 48 chosen { 49 stdout-path = "serial2:115200n8"; 50 }; 51 52 memory { 53 device_type = "memory"; 54 reg = <0x0 0x0 0x0 0x40000000>; 55 }; 56 57 backlight: backlight { 58 compatible = "pwm-backlight"; 59 brightness-levels = < 60 0 1 2 3 4 5 6 7 61 8 9 10 11 12 13 14 15 62 16 17 18 19 20 21 22 23 63 24 25 26 27 28 29 30 31 64 32 33 34 35 36 37 38 39 65 40 41 42 43 44 45 46 47 66 48 49 50 51 52 53 54 55 67 56 57 58 59 60 61 62 63 68 64 65 66 67 68 69 70 71 69 72 73 74 75 76 77 78 79 70 80 81 82 83 84 85 86 87 71 88 89 90 91 92 93 94 95 72 96 97 98 99 100 101 102 103 73 104 105 106 107 108 109 110 111 74 112 113 114 115 116 117 118 119 75 120 121 122 123 124 125 126 127 76 128 129 130 131 132 133 134 135 77 136 137 138 139 140 141 142 143 78 144 145 146 147 148 149 150 151 79 152 153 154 155 156 157 158 159 80 160 161 162 163 164 165 166 167 81 168 169 170 171 172 173 174 175 82 176 177 178 179 180 181 182 183 83 184 185 186 187 188 189 190 191 84 192 193 194 195 196 197 198 199 85 200 201 202 203 204 205 206 207 86 208 209 210 211 212 213 214 215 87 216 217 218 219 220 221 222 223 88 224 225 226 227 228 229 230 231 89 232 233 234 235 236 237 238 239 90 240 241 242 243 244 245 246 247 91 248 249 250 251 252 253 254 255>; 92 default-brightness-level = <128>; 93 enable-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>; 94 pinctrl-names = "default"; 95 pinctrl-0 = <&bl_en>; 96 pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>; 97 pwm-delay-us = <10000>; 98 }; 99 100 emmc_pwrseq: emmc-pwrseq { 101 compatible = "mmc-pwrseq-emmc"; 102 pinctrl-0 = <&emmc_reset>; 103 pinctrl-names = "default"; 104 reset-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; 105 }; 106 107 keys: gpio-keys { 108 compatible = "gpio-keys"; 109 pinctrl-names = "default"; 110 pinctrl-0 = <&pwr_key>; 111 112 power { 113 wakeup-source; 114 gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 115 label = "GPIO Power"; 116 linux,code = <KEY_POWER>; 117 }; 118 }; 119 120 /* supplies both host and otg */ 121 vcc_host: vcc-host-regulator { 122 compatible = "regulator-fixed"; 123 enable-active-high; 124 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 125 pinctrl-names = "default"; 126 pinctrl-0 = <&host_vbus_drv>; 127 regulator-name = "vcc_host"; 128 regulator-always-on; 129 regulator-boot-on; 130 vin-supply = <&vcc_sys>; 131 }; 132 133 vcc_lan: vcc-lan-regulator { 134 compatible = "regulator-fixed"; 135 regulator-name = "vcc_lan"; 136 regulator-min-microvolt = <3300000>; 137 regulator-max-microvolt = <3300000>; 138 regulator-always-on; 139 regulator-boot-on; 140 vin-supply = <&vcc_io>; 141 }; 142 143 vcc_sys: vcc-sys-regulator { 144 compatible = "regulator-fixed"; 145 regulator-name = "vcc_sys"; 146 regulator-min-microvolt = <5000000>; 147 regulator-max-microvolt = <5000000>; 148 regulator-always-on; 149 regulator-boot-on; 150 }; 151}; 152 153&emmc { 154 bus-width = <8>; 155 cap-mmc-highspeed; 156 disable-wp; 157 mmc-pwrseq = <&emmc_pwrseq>; 158 non-removable; 159 num-slots = <1>; 160 pinctrl-names = "default"; 161 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 162 status = "okay"; 163}; 164 165&gmac { 166 phy-supply = <&vcc_lan>; 167 phy-mode = "rmii"; 168 clock_in_out = "output"; 169 snps,reset-gpio = <&gpio3 12 0>; 170 snps,reset-active-low; 171 snps,reset-delays-us = <0 10000 1000000>; 172 pinctrl-names = "default"; 173 pinctrl-0 = <&rmii_pins>; 174 tx_delay = <0x30>; 175 rx_delay = <0x10>; 176 status = "ok"; 177}; 178 179&i2c0 { 180 status = "okay"; 181}; 182 183&pinctrl { 184 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 185 bias-disable; 186 drive-strength = <8>; 187 }; 188 189 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 190 bias-pull-up; 191 drive-strength = <8>; 192 }; 193 194 backlight { 195 bl_en: bl-en { 196 rockchip,pins = <0 20 RK_FUNC_GPIO &pcfg_pull_none>; 197 }; 198 }; 199 200 emmc { 201 emmc_bus8: emmc-bus8 { 202 rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 203 <1 19 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 204 <1 20 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 205 <1 21 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 206 <1 22 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 207 <1 23 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 208 <1 24 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 209 <1 25 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; 210 }; 211 212 emmc-clk { 213 rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>; 214 }; 215 216 emmc-cmd { 217 rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; 218 }; 219 220 emmc_reset: emmc-reset { 221 rockchip,pins = <2 3 RK_FUNC_GPIO &pcfg_pull_none>; 222 }; 223 }; 224 225 keys { 226 pwr_key: pwr-key { 227 rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>; 228 }; 229 }; 230 231 pmic { 232 pmic_int: pmic-int { 233 rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_pull_up>; 234 }; 235 }; 236 237 sdio { 238 wifi_reg_on: wifi-reg-on { 239 rockchip,pins = <3 4 RK_FUNC_GPIO &pcfg_pull_none>; 240 }; 241 242 bt_rst: bt-rst { 243 rockchip,pins = <3 5 RK_FUNC_GPIO &pcfg_pull_none>; 244 }; 245 }; 246 247 usb { 248 host_vbus_drv: host-vbus-drv { 249 rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_none>; 250 }; 251 }; 252}; 253 254&pwm0 { 255 status = "okay"; 256}; 257 258&tsadc { 259 rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 260 rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 261 status = "okay"; 262}; 263 264&uart2 { 265 status = "okay"; 266}; 267 268&usb_host0_ehci { 269 status = "okay"; 270}; 271 272&usb_otg { 273 dr_mode = "host"; 274 status = "okay"; 275}; 276 277&wdt { 278 status = "okay"; 279}; 280