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/arm64/mediatek/mt7622-bananapi-bpi-r64.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) 2018 MediaTek Inc.
    3  * Author: Ryder Lee <ryder.lee@mediatek.com>
    4  *
    5  * SPDX-License-Identifier: (GPL-2.0 OR MIT)
    6  */
    7 
    8 /dts-v1/;
    9 #include <dt-bindings/input/input.h>
   10 #include <dt-bindings/gpio/gpio.h>
   11 #include <dt-bindings/leds/common.h>
   12 
   13 #include "mt7622.dtsi"
   14 #include "mt6380.dtsi"
   15 
   16 / {
   17         model = "Bananapi BPI-R64";
   18         compatible = "bananapi,bpi-r64", "mediatek,mt7622";
   19 
   20         aliases {
   21                 serial0 = &uart0;
   22         };
   23 
   24         chosen {
   25                 stdout-path = "serial0:115200n8";
   26                 bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512";
   27         };
   28 
   29         cpus {
   30                 cpu@0 {
   31                         proc-supply = <&mt6380_vcpu_reg>;
   32                         sram-supply = <&mt6380_vm_reg>;
   33                 };
   34 
   35                 cpu@1 {
   36                         proc-supply = <&mt6380_vcpu_reg>;
   37                         sram-supply = <&mt6380_vm_reg>;
   38                 };
   39         };
   40 
   41         gpio-keys {
   42                 compatible = "gpio-keys";
   43 
   44                 factory-key {
   45                         label = "factory";
   46                         linux,code = <BTN_0>;
   47                         gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
   48                 };
   49 
   50                 wps-key {
   51                         label = "wps";
   52                         linux,code = <KEY_WPS_BUTTON>;
   53                         gpios = <&pio 102 GPIO_ACTIVE_LOW>;
   54                 };
   55         };
   56 
   57         leds {
   58                 compatible = "gpio-leds";
   59 
   60                 led-0 {
   61                         label = "bpi-r64:pio:green";
   62                         color = <LED_COLOR_ID_GREEN>;
   63                         gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
   64                         default-state = "off";
   65                 };
   66 
   67                 led-1 {
   68                         label = "bpi-r64:pio:red";
   69                         color = <LED_COLOR_ID_RED>;
   70                         gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
   71                         default-state = "off";
   72                 };
   73         };
   74 
   75         memory {
   76                 reg = <0 0x40000000 0 0x40000000>;
   77         };
   78 
   79         reg_1p8v: regulator-1p8v {
   80                 compatible = "regulator-fixed";
   81                 regulator-name = "fixed-1.8V";
   82                 regulator-min-microvolt = <1800000>;
   83                 regulator-max-microvolt = <1800000>;
   84                 regulator-always-on;
   85         };
   86 
   87         reg_3p3v: regulator-3p3v {
   88                 compatible = "regulator-fixed";
   89                 regulator-name = "fixed-3.3V";
   90                 regulator-min-microvolt = <3300000>;
   91                 regulator-max-microvolt = <3300000>;
   92                 regulator-boot-on;
   93                 regulator-always-on;
   94         };
   95 
   96         reg_5v: regulator-5v {
   97                 compatible = "regulator-fixed";
   98                 regulator-name = "fixed-5V";
   99                 regulator-min-microvolt = <5000000>;
  100                 regulator-max-microvolt = <5000000>;
  101                 regulator-boot-on;
  102                 regulator-always-on;
  103         };
  104 };
  105 
  106 &bch {
  107         status = "disabled";
  108 };
  109 
  110 &btif {
  111         status = "okay";
  112 };
  113 
  114 &cir {
  115         pinctrl-names = "default";
  116         pinctrl-0 = <&irrx_pins>;
  117         status = "okay";
  118 };
  119 
  120 &eth {
  121         status = "okay";
  122         gmac0: mac@0 {
  123                 compatible = "mediatek,eth-mac";
  124                 reg = <0>;
  125                 phy-mode = "2500base-x";
  126 
  127                 fixed-link {
  128                         speed = <2500>;
  129                         full-duplex;
  130                         pause;
  131                 };
  132         };
  133 
  134         gmac1: mac@1 {
  135                 compatible = "mediatek,eth-mac";
  136                 reg = <1>;
  137                 phy-mode = "rgmii";
  138 
  139                 fixed-link {
  140                         speed = <1000>;
  141                         full-duplex;
  142                         pause;
  143                 };
  144         };
  145 
  146         mdio: mdio-bus {
  147                 #address-cells = <1>;
  148                 #size-cells = <0>;
  149 
  150                 switch@0 {
  151                         compatible = "mediatek,mt7531";
  152                         reg = <0>;
  153                         reset-gpios = <&pio 54 0>;
  154 
  155                         ports {
  156                                 #address-cells = <1>;
  157                                 #size-cells = <0>;
  158 
  159                                 port@0 {
  160                                         reg = <0>;
  161                                         label = "wan";
  162                                 };
  163 
  164                                 port@1 {
  165                                         reg = <1>;
  166                                         label = "lan0";
  167                                 };
  168 
  169                                 port@2 {
  170                                         reg = <2>;
  171                                         label = "lan1";
  172                                 };
  173 
  174                                 port@3 {
  175                                         reg = <3>;
  176                                         label = "lan2";
  177                                 };
  178 
  179                                 port@4 {
  180                                         reg = <4>;
  181                                         label = "lan3";
  182                                 };
  183 
  184                                 port@6 {
  185                                         reg = <6>;
  186                                         label = "cpu";
  187                                         ethernet = <&gmac0>;
  188                                         phy-mode = "2500base-x";
  189 
  190                                         fixed-link {
  191                                                 speed = <2500>;
  192                                                 full-duplex;
  193                                                 pause;
  194                                         };
  195                                 };
  196                         };
  197                 };
  198 
  199         };
  200 };
  201 
  202 &i2c1 {
  203         pinctrl-names = "default";
  204         pinctrl-0 = <&i2c1_pins>;
  205         status = "okay";
  206 };
  207 
  208 &i2c2 {
  209         pinctrl-names = "default";
  210         pinctrl-0 = <&i2c2_pins>;
  211         status = "okay";
  212 };
  213 
  214 &mmc0 {
  215         pinctrl-names = "default", "state_uhs";
  216         pinctrl-0 = <&emmc_pins_default>;
  217         pinctrl-1 = <&emmc_pins_uhs>;
  218         status = "okay";
  219         bus-width = <8>;
  220         max-frequency = <50000000>;
  221         cap-mmc-highspeed;
  222         mmc-hs200-1_8v;
  223         vmmc-supply = <&reg_3p3v>;
  224         vqmmc-supply = <&reg_1p8v>;
  225         assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
  226         assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
  227         non-removable;
  228 };
  229 
  230 &mmc1 {
  231         pinctrl-names = "default", "state_uhs";
  232         pinctrl-0 = <&sd0_pins_default>;
  233         pinctrl-1 = <&sd0_pins_uhs>;
  234         status = "okay";
  235         bus-width = <4>;
  236         max-frequency = <50000000>;
  237         cap-sd-highspeed;
  238         r_smpl = <1>;
  239         cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
  240         vmmc-supply = <&reg_3p3v>;
  241         vqmmc-supply = <&reg_3p3v>;
  242         assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
  243         assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
  244 };
  245 
  246 &nandc {
  247         pinctrl-names = "default";
  248         pinctrl-0 = <&parallel_nand_pins>;
  249         status = "disabled";
  250 };
  251 
  252 &nor_flash {
  253         pinctrl-names = "default";
  254         pinctrl-0 = <&spi_nor_pins>;
  255         status = "disabled";
  256 
  257         flash@0 {
  258                 compatible = "jedec,spi-nor";
  259                 reg = <0>;
  260         };
  261 };
  262 
  263 &pcie0 {
  264         pinctrl-names = "default";
  265         pinctrl-0 = <&pcie0_pins>;
  266         status = "okay";
  267 };
  268 
  269 &pcie1 {
  270         pinctrl-names = "default";
  271         pinctrl-0 = <&pcie1_pins>;
  272         status = "okay";
  273 };
  274 
  275 &pio {
  276         /* Attention: GPIO 90 is used to switch between PCIe@1,0 and
  277          * SATA functions. i.e. output-high: PCIe, output-low: SATA
  278          */
  279         asm_sel {
  280                 gpio-hog;
  281                 gpios = <90 GPIO_ACTIVE_HIGH>;
  282                 output-high;
  283         };
  284 
  285         /* eMMC is shared pin with parallel NAND */
  286         emmc_pins_default: emmc-pins-default {
  287                 mux {
  288                         function = "emmc", "emmc_rst";
  289                         groups = "emmc";
  290                 };
  291 
  292                 /* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
  293                  * "NRB","NCLE" pins are used as DAT0,DAT1,DAT2,DAT3,DAT4,
  294                  * DAT5,DAT6,DAT7,CMD,CLK for eMMC respectively
  295                  */
  296                 conf-cmd-dat {
  297                         pins = "NDL0", "NDL1", "NDL2",
  298                                "NDL3", "NDL4", "NDL5",
  299                                "NDL6", "NDL7", "NRB";
  300                         input-enable;
  301                         bias-pull-up;
  302                 };
  303 
  304                 conf-clk {
  305                         pins = "NCLE";
  306                         bias-pull-down;
  307                 };
  308         };
  309 
  310         emmc_pins_uhs: emmc-pins-uhs {
  311                 mux {
  312                         function = "emmc";
  313                         groups = "emmc";
  314                 };
  315 
  316                 conf-cmd-dat {
  317                         pins = "NDL0", "NDL1", "NDL2",
  318                                "NDL3", "NDL4", "NDL5",
  319                                "NDL6", "NDL7", "NRB";
  320                         input-enable;
  321                         drive-strength = <4>;
  322                         bias-pull-up;
  323                 };
  324 
  325                 conf-clk {
  326                         pins = "NCLE";
  327                         drive-strength = <4>;
  328                         bias-pull-down;
  329                 };
  330         };
  331 
  332         eth_pins: eth-pins {
  333                 mux {
  334                         function = "eth";
  335                         groups = "mdc_mdio", "rgmii_via_gmac2";
  336                 };
  337         };
  338 
  339         i2c1_pins: i2c1-pins {
  340                 mux {
  341                         function = "i2c";
  342                         groups = "i2c1_0";
  343                 };
  344         };
  345 
  346         i2c2_pins: i2c2-pins {
  347                 mux {
  348                         function = "i2c";
  349                         groups = "i2c2_0";
  350                 };
  351         };
  352 
  353         i2s1_pins: i2s1-pins {
  354                 mux {
  355                         function = "i2s";
  356                         groups =  "i2s_out_mclk_bclk_ws",
  357                                   "i2s1_in_data",
  358                                   "i2s1_out_data";
  359                 };
  360 
  361                 conf {
  362                         pins = "I2S1_IN", "I2S1_OUT", "I2S_BCLK",
  363                                "I2S_WS", "I2S_MCLK";
  364                         drive-strength = <12>;
  365                         bias-pull-down;
  366                 };
  367         };
  368 
  369         irrx_pins: irrx-pins {
  370                 mux {
  371                         function = "ir";
  372                         groups = "ir_1_rx";
  373                 };
  374         };
  375 
  376         irtx_pins: irtx-pins {
  377                 mux {
  378                         function = "ir";
  379                         groups = "ir_1_tx";
  380                 };
  381         };
  382 
  383         /* Parallel nand is shared pin with eMMC */
  384         parallel_nand_pins: parallel-nand-pins {
  385                 mux {
  386                         function = "flash";
  387                         groups = "par_nand";
  388                 };
  389         };
  390 
  391         pcie0_pins: pcie0-pins {
  392                 mux {
  393                         function = "pcie";
  394                         groups = "pcie0_pad_perst",
  395                                  "pcie0_1_waken",
  396                                  "pcie0_1_clkreq";
  397                 };
  398         };
  399 
  400         pcie1_pins: pcie1-pins {
  401                 mux {
  402                         function = "pcie";
  403                         groups = "pcie1_pad_perst",
  404                                  "pcie1_0_waken",
  405                                  "pcie1_0_clkreq";
  406                 };
  407         };
  408 
  409         pmic_bus_pins: pmic-bus-pins {
  410                 mux {
  411                         function = "pmic";
  412                         groups = "pmic_bus";
  413                 };
  414         };
  415 
  416         pwm_pins: pwm-pins {
  417                 mux {
  418                         function = "pwm";
  419                         groups = "pwm_ch1_0", /* mt7622_pwm_ch1_0_pins[] = { 51, }; */
  420                                  "pwm_ch2_0", /* mt7622_pwm_ch2_0_pins[] = { 52, }; */
  421                                  "pwm_ch3_2", /* mt7622_pwm_ch3_2_pins[] = { 97, }; */
  422                                  "pwm_ch4_1", /* mt7622_pwm_ch4_1_pins[] = { 67, }; */
  423                                  "pwm_ch5_0", /* mt7622_pwm_ch5_0_pins[] = { 68, }; */
  424                                  "pwm_ch6_0"; /* mt7622_pwm_ch6_0_pins[] = { 69, }; */
  425                 };
  426         };
  427 
  428         wled_pins: wled-pins {
  429                 mux {
  430                         function = "led";
  431                         groups = "wled";
  432                 };
  433         };
  434 
  435         sd0_pins_default: sd0-pins-default {
  436                 mux {
  437                         function = "sd";
  438                         groups = "sd_0";
  439                 };
  440 
  441                 /* "I2S2_OUT, "I2S4_IN"", "I2S3_IN", "I2S2_IN",
  442                  *  "I2S4_OUT", "I2S3_OUT" are used as DAT0, DAT1,
  443                  *  DAT2, DAT3, CMD, CLK for SD respectively.
  444                  */
  445                 conf-cmd-data {
  446                         pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
  447                                "I2S2_IN","I2S4_OUT";
  448                         input-enable;
  449                         drive-strength = <8>;
  450                         bias-pull-up;
  451                 };
  452                 conf-clk {
  453                         pins = "I2S3_OUT";
  454                         drive-strength = <12>;
  455                         bias-pull-down;
  456                 };
  457                 conf-cd {
  458                         pins = "TXD3";
  459                         bias-pull-up;
  460                 };
  461         };
  462 
  463         sd0_pins_uhs: sd0-pins-uhs {
  464                 mux {
  465                         function = "sd";
  466                         groups = "sd_0";
  467                 };
  468 
  469                 conf-cmd-data {
  470                         pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
  471                                "I2S2_IN","I2S4_OUT";
  472                         input-enable;
  473                         bias-pull-up;
  474                 };
  475 
  476                 conf-clk {
  477                         pins = "I2S3_OUT";
  478                         bias-pull-down;
  479                 };
  480         };
  481 
  482         /* Serial NAND is shared pin with SPI-NOR */
  483         serial_nand_pins: serial-nand-pins {
  484                 mux {
  485                         function = "flash";
  486                         groups = "snfi";
  487                 };
  488         };
  489 
  490         spic0_pins: spic0-pins {
  491                 mux {
  492                         function = "spi";
  493                         groups = "spic0_0";
  494                 };
  495         };
  496 
  497         spic1_pins: spic1-pins {
  498                 mux {
  499                         function = "spi";
  500                         groups = "spic1_0";
  501                 };
  502         };
  503 
  504         /* SPI-NOR is shared pin with serial NAND */
  505         spi_nor_pins: spi-nor-pins {
  506                 mux {
  507                         function = "flash";
  508                         groups = "spi_nor";
  509                 };
  510         };
  511 
  512         /* serial NAND is shared pin with SPI-NOR */
  513         serial_nand_pins: serial-nand-pins {
  514                 mux {
  515                         function = "flash";
  516                         groups = "snfi";
  517                 };
  518         };
  519 
  520         uart0_pins: uart0-pins {
  521                 mux {
  522                         function = "uart";
  523                         groups = "uart0_0_tx_rx" ;
  524                 };
  525         };
  526 
  527         uart2_pins: uart2-pins {
  528                 mux {
  529                         function = "uart";
  530                         groups = "uart2_1_tx_rx" ;
  531                 };
  532         };
  533 
  534         watchdog_pins: watchdog-pins {
  535                 mux {
  536                         function = "watchdog";
  537                         groups = "watchdog";
  538                 };
  539         };
  540 };
  541 
  542 &pwm {
  543         pinctrl-names = "default";
  544         pinctrl-0 = <&pwm_pins>;
  545         status = "okay";
  546 };
  547 
  548 &pwrap {
  549         pinctrl-names = "default";
  550         pinctrl-0 = <&pmic_bus_pins>;
  551 
  552         status = "okay";
  553 };
  554 
  555 &sata {
  556         status = "disable";
  557 };
  558 
  559 &sata_phy {
  560         status = "disable";
  561 };
  562 
  563 &spi0 {
  564         pinctrl-names = "default";
  565         pinctrl-0 = <&spic0_pins>;
  566         status = "okay";
  567 };
  568 
  569 &spi1 {
  570         pinctrl-names = "default";
  571         pinctrl-0 = <&spic1_pins>;
  572 };
  573 
  574 &ssusb {
  575         vusb33-supply = <&reg_3p3v>;
  576         vbus-supply = <&reg_5v>;
  577         status = "okay";
  578 };
  579 
  580 &u3phy {
  581         status = "okay";
  582 };
  583 
  584 &uart0 {
  585         pinctrl-names = "default";
  586         pinctrl-0 = <&uart0_pins>;
  587         status = "okay";
  588 };
  589 
  590 &uart2 {
  591         pinctrl-names = "default";
  592         pinctrl-0 = <&uart2_pins>;
  593 };
  594 
  595 &watchdog {
  596         pinctrl-names = "default";
  597         pinctrl-0 = <&watchdog_pins>;
  598         status = "okay";
  599 };
  600 
  601 &wmac {
  602         status = "okay";
  603 };

Cache object: 50e16fdd034cb21a61844595759f6f37


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