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-h2-plus-bananapi-m2-zero.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 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
    2 /*
    3  * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
    4  *
    5  * Based on sun8i-h3-bananapi-m2-plus.dts, which is:
    6  *   Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org>
    7  */
    8 
    9 /dts-v1/;
   10 #include "sun8i-h3.dtsi"
   11 #include "sunxi-common-regulators.dtsi"
   12 
   13 #include <dt-bindings/gpio/gpio.h>
   14 #include <dt-bindings/input/input.h>
   15 
   16 / {
   17         model = "Banana Pi BPI-M2-Zero";
   18         compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus";
   19 
   20         aliases {
   21                 serial0 = &uart0;
   22                 serial1 = &uart1;
   23         };
   24 
   25         chosen {
   26                 stdout-path = "serial0:115200n8";
   27         };
   28 
   29         connector {
   30                 compatible = "hdmi-connector";
   31                 type = "c";
   32 
   33                 port {
   34                         hdmi_con_in: endpoint {
   35                                 remote-endpoint = <&hdmi_out_con>;
   36                         };
   37                 };
   38         };
   39 
   40         leds {
   41                 compatible = "gpio-leds";
   42 
   43                 pwr_led {
   44                         label = "bananapi-m2-zero:red:pwr";
   45                         gpios = <&r_pio 0 10 GPIO_ACTIVE_LOW>; /* PL10 */
   46                         default-state = "on";
   47                 };
   48         };
   49 
   50         gpio-keys {
   51                 compatible = "gpio-keys";
   52 
   53                 switch-4 {
   54                         label = "power";
   55                         linux,code = <KEY_POWER>;
   56                         gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
   57                         wakeup-source;
   58                 };
   59         };
   60 
   61         reg_vdd_cpux: vdd-cpux-regulator {
   62                 compatible = "regulator-gpio";
   63                 regulator-name = "vdd-cpux";
   64                 regulator-type = "voltage";
   65                 regulator-boot-on;
   66                 regulator-always-on;
   67                 regulator-min-microvolt = <1100000>;
   68                 regulator-max-microvolt = <1300000>;
   69                 regulator-ramp-delay = <50>; /* 4ms */
   70 
   71                 gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */
   72                 enable-active-high;
   73                 gpios-states = <0x1>;
   74                 states = <1100000 0>, <1300000 1>;
   75         };
   76 
   77         reg_vcc_dram: vcc-dram {
   78                 compatible = "regulator-fixed";
   79                 regulator-name = "vcc-dram";
   80                 regulator-min-microvolt = <1500000>;
   81                 regulator-max-microvolt = <1500000>;
   82                 regulator-always-on;
   83                 regulator-boot-on;
   84                 enable-active-high;
   85                 gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
   86                 vin-supply = <&reg_vcc5v0>;
   87         };
   88 
   89         reg_vcc1v2: vcc1v2 {
   90                 compatible = "regulator-fixed";
   91                 regulator-name = "vcc1v2";
   92                 regulator-min-microvolt = <1200000>;
   93                 regulator-max-microvolt = <1200000>;
   94                 regulator-always-on;
   95                 regulator-boot-on;
   96                 enable-active-high;
   97                 gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
   98                 vin-supply = <&reg_vcc5v0>;
   99         };
  100 
  101         poweroff {
  102                 compatible = "regulator-poweroff";
  103                 cpu-supply = <&reg_vcc1v2>;
  104         };
  105 
  106         wifi_pwrseq: wifi_pwrseq {
  107                 compatible = "mmc-pwrseq-simple";
  108                 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
  109                 clocks = <&rtc CLK_OSC32K_FANOUT>;
  110                 clock-names = "ext_clock";
  111         };
  112 };
  113 
  114 &cpu0 {
  115         cpu-supply = <&reg_vdd_cpux>;
  116 };
  117 
  118 &de {
  119         status = "okay";
  120 };
  121 
  122 &ehci0 {
  123         status = "okay";
  124 };
  125 
  126 &hdmi {
  127         status = "okay";
  128 };
  129 
  130 &hdmi_out {
  131         hdmi_out_con: endpoint {
  132                 remote-endpoint = <&hdmi_con_in>;
  133         };
  134 };
  135 
  136 &mmc0 {
  137         vmmc-supply = <&reg_vcc3v3>;
  138         bus-width = <4>;
  139         /*
  140          * On the production batch of this board the card detect GPIO is
  141          * high active (card inserted), although on the early samples it's
  142          * low active.
  143          */
  144         cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
  145         status = "okay";
  146 };
  147 
  148 &mmc1 {
  149         vmmc-supply = <&reg_vcc3v3>;
  150         vqmmc-supply = <&reg_vcc3v3>;
  151         mmc-pwrseq = <&wifi_pwrseq>;
  152         bus-width = <4>;
  153         non-removable;
  154         status = "okay";
  155 
  156         brcmf: wifi@1 {
  157                 reg = <1>;
  158                 compatible = "brcm,bcm4329-fmac";
  159                 interrupt-parent = <&pio>;
  160                 interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
  161                 interrupt-names = "host-wake";
  162         };
  163 };
  164 
  165 &ohci0 {
  166         status = "okay";
  167 };
  168 
  169 &uart0 {
  170         pinctrl-names = "default";
  171         pinctrl-0 = <&uart0_pa_pins>;
  172         status = "okay";
  173 };
  174 
  175 &uart1 {
  176         pinctrl-names = "default";
  177         pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
  178         uart-has-rtscts;
  179         status = "okay";
  180 
  181         bluetooth {
  182                 compatible = "brcm,bcm43438-bt";
  183                 max-speed = <1500000>;
  184                 clocks = <&rtc CLK_OSC32K_FANOUT>;
  185                 clock-names = "lpo";
  186                 vbat-supply = <&reg_vcc3v3>;
  187                 vddio-supply = <&reg_vcc3v3>;
  188                 device-wakeup-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */
  189                 host-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
  190                 shutdown-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
  191         };
  192 
  193 };
  194 
  195 &pio {
  196         gpio-line-names =
  197                 /* PA */
  198                 "CON2-P13", "CON2-P11", "CON2-P22", "CON2-P15",
  199                         "CON3-P03", "CON3-P02", "CON2-P07", "CON2-P29",
  200                 "CON2-P31", "CON2-P33", "CON2-P35", "CON2-P05",
  201                         "CON2-P03", "CON2-P08", "CON2-P10", "CON2-P16",
  202                 "CON2-P12", "CON2-P37", "CON2-P28", "CON2-P27",
  203                         "CON2-P40", "CON2-P38", "", "",
  204                 "", "", "", "", "", "", "", "",
  205 
  206                 /* PB */
  207                 "", "", "", "", "", "", "", "",
  208                 "", "", "", "", "", "", "", "",
  209                 "", "", "", "", "", "", "", "",
  210                 "", "", "", "", "", "", "", "",
  211 
  212                 /* PC */
  213                 "CON2-P19", "CON2-P21", "CON2-P23", "CON2-P24",
  214                         "CON2-P18", "", "", "CON2-P26",
  215                 "", "", "", "", "", "", "", "",
  216                 "", "", "", "", "", "", "", "",
  217                 "", "", "", "", "", "", "", "",
  218 
  219                 /* PD */
  220                 "", "", "", "", "", "", "", "",
  221                 "", "", "", "", "", "", "CSI-PWR-EN", "",
  222                 "", "", "", "", "", "", "", "",
  223                 "", "", "", "", "", "", "", "",
  224 
  225                 /* PE */
  226                 "CN3-P17", "CN3-P13", "CN3-P09", "CN3-P07",
  227                         "CN3-P19", "CN3-P21", "CN3-P22", "CN3-P20",
  228                 "CN3-P18", "CN3-P16", "CN3-P14", "CN3-P12",
  229                         "CN3-P05", "CN3-P03", "CN3-P06", "CN3-P08",
  230                 "", "", "", "", "", "", "", "",
  231                 "", "", "", "", "", "", "", "",
  232 
  233                 /* PF */
  234                 "SDC0-D1", "SDC0-D0", "SDC0-CLK", "SDC0-CMD", "SDC0-D3",
  235                         "SDC0-D2", "SDC0-DET", "",
  236                 "", "", "", "", "", "", "", "",
  237                 "", "", "", "", "", "", "", "",
  238                 "", "", "", "", "", "", "", "",
  239 
  240                 /* PG */
  241                 "WL-SDIO-CLK", "WL-SDIO-CMD", "WL-SDIO-D0", "WL-SDIO-D1",
  242                         "WL-SDIO-D2", "WL-SDIO-D3", "BT-UART-TX", "BT-UART-RX",
  243                 "BT-UART-RTS", "BT-UART-CTS", "WL-WAKE-AP", "BT-WAKE-AP",
  244                         "BT-RST-N", "AP-WAKE-BT", "", "",
  245                 "", "", "", "", "", "", "", "",
  246                 "", "", "", "", "", "", "", "";
  247 };
  248 
  249 &r_pio {
  250         gpio-line-names =
  251                 /* PL */
  252                 "", "CPUX-SET", "CON2-P32", "POWER-KEY", "CON2-P36",
  253                         "VCC-IO-EN", "USB0-ID", "WL-PWR-EN",
  254                 "PWR-STB", "PWR-DRAM", "PWR-LED", "IR-RX", "", "", "", "",
  255                 "", "", "", "", "", "", "", "",
  256                 "", "", "", "", "", "", "", "";
  257 };
  258 
  259 &usb_otg {
  260         dr_mode = "otg";
  261         status = "okay";
  262 };
  263 
  264 &usbphy {
  265         usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
  266         /*
  267          * There're two micro-USB connectors, one is power-only and another is
  268          * OTG. The Vbus of these two connectors are connected together, so
  269          * the external USB device will be powered just by the power input
  270          * from the power-only USB port.
  271          */
  272         status = "okay";
  273 };

Cache object: 090e24b5e26005cfef365c3e0dcf7cd0


[ 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.