The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/src/arm/sun8i-r40-bananapi-m2-ultra.dts

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (C) 2017 Chen-Yu Tsai <wens@csie.org>
    3  * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
    4  *
    5  * This file is dual-licensed: you can use it either under the terms
    6  * of the GPL or the X11 license, at your option. Note that this dual
    7  * licensing only applies to this file, and not this project as a
    8  * whole.
    9  *
   10  *  a) This file is free software; you can redistribute it and/or
   11  *     modify it under the terms of the GNU General Public License as
   12  *     published by the Free Software Foundation; either version 2 of the
   13  *     License, or (at your option) any later version.
   14  *
   15  *     This file is distributed in the hope that it will be useful,
   16  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
   17  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   18  *     GNU General Public License for more details.
   19  *
   20  * Or, alternatively,
   21  *
   22  *  b) Permission is hereby granted, free of charge, to any person
   23  *     obtaining a copy of this software and associated documentation
   24  *     files (the "Software"), to deal in the Software without
   25  *     restriction, including without limitation the rights to use,
   26  *     copy, modify, merge, publish, distribute, sublicense, and/or
   27  *     sell copies of the Software, and to permit persons to whom the
   28  *     Software is furnished to do so, subject to the following
   29  *     conditions:
   30  *
   31  *     The above copyright notice and this permission notice shall be
   32  *     included in all copies or substantial portions of the Software.
   33  *
   34  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   35  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
   36  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
   37  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
   38  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
   39  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   40  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
   41  *     OTHER DEALINGS IN THE SOFTWARE.
   42  */
   43 
   44 /dts-v1/;
   45 #include "sun8i-r40.dtsi"
   46 #include "sun8i-r40-cpu-opp.dtsi"
   47 
   48 #include <dt-bindings/gpio/gpio.h>
   49 
   50 / {
   51         model = "Banana Pi BPI-M2-Ultra";
   52         compatible = "sinovoip,bpi-m2-ultra", "allwinner,sun8i-r40";
   53 
   54         aliases {
   55                 ethernet0 = &gmac;
   56                 serial0 = &uart0;
   57         };
   58 
   59         chosen {
   60                 stdout-path = "serial0:115200n8";
   61         };
   62 
   63         connector {
   64                 compatible = "hdmi-connector";
   65                 type = "a";
   66 
   67                 port {
   68                         hdmi_con_in: endpoint {
   69                                 remote-endpoint = <&hdmi_out_con>;
   70                         };
   71                 };
   72         };
   73 
   74         leds {
   75                 compatible = "gpio-leds";
   76 
   77                 pwr-led {
   78                         label = "bananapi:red:pwr";
   79                         gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
   80                         default-state = "on";
   81                 };
   82 
   83                 user-led-green {
   84                         label = "bananapi:green:user";
   85                         gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
   86                 };
   87 
   88                 user-led-blue {
   89                         label = "bananapi:blue:user";
   90                         gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>;
   91                 };
   92         };
   93 
   94         reg_vcc5v0: vcc5v0 {
   95                 compatible = "regulator-fixed";
   96                 regulator-name = "vcc5v0";
   97                 regulator-min-microvolt = <5000000>;
   98                 regulator-max-microvolt = <5000000>;
   99                 gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; /* PH23 */
  100                 enable-active-high;
  101         };
  102 
  103         wifi_pwrseq: wifi_pwrseq {
  104                 compatible = "mmc-pwrseq-simple";
  105                 reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
  106                 clocks = <&ccu CLK_OUTA>;
  107                 clock-names = "ext_clock";
  108         };
  109 };
  110 
  111 &ahci {
  112         ahci-supply = <&reg_dldo4>;
  113         phy-supply = <&reg_eldo3>;
  114         status = "okay";
  115 };
  116 
  117 &cpu0 {
  118         cpu-supply = <&reg_dcdc2>;
  119 };
  120 
  121 &de {
  122         status = "okay";
  123 };
  124 
  125 &ehci1 {
  126         status = "okay";
  127 };
  128 
  129 &ehci2 {
  130         status = "okay";
  131 };
  132 
  133 &gmac {
  134         pinctrl-names = "default";
  135         pinctrl-0 = <&gmac_rgmii_pins>;
  136         phy-handle = <&phy1>;
  137         phy-mode = "rgmii-id";
  138         phy-supply = <&reg_dc1sw>;
  139         status = "okay";
  140 };
  141 
  142 &gmac_mdio {
  143         phy1: ethernet-phy@1 {
  144                 compatible = "ethernet-phy-ieee802.3-c22";
  145                 reg = <1>;
  146         };
  147 };
  148 
  149 &hdmi {
  150         status = "okay";
  151 };
  152 
  153 &hdmi_out {
  154         hdmi_out_con: endpoint {
  155                 remote-endpoint = <&hdmi_con_in>;
  156         };
  157 };
  158 
  159 &i2c0 {
  160         status = "okay";
  161 
  162         axp22x: pmic@34 {
  163                 compatible = "x-powers,axp221";
  164                 reg = <0x34>;
  165                 interrupt-parent = <&nmi_intc>;
  166                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
  167         };
  168 };
  169 
  170 #include "axp22x.dtsi"
  171 
  172 &ir0 {
  173         status = "okay";
  174 };
  175 
  176 &mmc0 {
  177         vmmc-supply = <&reg_dcdc1>;
  178         bus-width = <4>;
  179         cd-gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */
  180         status = "okay";
  181 };
  182 
  183 &mmc1 {
  184         pinctrl-names = "default";
  185         pinctrl-0 = <&mmc1_pg_pins>;
  186         vmmc-supply = <&reg_dldo2>;
  187         vqmmc-supply = <&reg_dldo1>;
  188         mmc-pwrseq = <&wifi_pwrseq>;
  189         bus-width = <4>;
  190         non-removable;
  191         status = "okay";
  192 };
  193 
  194 &mmc2 {
  195         vmmc-supply = <&reg_dcdc1>;
  196         vqmmc-supply = <&reg_dcdc1>;
  197         bus-width = <8>;
  198         non-removable;
  199         status = "okay";
  200 };
  201 
  202 &ohci1 {
  203         status = "okay";
  204 };
  205 
  206 &ohci2 {
  207         status = "okay";
  208 };
  209 
  210 &pio {
  211         pinctrl-names = "default";
  212         pinctrl-0 = <&clk_out_a_pin>;
  213         vcc-pa-supply = <&reg_aldo2>;
  214         vcc-pc-supply = <&reg_dcdc1>;
  215         vcc-pd-supply = <&reg_dcdc1>;
  216         vcc-pe-supply = <&reg_eldo1>;
  217         vcc-pf-supply = <&reg_dcdc1>;
  218         vcc-pg-supply = <&reg_dldo1>;
  219 };
  220 
  221 &reg_aldo2 {
  222         regulator-min-microvolt = <2500000>;
  223         regulator-max-microvolt = <2500000>;
  224         regulator-name = "vcc-pa";
  225 };
  226 
  227 &reg_aldo3 {
  228         regulator-always-on;
  229         regulator-min-microvolt = <2700000>;
  230         regulator-max-microvolt = <3300000>;
  231         regulator-name = "avcc";
  232 };
  233 
  234 &reg_dc1sw {
  235         regulator-min-microvolt = <3300000>;
  236         regulator-max-microvolt = <3300000>;
  237         regulator-name = "vcc-gmac-phy";
  238 };
  239 
  240 &reg_dcdc1 {
  241         regulator-always-on;
  242         regulator-min-microvolt = <3300000>;
  243         regulator-max-microvolt = <3300000>;
  244         regulator-name = "vcc-3v3";
  245 };
  246 
  247 &reg_dcdc2 {
  248         regulator-always-on;
  249         regulator-min-microvolt = <1000000>;
  250         regulator-max-microvolt = <1300000>;
  251         regulator-name = "vdd-cpu";
  252 };
  253 
  254 &reg_dcdc3 {
  255         regulator-always-on;
  256         regulator-min-microvolt = <1000000>;
  257         regulator-max-microvolt = <1300000>;
  258         regulator-name = "vdd-sys";
  259 };
  260 
  261 &reg_dcdc5 {
  262         regulator-always-on;
  263         regulator-min-microvolt = <1500000>;
  264         regulator-max-microvolt = <1500000>;
  265         regulator-name = "vcc-dram";
  266 };
  267 
  268 &reg_dldo1 {
  269         regulator-min-microvolt = <1800000>;
  270         regulator-max-microvolt = <3300000>;
  271         regulator-name = "vcc-wifi-io";
  272 };
  273 
  274 /*
  275  * Our WiFi chip needs both DLDO2 and DLDO3 to be powered at the same
  276  * time, with the two being in sync, to be able to meet maximum power
  277  * consumption during transmits. Since this is not really supported
  278  * right now, just use the two as always on, and we will fix it later.
  279  */
  280 
  281 &reg_dldo2 {
  282         regulator-always-on;
  283         regulator-min-microvolt = <3300000>;
  284         regulator-max-microvolt = <3300000>;
  285         regulator-name = "vcc-wifi";
  286 };
  287 
  288 &reg_dldo3 {
  289         regulator-always-on;
  290         regulator-min-microvolt = <3300000>;
  291         regulator-max-microvolt = <3300000>;
  292         regulator-name = "vcc-wifi-2";
  293 };
  294 
  295 &reg_dldo4 {
  296         regulator-min-microvolt = <2500000>;
  297         regulator-max-microvolt = <2500000>;
  298         regulator-name = "vdd2v5-sata";
  299 };
  300 
  301 &reg_eldo3 {
  302         regulator-min-microvolt = <1200000>;
  303         regulator-max-microvolt = <1200000>;
  304         regulator-name = "vdd1v2-sata";
  305 };
  306 
  307 &tcon_tv0 {
  308         status = "okay";
  309 };
  310 
  311 &uart0 {
  312         pinctrl-names = "default";
  313         pinctrl-0 = <&uart0_pb_pins>;
  314         status = "okay";
  315 };
  316 
  317 &uart3 {
  318         pinctrl-names = "default";
  319         pinctrl-0 = <&uart3_pg_pins>, <&uart3_rts_cts_pg_pins>;
  320         uart-has-rtscts;
  321         status = "okay";
  322 
  323         bluetooth {
  324                 compatible = "brcm,bcm43438-bt";
  325                 clocks = <&ccu CLK_OUTA>;
  326                 clock-names = "lpo";
  327                 vbat-supply = <&reg_dldo2>;
  328                 vddio-supply = <&reg_dldo1>;
  329                 device-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
  330                 /* TODO host wake line connected to PMIC GPIO pins */
  331                 shutdown-gpios = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */
  332                 max-speed = <1500000>;
  333         };
  334 };
  335 
  336 &usbphy {
  337         usb1_vbus-supply = <&reg_vcc5v0>;
  338         usb2_vbus-supply = <&reg_vcc5v0>;
  339         status = "okay";
  340 };

Cache object: f3047d3fd1d8efedbddff2daf8993d6e


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.