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/armada-xp-98dx3236.dtsi

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  * Device Tree Include file for Marvell 98dx3236 family SoC
    4  *
    5  * Copyright (C) 2016 Allied Telesis Labs
    6  *
    7  * Contains definitions specific to the 98dx3236 SoC that are not
    8  * common to all Armada XP SoCs.
    9  */
   10 
   11 #include "armada-370-xp.dtsi"
   12 
   13 / {
   14         #address-cells = <2>;
   15         #size-cells = <2>;
   16 
   17         model = "Marvell 98DX3236 SoC";
   18         compatible = "marvell,armadaxp-98dx3236", "marvell,armada-370-xp";
   19 
   20         aliases {
   21                 gpio0 = &gpio0;
   22                 gpio1 = &gpio1;
   23                 gpio2 = &gpio2;
   24         };
   25 
   26         cpus {
   27                 #address-cells = <1>;
   28                 #size-cells = <0>;
   29                 enable-method = "marvell,98dx3236-smp";
   30 
   31                 cpu@0 {
   32                         device_type = "cpu";
   33                         compatible = "marvell,sheeva-v7";
   34                         reg = <0>;
   35                         clocks = <&cpuclk 0>;
   36                         clock-latency = <1000000>;
   37                 };
   38         };
   39 
   40         soc {
   41                 compatible = "marvell,armadaxp-mbus", "simple-bus";
   42 
   43                 ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
   44                           MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
   45                           MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
   46                           MBUS_ID(0x03, 0x00) 0 0 0xa8000000 0x4000000
   47                           MBUS_ID(0x08, 0x00) 0 0 0xac000000 0x100000>;
   48 
   49                 bootrom {
   50                         compatible = "marvell,bootrom";
   51                         reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
   52                 };
   53 
   54                 /*
   55                  * 98DX3236 has 1 x1 PCIe unit Gen2.0
   56                  */
   57                 pciec: pcie@82000000 {
   58                         compatible = "marvell,armada-xp-pcie";
   59                         status = "disabled";
   60                         device_type = "pci";
   61 
   62                         #address-cells = <3>;
   63                         #size-cells = <2>;
   64 
   65                         msi-parent = <&mpic>;
   66                         bus-range = <0x00 0xff>;
   67 
   68                         ranges =
   69                                <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000   /* Port 0.0 registers */
   70                                 0x82000000 0x1 0       MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
   71                                 0x81000000 0x1 0       MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO  */>;
   72 
   73                         pcie1: pcie@1,0 {
   74                                 device_type = "pci";
   75                                 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
   76                                 reg = <0x0800 0 0 0 0>;
   77                                 #address-cells = <3>;
   78                                 #size-cells = <2>;
   79                                 #interrupt-cells = <1>;
   80                                 ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
   81                                           0x81000000 0 0 0x81000000 0x1 0 1 0>;
   82                                 bus-range = <0x00 0xff>;
   83                                 interrupt-map-mask = <0 0 0 0>;
   84                                 interrupt-map = <0 0 0 0 &mpic 58>;
   85                                 marvell,pcie-port = <0>;
   86                                 marvell,pcie-lane = <0>;
   87                                 clocks = <&gateclk 5>;
   88                                 status = "disabled";
   89                         };
   90                 };
   91 
   92                 internal-regs {
   93                         sdramc: sdramc@1400 {
   94                                 compatible = "marvell,armada-xp-sdram-controller";
   95                                 reg = <0x1400 0x500>;
   96                         };
   97 
   98                         L2: l2-cache@8000 {
   99                                 compatible = "marvell,aurora-system-cache";
  100                                 reg = <0x08000 0x1000>;
  101                                 cache-id-part = <0x100>;
  102                                 cache-level = <2>;
  103                                 cache-unified;
  104                                 wt-override;
  105                         };
  106 
  107                         gpio0: gpio@18100 {
  108                                 compatible = "marvell,orion-gpio";
  109                                 reg = <0x18100 0x40>;
  110                                 ngpios = <32>;
  111                                 gpio-controller;
  112                                 #gpio-cells = <2>;
  113                                 interrupt-controller;
  114                                 #interrupt-cells = <2>;
  115                                 interrupts = <82>, <83>, <84>, <85>;
  116                         };
  117 
  118                         /* does not exist */
  119                         gpio1: gpio@18140 {
  120                                 compatible = "marvell,orion-gpio";
  121                                 reg = <0x18140 0x40>;
  122                                 status = "disabled";
  123                         };
  124 
  125                         gpio2: gpio@18180 { /* rework some properties */
  126                                 compatible = "marvell,orion-gpio";
  127                                 reg = <0x18180 0x40>;
  128                                 ngpios = <1>; /* only gpio #32 */
  129                                 gpio-controller;
  130                                 #gpio-cells = <2>;
  131                                 interrupt-controller;
  132                                 #interrupt-cells = <2>;
  133                                 interrupts = <87>;
  134                         };
  135 
  136                         systemc: system-controller@18200 {
  137                                 compatible = "marvell,armada-370-xp-system-controller";
  138                                 reg = <0x18200 0x500>;
  139                         };
  140 
  141                         gateclk: clock-gating-control@18220 {
  142                                 compatible = "marvell,mv98dx3236-gating-clock";
  143                                 reg = <0x18220 0x4>;
  144                                 clocks = <&coreclk 0>;
  145                                 #clock-cells = <1>;
  146                         };
  147 
  148                         cpuclk: clock-complex@18700 {
  149                                 #clock-cells = <1>;
  150                                 compatible = "marvell,mv98dx3236-cpu-clock";
  151                                 reg = <0x18700 0x24>, <0x1c054 0x10>;
  152                                 clocks = <&coreclk 1>;
  153                         };
  154 
  155                         corediv-clock@18740 {
  156                                 status = "disabled";
  157                         };
  158 
  159                         cpu-config@21000 {
  160                                 compatible = "marvell,armada-xp-cpu-config";
  161                                 reg = <0x21000 0x8>;
  162                         };
  163 
  164                         ethernet@70000 {
  165                                 compatible = "marvell,armada-xp-neta";
  166                         };
  167 
  168                         ethernet@74000 {
  169                                 compatible = "marvell,armada-xp-neta";
  170                         };
  171 
  172                         xor1: xor@f0800 {
  173                                 compatible = "marvell,orion-xor";
  174                                 reg = <0xf0800 0x100
  175                                        0xf0a00 0x100>;
  176                                 clocks = <&gateclk 22>;
  177                                 status = "okay";
  178 
  179                                 xor10 {
  180                                         interrupts = <51>;
  181                                         dmacap,memcpy;
  182                                         dmacap,xor;
  183                                 };
  184                                 xor11 {
  185                                         interrupts = <52>;
  186                                         dmacap,memcpy;
  187                                         dmacap,xor;
  188                                         dmacap,memset;
  189                                 };
  190                         };
  191 
  192                         nand_controller: nand-controller@d0000 {
  193                                 clocks = <&dfx_coredivclk 0>;
  194                         };
  195 
  196                         xor0: xor@f0900 {
  197                                 compatible = "marvell,orion-xor";
  198                                 reg = <0xF0900 0x100
  199                                        0xF0B00 0x100>;
  200                                 clocks = <&gateclk 28>;
  201                                 status = "okay";
  202 
  203                                 xor00 {
  204                                         interrupts = <94>;
  205                                         dmacap,memcpy;
  206                                         dmacap,xor;
  207                                 };
  208                                 xor01 {
  209                                         interrupts = <95>;
  210                                         dmacap,memcpy;
  211                                         dmacap,xor;
  212                                         dmacap,memset;
  213                                 };
  214                         };
  215                 };
  216 
  217                 dfx: dfx-server@ac000000 {
  218                         compatible = "marvell,dfx-server", "simple-bus";
  219                         #address-cells = <1>;
  220                         #size-cells = <1>;
  221                         ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>;
  222                         reg = <MBUS_ID(0x08, 0x00) 0 0x100000>;
  223 
  224                         coreclk: mvebu-sar@f8204 {
  225                                 compatible = "marvell,mv98dx3236-core-clock";
  226                                 reg = <0xf8204 0x4>;
  227                                 #clock-cells = <1>;
  228                         };
  229 
  230                         dfx_coredivclk: corediv-clock@f8268 {
  231                                 compatible = "marvell,mv98dx3236-corediv-clock";
  232                                 reg = <0xf8268 0xc>;
  233                                 #clock-cells = <1>;
  234                                 clocks = <&mainpll>;
  235                                 clock-output-names = "nand";
  236                         };
  237                 };
  238 
  239                 switch: switch@a8000000 {
  240                         compatible = "simple-bus";
  241                         #address-cells = <1>;
  242                         #size-cells = <1>;
  243                         ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>;
  244 
  245                         pp0: packet-processor@0 {
  246                                 compatible = "marvell,prestera-98dx3236", "marvell,prestera";
  247                                 reg = <0 0x4000000>;
  248                                 interrupts = <33>, <34>, <35>;
  249                                 dfx = <&dfx>;
  250                         };
  251                 };
  252         };
  253 
  254         clocks {
  255                 /* 25 MHz reference crystal */
  256                 refclk: oscillator {
  257                         compatible = "fixed-clock";
  258                         #clock-cells = <0>;
  259                         clock-frequency = <25000000>;
  260                 };
  261         };
  262 };
  263 
  264 &i2c0 {
  265         compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
  266         reg = <0x11000 0x100>;
  267         pinctrl-names = "default";
  268         pinctrl-0 = <&i2c0_pins>;
  269 };
  270 
  271 &mpic {
  272         reg = <0x20a00 0x2d0>, <0x21070 0x58>;
  273 };
  274 
  275 &rtc {
  276         status = "disabled";
  277 };
  278 
  279 &timer {
  280         compatible = "marvell,armada-xp-timer";
  281         clocks = <&coreclk 2>, <&refclk>;
  282         clock-names = "nbclk", "fixed";
  283 };
  284 
  285 &watchdog {
  286         compatible = "marvell,armada-xp-wdt";
  287         clocks = <&coreclk 2>, <&refclk>;
  288         clock-names = "nbclk", "fixed";
  289 };
  290 
  291 &cpurst {
  292         reg = <0x20800 0x20>;
  293 };
  294 
  295 &usb0 {
  296         clocks = <&gateclk 18>;
  297 };
  298 
  299 &usb1 {
  300         clocks = <&gateclk 19>;
  301 };
  302 
  303 &pinctrl {
  304         compatible = "marvell,98dx3236-pinctrl";
  305 
  306         nand_pins: nand-pins {
  307                 marvell,pins = "mpp20", "mpp21", "mpp22",
  308                                "mpp23", "mpp24", "mpp25",
  309                                "mpp26", "mpp27", "mpp28",
  310                                "mpp29", "mpp30";
  311                 marvell,function = "dev";
  312         };
  313 
  314         nand_rb: nand-rb {
  315                 marvell,pins = "mpp19";
  316                 marvell,function = "nand";
  317         };
  318 
  319         spi0_pins: spi0-pins {
  320                 marvell,pins = "mpp0", "mpp1",
  321                                "mpp2", "mpp3";
  322                 marvell,function = "spi0";
  323         };
  324 
  325         i2c0_pins: i2c-pins-0 {
  326                 marvell,pins = "mpp14", "mpp15";
  327                 marvell,function = "i2c0";
  328         };
  329 };
  330 
  331 &spi0 {
  332         compatible = "marvell,armada-xp-spi", "marvell,orion-spi";
  333         pinctrl-0 = <&spi0_pins>;
  334         pinctrl-names = "default";
  335 };
  336 
  337 &sdio {
  338         status = "disabled";
  339 };
  340 
  341 &uart0 {
  342         compatible = "marvell,armada-38x-uart";
  343 };
  344 
  345 &uart1 {
  346         compatible = "marvell,armada-38x-uart";
  347 };
  348 

Cache object: 3a05b004315f2a0744d7090abc763082


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