Advertisement
Guest User

Untitled

a guest
Feb 16th, 2017
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.85 KB | None | 0 0
  1. /*
  2. * Copyright 2016 Quentin Schulz
  3. *
  4. * Quentin Schulz <quentin.schulz@free-electrons.com>
  5. *
  6. * This file is dual-licensed: you can use it either under the terms
  7. * of the GPL or the X11 license, at your option. Note that this dual
  8. * licensing only applies to this file, and not this project as a
  9. * whole.
  10. *
  11. * a) This file is free software; you can redistribute it and/or
  12. * modify it under the terms of the GNU General Public License as
  13. * published by the Free Software Foundation; either version 2 of the
  14. * License, or (at your option) any later version.
  15. *
  16. * This file is distributed in the hope that it will be useful,
  17. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. * GNU General Public License for more details.
  20. *
  21. * Or, alternatively,
  22. *
  23. * b) Permission is hereby granted, free of charge, to any person
  24. * obtaining a copy of this software and associated documentation
  25. * files (the "Software"), to deal in the Software without
  26. * restriction, including without limitation the rights to use,
  27. * copy, modify, merge, publish, distribute, sublicense, and/or
  28. * sell copies of the Software, and to permit persons to whom the
  29. * Software is furnished to do so, subject to the following
  30. * conditions:
  31. *
  32. * The above copyright notice and this permission notice shall be
  33. * included in all copies or substantial portions of the Software.
  34. *
  35. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  36. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  37. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  38. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  39. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  40. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  41. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  42. * OTHER DEALINGS IN THE SOFTWARE.
  43. */
  44.  
  45. /dts-v1/;
  46. #include "sun8i-a33.dtsi"
  47. #include "sunxi-common-regulators.dtsi"
  48.  
  49. #include <dt-bindings/gpio/gpio.h>
  50. #include <dt-bindings/input/input.h>
  51.  
  52. / {
  53. model = "Allwinner R16 EVB (Parrot)";
  54. compatible = "allwinner,parrot", "allwinner,sun8i-a33";
  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_parrot>;
  68.  
  69. led1 {
  70. label = "parrot:led1:usr";
  71. gpio = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
  72. };
  73.  
  74. led2 {
  75. label = "parrot:led2:usr";
  76. gpio = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
  77. };
  78. };
  79.  
  80. wifi_pwrseq: wifi_pwrseq {
  81. compatible = "mmc-pwrseq-simple";
  82. reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
  83. };
  84.  
  85. };
  86.  
  87. &codec {
  88. status = "okay";
  89. };
  90.  
  91. &dai {
  92. status = "okay";
  93. };
  94.  
  95. &ehci0 {
  96. status = "okay";
  97. };
  98.  
  99. &i2c1 {
  100. pinctrl-names = "default";
  101. pinctrl-0 = <&i2c1_pins_a>;
  102. status = "okay";
  103.  
  104. /*
  105. * FIXME: An as-yet-unknown accelerometer is connected to this
  106. * i2c bus.
  107. */
  108. };
  109.  
  110. &lradc {
  111. vref-supply = <&reg_aldo3>;
  112. status = "okay";
  113.  
  114. button@0 {
  115. label = "V+";
  116. linux,code = <KEY_VOLUMEUP>;
  117. channel = <0>;
  118. voltage = <190000>;
  119. };
  120.  
  121. button@1 {
  122. label = "V-";
  123. linux,code = <KEY_VOLUMEDOWN>;
  124. channel = <0>;
  125. voltage = <390000>;
  126. };
  127.  
  128. };
  129.  
  130. &mmc0 {
  131. pinctrl-names = "default";
  132. pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_parrot>;
  133. vmmc-supply = <&reg_dcdc1>;
  134. cd-gpios = <&pio 3 14 GPIO_ACTIVE_LOW>; /* PD14 */
  135. bus-width = <4>;
  136. status = "okay";
  137. };
  138.  
  139. &mmc1 {
  140. pinctrl-names = "default";
  141. pinctrl-0 = <&mmc1_pins_a>, <&wifi_reset_pin_parrot>;
  142. vmmc-supply = <&reg_aldo1>;
  143. mmc-pwrseq = <&wifi_pwrseq>;
  144. bus-width = <4>;
  145. non-removable;
  146. status = "okay";
  147. };
  148.  
  149. &mmc2 {
  150. pinctrl-names = "default";
  151. pinctrl-0 = <&mmc2_8bit_pins>;
  152. vmmc-supply = <&reg_dcdc1>;
  153. bus-width = <8>;
  154. non-removable;
  155. cap-mmc-hw-reset;
  156. status = "okay";
  157. };
  158.  
  159. &mmc2_8bit_pins {
  160. drive-strength = <40>;
  161. bias-pull-up;
  162. };
  163.  
  164. &ohci0 {
  165. status = "okay";
  166. };
  167.  
  168. &pio {
  169. mmc0_cd_pin_parrot: mmc0_cd_pin@0 {
  170. pins = "PD14";
  171. function = "gpio_in";
  172. bias-pull-up;
  173. };
  174.  
  175. led_pins_parrot: led_pins@0 {
  176. pins = "PE16", "PE17";
  177. function = "gpio_out";
  178. };
  179.  
  180. usb0_id_det: usb0_id_detect_pin@0 {
  181. pins = "PD10";
  182. function = "gpio_in";
  183. bias-pull-up;
  184. };
  185.  
  186. usb1_vbus_pin_parrot: usb1_vbus_pin@0 {
  187. pins = "PD12";
  188. function = "gpio_out";
  189. };
  190. };
  191.  
  192. &r_pio {
  193. wifi_reset_pin_parrot: wifi_reset_pin@0 {
  194. pins = "PL6";
  195. function = "gpio_out";
  196. };
  197. };
  198.  
  199. &r_rsb {
  200. status = "okay";
  201.  
  202. axp22x: pmic@3a3 {
  203. compatible = "x-powers,axp223";
  204. reg = <0x3a3>;
  205. interrupt-parent = <&nmi_intc>;
  206. interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
  207. drivevbus-supply = <&reg_vcc5v0>;
  208. x-powers,drive-vbus-en;
  209. };
  210. };
  211.  
  212. #include "axp223.dtsi"
  213.  
  214. &reg_aldo1 {
  215. regulator-always-on;
  216. regulator-min-microvolt = <3000000>;
  217. regulator-max-microvolt = <3000000>;
  218. regulator-name = "vcc-io";
  219. };
  220.  
  221. &reg_aldo2 {
  222. regulator-always-on;
  223. regulator-min-microvolt = <2350000>;
  224. regulator-max-microvolt = <2650000>;
  225. regulator-name = "vdd-dll";
  226. };
  227.  
  228. &reg_aldo3 {
  229. regulator-always-on;
  230. regulator-min-microvolt = <2700000>;
  231. regulator-max-microvolt = <3300000>;
  232. regulator-name = "vcc-pll-avcc";
  233. };
  234.  
  235. &reg_dc5ldo {
  236. regulator-always-on;
  237. regulator-min-microvolt = <900000>;
  238. regulator-max-microvolt = <1400000>;
  239. regulator-name = "vdd-cpus";
  240. };
  241.  
  242. &reg_dcdc1 {
  243. regulator-always-on;
  244. regulator-min-microvolt = <3000000>;
  245. regulator-max-microvolt = <3000000>;
  246. regulator-name = "vcc-3v0";
  247. };
  248.  
  249. &reg_dcdc2 {
  250. regulator-always-on;
  251. regulator-min-microvolt = <900000>;
  252. regulator-max-microvolt = <1400000>;
  253. regulator-name = "vdd-sys";
  254. };
  255.  
  256. &reg_dcdc3 {
  257. regulator-always-on;
  258. regulator-min-microvolt = <900000>;
  259. regulator-max-microvolt = <1400000>;
  260. regulator-name = "vdd-cpu";
  261. };
  262.  
  263. &reg_dcdc5 {
  264. regulator-always-on;
  265. regulator-min-microvolt = <1500000>;
  266. regulator-max-microvolt = <1500000>;
  267. regulator-name = "vcc-dram";
  268. };
  269.  
  270. &reg_dldo1 {
  271. /*
  272. * TODO: WiFi chip needs dldo1 AND dldo2 to be on to be powered.
  273. * Remove next line once it is possible to sync two regulators.
  274. */
  275. regulator-always-on;
  276. regulator-min-microvolt = <3300000>;
  277. regulator-max-microvolt = <3300000>;
  278. regulator-name = "vcc-wifi0";
  279. };
  280.  
  281. &reg_dldo2 {
  282. /*
  283. * TODO: WiFi chip needs dldo1 AND dldo2 to be on to be powered.
  284. * Remove next line once it is possible to sync two regulators.
  285. */
  286. regulator-always-on;
  287. regulator-min-microvolt = <3300000>;
  288. regulator-max-microvolt = <3300000>;
  289. regulator-name = "vcc-wifi1";
  290. };
  291.  
  292. &reg_dldo3 {
  293. regulator-min-microvolt = <3000000>;
  294. regulator-max-microvolt = <3000000>;
  295. regulator-name = "vcc-3v0-csi";
  296. };
  297.  
  298. &reg_drivevbus {
  299. regulator-name = "usb0-vbus";
  300. status = "okay";
  301. };
  302.  
  303. &reg_eldo1 {
  304. regulator-min-microvolt = <1200000>;
  305. regulator-max-microvolt = <1200000>;
  306. regulator-name = "vcc-1v2-hsic";
  307. };
  308.  
  309. &reg_eldo2 {
  310. regulator-min-microvolt = <3000000>;
  311. regulator-max-microvolt = <3000000>;
  312. regulator-name = "vcc-dsp";
  313. };
  314.  
  315. &reg_eldo3 {
  316. regulator-min-microvolt = <3000000>;
  317. regulator-max-microvolt = <3000000>;
  318. regulator-name = "eldo3";
  319. };
  320.  
  321. &reg_usb1_vbus {
  322. pinctrl-names = "default";
  323. pinctrl-0 = <&usb1_vbus_pin_parrot>;
  324. gpio = <&pio 3 12 GPIO_ACTIVE_HIGH>; /* PD12 */
  325. status = "okay";
  326. };
  327.  
  328. &sound {
  329. status = "okay";
  330. };
  331.  
  332. &uart0 {
  333. pinctrl-names = "default";
  334. pinctrl-0 = <&uart0_pins_b>;
  335. status = "okay";
  336. };
  337.  
  338. &usb_otg {
  339. dr_mode = "otg";
  340. status = "okay";
  341. };
  342.  
  343. &usb_power_supply {
  344. status = "okay";
  345. };
  346.  
  347. &usbphy {
  348. status = "okay";
  349. pinctrl-names = "default";
  350. pinctrl-0 = <&usb0_id_det>;
  351. usb0_vbus-supply = <&reg_drivevbus>;
  352. usb0_id_det-gpios = <&pio 3 10 GPIO_ACTIVE_HIGH>; /* PD10 */
  353. usb0_vbus_power-supply = <&usb_power_supply>;
  354. usb1_vbus-supply = <&reg_usb1_vbus>;
  355. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement