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/marvell/armada-7040-mochabin.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-later OR MIT
    2 /*
    3  * Device Tree file for Globalscale MOCHAbin
    4  * Copyright (C) 2019 Globalscale technologies, Inc.
    5  * Copyright (C) 2021 Sartura Ltd.
    6  *
    7  */
    8 
    9 /dts-v1/;
   10 
   11 #include <dt-bindings/gpio/gpio.h>
   12 #include "armada-7040.dtsi"
   13 
   14 / {
   15         model = "Globalscale MOCHAbin";
   16         compatible = "globalscale,mochabin", "marvell,armada7040",
   17                      "marvell,armada-ap806-quad", "marvell,armada-ap806";
   18 
   19         chosen {
   20                 stdout-path = "serial0:115200n8";
   21         };
   22 
   23         aliases {
   24                 ethernet0 = &cp0_eth0;
   25                 ethernet1 = &cp0_eth1;
   26                 ethernet2 = &cp0_eth2;
   27                 ethernet3 = &swport1;
   28                 ethernet4 = &swport2;
   29                 ethernet5 = &swport3;
   30                 ethernet6 = &swport4;
   31         };
   32 
   33         /* SFP+ 10G */
   34         sfp_eth0: sfp-eth0 {
   35                 compatible = "sff,sfp";
   36                 i2c-bus = <&cp0_i2c1>;
   37                 los-gpios = <&sfp_gpio 3 GPIO_ACTIVE_HIGH>;
   38                 mod-def0-gpios = <&sfp_gpio 2 GPIO_ACTIVE_LOW>;
   39                 tx-disable-gpios = <&sfp_gpio 1 GPIO_ACTIVE_HIGH>;
   40                 tx-fault-gpios = <&sfp_gpio 0 GPIO_ACTIVE_HIGH>;
   41         };
   42 
   43         /* SFP 1G */
   44         sfp_eth2: sfp-eth2 {
   45                 compatible = "sff,sfp";
   46                 i2c-bus = <&cp0_i2c0>;
   47                 los-gpios = <&sfp_gpio 7 GPIO_ACTIVE_HIGH>;
   48                 mod-def0-gpios = <&sfp_gpio 6 GPIO_ACTIVE_LOW>;
   49                 tx-disable-gpios = <&sfp_gpio 5 GPIO_ACTIVE_HIGH>;
   50                 tx-fault-gpios = <&sfp_gpio 4 GPIO_ACTIVE_HIGH>;
   51         };
   52 };
   53 
   54 /* microUSB UART console */
   55 &uart0 {
   56         status = "okay";
   57 
   58         pinctrl-0 = <&uart0_pins>;
   59         pinctrl-names = "default";
   60 };
   61 
   62 /* eMMC */
   63 &ap_sdhci0 {
   64         status = "okay";
   65 
   66         bus-width = <4>;
   67         non-removable;
   68         /delete-property/ marvell,xenon-phy-slow-mode;
   69         no-1-8-v;
   70 };
   71 
   72 &cp0_pinctrl {
   73         cp0_uart0_pins: cp0-uart0-pins {
   74                 marvell,pins = "mpp6", "mpp7";
   75                 marvell,function = "uart0";
   76         };
   77 
   78         cp0_spi0_pins: cp0-spi0-pins {
   79                 marvell,pins = "mpp56", "mpp57", "mpp58", "mpp59";
   80                 marvell,function = "spi0";
   81         };
   82 
   83         cp0_spi1_pins: cp0-spi1-pins {
   84                 marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
   85                 marvell,function = "spi1";
   86         };
   87 
   88         cp0_i2c0_pins: cp0-i2c0-pins {
   89                 marvell,pins = "mpp37", "mpp38";
   90                 marvell,function = "i2c0";
   91         };
   92 
   93         cp0_i2c1_pins: cp0-i2c1-pins {
   94                 marvell,pins = "mpp2", "mpp3";
   95                 marvell,function = "i2c1";
   96         };
   97 
   98         pca9554_int_pins: pca9554-int-pins {
   99                 marvell,pins = "mpp27";
  100                 marvell,function = "gpio";
  101         };
  102 
  103         cp0_rgmii1_pins: cp0-rgmii1-pins {
  104                 marvell,pins = "mpp44", "mpp45", "mpp46", "mpp47", "mpp48", "mpp49",
  105                                "mpp50", "mpp51", "mpp52", "mpp53", "mpp54", "mpp55";
  106                 marvell,function = "ge1";
  107         };
  108 
  109         is31_sdb_pins: is31-sdb-pins {
  110                 marvell,pins = "mpp30";
  111                 marvell,function = "gpio";
  112         };
  113 
  114         cp0_pcie_reset_pins: cp0-pcie-reset-pins {
  115                 marvell,pins = "mpp9";
  116                 marvell,function = "gpio";
  117         };
  118 
  119         cp0_pcie_clkreq_pins: cp0-pcie-clkreq-pins {
  120                 marvell,pins = "mpp5";
  121                 marvell,function = "pcie1";
  122         };
  123 
  124         cp0_switch_pins: cp0-switch-pins {
  125                 marvell,pins = "mpp0", "mpp1";
  126                 marvell,function = "gpio";
  127         };
  128 
  129         cp0_phy_pins: cp0-phy-pins {
  130                 marvell,pins = "mpp12";
  131                 marvell,function = "gpio";
  132         };
  133 };
  134 
  135 /* mikroBUS UART */
  136 &cp0_uart0 {
  137         status = "okay";
  138 
  139         pinctrl-names = "default";
  140         pinctrl-0 = <&cp0_uart0_pins>;
  141 };
  142 
  143 /* mikroBUS SPI */
  144 &cp0_spi0 {
  145         status = "okay";
  146 
  147         pinctrl-names = "default";
  148         pinctrl-0 = <&cp0_spi0_pins>;
  149 };
  150 
  151 /* SPI-NOR */
  152 &cp0_spi1{
  153         status = "okay";
  154 
  155         pinctrl-names = "default";
  156         pinctrl-0 = <&cp0_spi1_pins>;
  157 
  158         flash@0 {
  159                 #address-cells = <1>;
  160                 #size-cells = <1>;
  161                 compatible = "jedec,spi-nor";
  162                 reg = <0>;
  163                 spi-max-frequency = <20000000>;
  164 
  165                 partitions {
  166                         compatible = "fixed-partitions";
  167                         #address-cells = <1>;
  168                         #size-cells = <1>;
  169 
  170                         partition@0 {
  171                                 label = "firmware";
  172                                 reg = <0x0 0x3e0000>;
  173                                 read-only;
  174                         };
  175 
  176                         partition@3e0000 {
  177                                 label = "hw-info";
  178                                 reg = <0x3e0000 0x10000>;
  179                                 read-only;
  180                         };
  181 
  182                         partition@3f0000 {
  183                                 label = "u-boot-env";
  184                                 reg = <0x3f0000 0x10000>;
  185                         };
  186                 };
  187         };
  188 };
  189 
  190 /* mikroBUS, 1G SFP and GPIO expander */
  191 &cp0_i2c0 {
  192         status = "okay";
  193 
  194         pinctrl-names = "default";
  195         pinctrl-0 = <&cp0_i2c0_pins>;
  196         clock-frequency = <100000>;
  197 
  198         sfp_gpio: pca9554@39 {
  199                 compatible = "nxp,pca9554";
  200                 pinctrl-names = "default";
  201                 pinctrl-0 = <&pca9554_int_pins>;
  202                 reg = <0x39>;
  203 
  204                 interrupt-parent = <&cp0_gpio1>;
  205                 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
  206                 interrupt-controller;
  207                 #interrupt-cells = <2>;
  208 
  209                 gpio-controller;
  210                 #gpio-cells = <2>;
  211 
  212                 /*
  213                  * IO0_0: SFP+_TX_FAULT
  214                  * IO0_1: SFP+_TX_DISABLE
  215                  * IO0_2: SFP+_PRSNT
  216                  * IO0_3: SFP+_LOSS
  217                  * IO0_4: SFP_TX_FAULT
  218                  * IO0_5: SFP_TX_DISABLE
  219                  * IO0_6: SFP_PRSNT
  220                  * IO0_7: SFP_LOSS
  221                  */
  222         };
  223 };
  224 
  225 /* IS31FL3199, mini-PCIe and 10G SFP+ */
  226 &cp0_i2c1 {
  227         status = "okay";
  228 
  229         pinctrl-names = "default";
  230         pinctrl-0 = <&cp0_i2c1_pins>;
  231         clock-frequency = <100000>;
  232 
  233         leds@64 {
  234                 compatible = "issi,is31fl3199";
  235                 #address-cells = <1>;
  236                 #size-cells = <0>;
  237                 pinctrl-names = "default";
  238                 pinctrl-0 = <&is31_sdb_pins>;
  239                 shutdown-gpios = <&cp0_gpio1 30 GPIO_ACTIVE_HIGH>;
  240                 reg = <0x64>;
  241 
  242                 led1_red: led@1 {
  243                         label = "red:led1";
  244                         reg = <1>;
  245                         led-max-microamp = <20000>;
  246                 };
  247 
  248                 led1_green: led@2 {
  249                         label = "green:led1";
  250                         reg = <2>;
  251                 };
  252 
  253                 led1_blue: led@3 {
  254                         label = "blue:led1";
  255                         reg = <3>;
  256                 };
  257 
  258                 led2_red: led@4 {
  259                         label = "red:led2";
  260                         reg = <4>;
  261                 };
  262 
  263                 led2_green: led@5 {
  264                         label = "green:led2";
  265                         reg = <5>;
  266                 };
  267 
  268                 led2_blue: led@6 {
  269                         label = "blue:led2";
  270                         reg = <6>;
  271                 };
  272 
  273                 led3_red: led@7 {
  274                         label = "red:led3";
  275                         reg = <7>;
  276                 };
  277 
  278                 led3_green: led@8 {
  279                         label = "green:led3";
  280                         reg = <8>;
  281                 };
  282 
  283                 led3_blue: led@9 {
  284                         label = "blue:led3";
  285                         reg = <9>;
  286                 };
  287         };
  288 };
  289 
  290 &cp0_mdio {
  291         status = "okay";
  292 
  293         /* 88E1512 PHY */
  294         eth2phy: ethernet-phy@1 {
  295                 reg = <1>;
  296                 sfp = <&sfp_eth2>;
  297 
  298                 pinctrl-names = "default";
  299                 pinctrl-0 = <&cp0_phy_pins>;
  300                 reset-gpios = <&cp0_gpio1 12 GPIO_ACTIVE_LOW>;
  301         };
  302 
  303         /* 88E6141 Topaz switch */
  304         switch: switch@3 {
  305                 compatible = "marvell,mv88e6085";
  306                 #address-cells = <1>;
  307                 #size-cells = <0>;
  308                 reg = <3>;
  309 
  310                 pinctrl-names = "default";
  311                 pinctrl-0 = <&cp0_switch_pins>;
  312                 reset-gpios = <&cp0_gpio1 0 GPIO_ACTIVE_LOW>;
  313 
  314                 interrupt-parent = <&cp0_gpio1>;
  315                 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
  316 
  317                 ports {
  318                         #address-cells = <1>;
  319                         #size-cells = <0>;
  320 
  321                         swport1: port@1 {
  322                                 reg = <1>;
  323                                 label = "lan0";
  324                                 phy-handle = <&swphy1>;
  325                         };
  326 
  327                         swport2: port@2 {
  328                                 reg = <2>;
  329                                 label = "lan1";
  330                                 phy-handle = <&swphy2>;
  331                         };
  332 
  333                         swport3: port@3 {
  334                                 reg = <3>;
  335                                 label = "lan2";
  336                                 phy-handle = <&swphy3>;
  337                         };
  338 
  339                         swport4: port@4 {
  340                                 reg = <4>;
  341                                 label = "lan3";
  342                                 phy-handle = <&swphy4>;
  343                         };
  344 
  345                         port@5 {
  346                                 reg = <5>;
  347                                 label = "cpu";
  348                                 ethernet = <&cp0_eth1>;
  349                                 phy-mode = "2500base-x";
  350                                 managed = "in-band-status";
  351                         };
  352                 };
  353 
  354                 mdio {
  355                         #address-cells = <1>;
  356                         #size-cells = <0>;
  357 
  358                         swphy1: swphy1@17 {
  359                                 reg = <17>;
  360                         };
  361 
  362                         swphy2: swphy2@18 {
  363                                 reg = <18>;
  364                         };
  365 
  366                         swphy3: swphy3@19 {
  367                                 reg = <19>;
  368                         };
  369 
  370                         swphy4: swphy4@20 {
  371                                 reg = <20>;
  372                         };
  373                 };
  374         };
  375 };
  376 
  377 &cp0_ethernet {
  378         status = "okay";
  379 };
  380 
  381 /* 10G SFP+ */
  382 &cp0_eth0 {
  383         status = "okay";
  384 
  385         phy-mode = "10gbase-r";
  386         phys = <&cp0_comphy4 0>;
  387         managed = "in-band-status";
  388         sfp = <&sfp_eth0>;
  389 };
  390 
  391 /* Topaz switch uplink */
  392 &cp0_eth1 {
  393         status = "okay";
  394 
  395         phy-mode = "2500base-x";
  396         phys = <&cp0_comphy0 1>;
  397 
  398         fixed-link {
  399                 speed = <2500>;
  400                 full-duplex;
  401         };
  402 };
  403 
  404 /* 1G SFP or 1G RJ45 */
  405 &cp0_eth2 {
  406         status = "okay";
  407 
  408         pinctrl-names = "default";
  409         pinctrl-0 = <&cp0_rgmii1_pins>;
  410 
  411         phy = <&eth2phy>;
  412         phy-mode = "rgmii-id";
  413 };
  414 
  415 &cp0_utmi {
  416         status = "okay";
  417 };
  418 
  419 /* SMSC USB5434B hub */
  420 &cp0_usb3_0 {
  421         status = "okay";
  422 
  423         phys = <&cp0_comphy1 0>, <&cp0_utmi0>;
  424         phy-names = "cp0-usb3h0-comphy", "utmi";
  425 };
  426 
  427 /* miniPCI-E USB */
  428 &cp0_usb3_1 {
  429         status = "okay";
  430 };
  431 
  432 &cp0_sata0 {
  433         status = "okay";
  434 
  435         /* 7 + 12 SATA connector (J24) */
  436         sata-port@0 {
  437                 phys = <&cp0_comphy2 0>;
  438                 phy-names = "cp0-sata0-0-phy";
  439         };
  440 
  441         /* M.2-2250 B-key (J39) */
  442         sata-port@1 {
  443                 phys = <&cp0_comphy3 1>;
  444                 phy-names = "cp0-sata0-1-phy";
  445         };
  446 };
  447 
  448 /* miniPCI-E (J5) */
  449 &cp0_pcie2 {
  450         status = "okay";
  451 
  452         pinctrl-names = "default", "clkreq";
  453         pinctrl-0 = <&cp0_pcie_reset_pins>;
  454         pinctrl-1 = <&cp0_pcie_clkreq_pins>;
  455         phys = <&cp0_comphy5 2>;
  456         phy-names = "cp0-pcie2-x1-phy";
  457         reset-gpios = <&cp0_gpio1 9 GPIO_ACTIVE_LOW>;
  458 };

Cache object: 0f6085eda3b539ff5ee87b9b8fef3552


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