1/* 2 * Copyright 2015 Tyler Baker 3 * 4 * Tyler Baker <tyler.baker@linaro.org> 5 * Chen-Yu Tsai <wens@csie.org> 6 * 7 * This file is dual-licensed: you can use it either under the terms 8 * of the GPL or the X11 license, at your option. Note that this dual 9 * licensing only applies to this file, and not this project as a 10 * whole. 11 * 12 * a) This file is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU General Public License as 14 * published by the Free Software Foundation; either version 2 of the 15 * License, or (at your option) any later version. 16 * 17 * This file is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * GNU General Public License for more details. 21 * 22 * Or, alternatively, 23 * 24 * b) Permission is hereby granted, free of charge, to any person 25 * obtaining a copy of this software and associated documentation 26 * files (the "Software"), to deal in the Software without 27 * restriction, including without limitation the rights to use, 28 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * sell copies of the Software, and to permit persons to whom the 30 * Software is furnished to do so, subject to the following 31 * conditions: 32 * 33 * The above copyright notice and this permission notice shall be 34 * included in all copies or substantial portions of the Software. 35 * 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * OTHER DEALINGS IN THE SOFTWARE. 44 */ 45 46/dts-v1/; 47#include "sun9i-a80.dtsi" 48 49#include <dt-bindings/gpio/gpio.h> 50#include <dt-bindings/pinctrl/sun4i-a10.h> 51 52/ { 53 model = "Cubietech Cubieboard4"; 54 compatible = "cubietech,a80-cubieboard4", "allwinner,sun9i-a80"; 55 56 aliases { 57 serial0 = &uart0; 58 }; 59 60 chosen { 61 stdout-path = "serial0:115200n8"; 62 }; 63 64 leds { 65 compatible = "gpio-leds"; 66 pinctrl-names = "default"; 67 pinctrl-0 = <&led_pins_cubieboard4>; 68 69 green { 70 label = "cubieboard4:green:usr"; 71 gpios = <&pio 7 17 GPIO_ACTIVE_HIGH>; /* PH17 */ 72 }; 73 74 red { 75 label = "cubieboard4:red:usr"; 76 gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ 77 }; 78 }; 79}; 80 81&mmc0 { 82 pinctrl-names = "default"; 83 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_cubieboard4>; 84 vmmc-supply = <®_dcdc1>; 85 bus-width = <4>; 86 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH18 */ 87 cd-inverted; 88 status = "okay"; 89}; 90 91&mmc2 { 92 pinctrl-names = "default"; 93 pinctrl-0 = <&mmc2_8bit_pins>; 94 vmmc-supply = <®_dcdc1>; 95 bus-width = <8>; 96 non-removable; 97 cap-mmc-hw-reset; 98 status = "okay"; 99}; 100 101&mmc2_8bit_pins { 102 /* Increase drive strength for DDR modes */ 103 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 104}; 105 106&pio { 107 led_pins_cubieboard4: led-pins@0 { 108 allwinner,pins = "PH6", "PH17"; 109 allwinner,function = "gpio_out"; 110 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 111 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 112 }; 113 114 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 { 115 allwinner,pins = "PH18"; 116 allwinner,function = "gpio_in"; 117 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 118 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 119 }; 120}; 121 122&r_ir { 123 status = "okay"; 124}; 125 126&r_rsb { 127 status = "okay"; 128 129 axp809: pmic@3a3 { 130 reg = <0x3a3>; 131 interrupt-parent = <&nmi_intc>; 132 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 133 134 regulators { 135 reg_aldo1: aldo1 { 136 /* 137 * TODO: This should be handled by the 138 * USB PHY driver. 139 */ 140 regulator-always-on; 141 regulator-min-microvolt = <3000000>; 142 regulator-max-microvolt = <3000000>; 143 regulator-name = "vcc33-usbh"; 144 }; 145 146 reg_aldo2: aldo2 { 147 regulator-min-microvolt = <1800000>; 148 regulator-max-microvolt = <1800000>; 149 regulator-name = "vcc-pb-io-cam"; 150 }; 151 152 aldo3 { 153 /* unused */ 154 }; 155 156 reg_dc5ldo: dc5ldo { 157 regulator-always-on; 158 regulator-min-microvolt = <800000>; 159 regulator-max-microvolt = <1100000>; 160 regulator-name = "vdd-cpus-09-usbh"; 161 }; 162 163 reg_dcdc1: dcdc1 { 164 regulator-always-on; 165 regulator-min-microvolt = <3000000>; 166 regulator-max-microvolt = <3000000>; 167 regulator-name = "vcc-3v"; 168 }; 169 170 reg_dcdc2: dcdc2 { 171 regulator-min-microvolt = <800000>; 172 regulator-max-microvolt = <1100000>; 173 regulator-name = "vdd-gpu"; 174 }; 175 176 reg_dcdc3: dcdc3 { 177 regulator-always-on; 178 regulator-min-microvolt = <800000>; 179 regulator-max-microvolt = <1100000>; 180 regulator-name = "vdd-cpua"; 181 }; 182 183 reg_dcdc4: dcdc4 { 184 regulator-always-on; 185 regulator-min-microvolt = <800000>; 186 regulator-max-microvolt = <1100000>; 187 regulator-name = "vdd-sys-usb0-hdmi"; 188 }; 189 190 reg_dcdc5: dcdc5 { 191 regulator-always-on; 192 regulator-min-microvolt = <1425000>; 193 regulator-max-microvolt = <1575000>; 194 regulator-name = "vcc-dram"; 195 }; 196 197 reg_dldo1: dldo1 { 198 /* 199 * The WiFi chip supports a wide range 200 * (3.0 ~ 4.8V) of voltages, and so does 201 * this regulator (3.0 ~ 4.2V), but 202 * Allwinner SDK always sets it to 3.3V. 203 */ 204 regulator-min-microvolt = <3300000>; 205 regulator-max-microvolt = <3300000>; 206 regulator-name = "vcc-wifi"; 207 }; 208 209 reg_dldo2: dldo2 { 210 regulator-always-on; 211 regulator-min-microvolt = <3000000>; 212 regulator-max-microvolt = <3000000>; 213 regulator-name = "vcc-pl"; 214 }; 215 216 reg_eldo1: eldo1 { 217 regulator-min-microvolt = <1200000>; 218 regulator-max-microvolt = <1200000>; 219 regulator-name = "vcc-dvdd-cam"; 220 }; 221 222 reg_eldo2: eldo2 { 223 regulator-min-microvolt = <1800000>; 224 regulator-max-microvolt = <1800000>; 225 regulator-name = "vcc-pe"; 226 }; 227 228 reg_eldo3: eldo3 { 229 regulator-always-on; 230 regulator-min-microvolt = <3000000>; 231 regulator-max-microvolt = <3000000>; 232 regulator-name = "vcc-pm-codec-io1"; 233 }; 234 235 reg_ldo_io0: ldo_io0 { 236 regulator-always-on; 237 regulator-min-microvolt = <3000000>; 238 regulator-max-microvolt = <3000000>; 239 regulator-name = "vcc-pg"; 240 }; 241 242 reg_ldo_io1: ldo_io1 { 243 regulator-min-microvolt = <2500000>; 244 regulator-max-microvolt = <2500000>; 245 regulator-name = "vcc-pa-gmac-2v5"; 246 }; 247 248 reg_rtc_ldo: rtc_ldo { 249 regulator-name = "vcc-rtc-vdd1v8-io"; 250 }; 251 }; 252 }; 253}; 254 255#include "axp809.dtsi" 256 257&uart0 { 258 pinctrl-names = "default"; 259 pinctrl-0 = <&uart0_pins_a>; 260 status = "okay"; 261}; 262