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/arm-realview-eb.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 /*
    2  * Copyright 2016 Linaro Ltd
    3  *
    4  * Permission is hereby granted, free of charge, to any person obtaining a copy
    5  * of this software and associated documentation files (the "Software"), to deal
    6  * in the Software without restriction, including without limitation the rights
    7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    8  * copies of the Software, and to permit persons to whom the Software is
    9  * furnished to do so, subject to the following conditions:
   10  *
   11  * The above copyright notice and this permission notice shall be included in
   12  * all copies or substantial portions of the Software.
   13  *
   14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
   17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   19  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   20  * THE SOFTWARE.
   21  */
   22 
   23 #include <dt-bindings/interrupt-controller/irq.h>
   24 #include <dt-bindings/gpio/gpio.h>
   25 
   26 / {
   27         #address-cells = <1>;
   28         #size-cells = <1>;
   29         compatible = "arm,realview-eb";
   30 
   31         chosen { };
   32 
   33         aliases {
   34                 serial0 = &serial0;
   35                 serial1 = &serial1;
   36                 serial2 = &serial2;
   37                 serial3 = &serial3;
   38                 i2c0 = &i2c;
   39         };
   40 
   41         memory {
   42                 device_type = "memory";
   43                 /* 128 MiB memory @ 0x0 */
   44                 reg = <0x00000000 0x08000000>;
   45         };
   46 
   47         /* The voltage to the MMC card is hardwired at 3.3V */
   48         vmmc: fixedregulator@0 {
   49                 compatible = "regulator-fixed";
   50                 regulator-name = "vmmc";
   51                 regulator-min-microvolt = <3300000>;
   52                 regulator-max-microvolt = <3300000>;
   53                 regulator-boot-on;
   54         };
   55 
   56         xtal24mhz: xtal24mhz@24M {
   57                 #clock-cells = <0>;
   58                 compatible = "fixed-clock";
   59                 clock-frequency = <24000000>;
   60         };
   61 
   62         timclk: timclk@1M {
   63                 #clock-cells = <0>;
   64                 compatible = "fixed-factor-clock";
   65                 clock-div = <24>;
   66                 clock-mult = <1>;
   67                 clocks = <&xtal24mhz>;
   68         };
   69 
   70         mclk: mclk@24M {
   71                 #clock-cells = <0>;
   72                 compatible = "fixed-factor-clock";
   73                 clock-div = <1>;
   74                 clock-mult = <1>;
   75                 clocks = <&xtal24mhz>;
   76         };
   77 
   78         kmiclk: kmiclk@24M {
   79                 #clock-cells = <0>;
   80                 compatible = "fixed-factor-clock";
   81                 clock-div = <1>;
   82                 clock-mult = <1>;
   83                 clocks = <&xtal24mhz>;
   84         };
   85 
   86         sspclk: sspclk@24M {
   87                 #clock-cells = <0>;
   88                 compatible = "fixed-factor-clock";
   89                 clock-div = <1>;
   90                 clock-mult = <1>;
   91                 clocks = <&xtal24mhz>;
   92         };
   93 
   94         uartclk: uartclk@24M {
   95                 #clock-cells = <0>;
   96                 compatible = "fixed-factor-clock";
   97                 clock-div = <1>;
   98                 clock-mult = <1>;
   99                 clocks = <&xtal24mhz>;
  100         };
  101 
  102         wdogclk: wdogclk@24M {
  103                 #clock-cells = <0>;
  104                 compatible = "fixed-factor-clock";
  105                 clock-div = <1>;
  106                 clock-mult = <1>;
  107                 clocks = <&xtal24mhz>;
  108         };
  109 
  110         /* FIXME: this actually hangs off the PLL clocks */
  111         pclk: pclk@0 {
  112                 #clock-cells = <0>;
  113                 compatible = "fixed-clock";
  114                 clock-frequency = <0>;
  115         };
  116 
  117         flash0@40000000 {
  118                 /* 2 * 32MiB NOR Flash memory */
  119                 compatible = "arm,versatile-flash", "cfi-flash";
  120                 reg = <0x40000000 0x04000000>;
  121                 bank-width = <4>;
  122                 partitions {
  123                         compatible = "arm,arm-firmware-suite";
  124                 };
  125         };
  126 
  127         flash1@44000000 {
  128                 /* 2 * 32MiB NOR Flash memory */
  129                 compatible = "arm,versatile-flash", "cfi-flash";
  130                 reg = <0x44000000 0x04000000>;
  131                 bank-width = <4>;
  132                 partitions {
  133                         compatible = "arm,arm-firmware-suite";
  134                 };
  135         };
  136 
  137         /* SMSC LAN91C111 ethernet with PHY and EEPROM */
  138         ethernet: ethernet@4e000000 {
  139                 compatible = "smsc,lan91c111";
  140                 reg = <0x4e000000 0x10000>;
  141                 /*
  142                  * This means the adapter can be accessed with 8, 16 or
  143                  * 32 bit reads/writes.
  144                  */
  145                 reg-io-width = <7>;
  146         };
  147 
  148         usb: usb@4f000000 {
  149                 compatible = "nxp,usb-isp1761";
  150                 reg = <0x4f000000 0x20000>;
  151                 dr_mode = "peripheral";
  152         };
  153 
  154         bridge {
  155                 compatible = "ti,ths8134a", "ti,ths8134";
  156                 #address-cells = <1>;
  157                 #size-cells = <0>;
  158 
  159                 ports {
  160                         #address-cells = <1>;
  161                         #size-cells = <0>;
  162 
  163                         port@0 {
  164                                 reg = <0>;
  165 
  166                                 vga_bridge_in: endpoint {
  167                                         remote-endpoint = <&clcd_pads>;
  168                                 };
  169                         };
  170 
  171                         port@1 {
  172                                 reg = <1>;
  173 
  174                                 vga_bridge_out: endpoint {
  175                                         remote-endpoint = <&vga_con_in>;
  176                                 };
  177                         };
  178                 };
  179         };
  180 
  181         vga {
  182                 compatible = "vga-connector";
  183 
  184                 port {
  185                         vga_con_in: endpoint {
  186                                 remote-endpoint = <&vga_bridge_out>;
  187                         };
  188                 };
  189         };
  190 
  191         /* These peripherals are inside the FPGA */
  192         fpga {
  193                 #address-cells = <1>;
  194                 #size-cells = <1>;
  195                 compatible = "simple-bus";
  196                 ranges;
  197 
  198                 syscon: syscon@10000000 {
  199                         compatible = "arm,realview-eb-syscon", "syscon", "simple-mfd";
  200                         reg = <0x10000000 0x1000>;
  201                         ranges = <0x0 0x10000000 0x1000>;
  202                         #address-cells = <1>;
  203                         #size-cells = <1>;
  204 
  205                         led@8,0 {
  206                                 compatible = "register-bit-led";
  207                                 reg = <0x08 0x04>;
  208                                 offset = <0x08>;
  209                                 mask = <0x01>;
  210                                 label = "versatile:0";
  211                                 linux,default-trigger = "heartbeat";
  212                                 default-state = "on";
  213                         };
  214                         led@8,1 {
  215                                 compatible = "register-bit-led";
  216                                 reg = <0x08 0x04>;
  217                                 offset = <0x08>;
  218                                 mask = <0x02>;
  219                                 label = "versatile:1";
  220                                 linux,default-trigger = "mmc0";
  221                                 default-state = "off";
  222                         };
  223                         led@8,2 {
  224                                 compatible = "register-bit-led";
  225                                 reg = <0x08 0x04>;
  226                                 offset = <0x08>;
  227                                 mask = <0x04>;
  228                                 label = "versatile:2";
  229                                 linux,default-trigger = "cpu0";
  230                                 default-state = "off";
  231                         };
  232                         led@8,3 {
  233                                 compatible = "register-bit-led";
  234                                 reg = <0x08 0x04>;
  235                                 offset = <0x08>;
  236                                 mask = <0x08>;
  237                                 label = "versatile:3";
  238                                 default-state = "off";
  239                         };
  240                         led@8,4 {
  241                                 compatible = "register-bit-led";
  242                                 reg = <0x08 0x04>;
  243                                 offset = <0x08>;
  244                                 mask = <0x10>;
  245                                 label = "versatile:4";
  246                                 default-state = "off";
  247                         };
  248                         led@8,5 {
  249                                 compatible = "register-bit-led";
  250                                 reg = <0x08 0x04>;
  251                                 offset = <0x08>;
  252                                 mask = <0x20>;
  253                                 label = "versatile:5";
  254                                 default-state = "off";
  255                         };
  256                         led@8,6 {
  257                                 compatible = "register-bit-led";
  258                                 reg = <0x08 0x04>;
  259                                 offset = <0x08>;
  260                                 mask = <0x40>;
  261                                 label = "versatile:6";
  262                                 default-state = "off";
  263                         };
  264                         led@8,7 {
  265                                 compatible = "register-bit-led";
  266                                 reg = <0x08 0x04>;
  267                                 offset = <0x08>;
  268                                 mask = <0x80>;
  269                                 label = "versatile:7";
  270                                 default-state = "off";
  271                         };
  272                         oscclk0: clock-controller@c {
  273                                 compatible = "arm,syscon-icst307";
  274                                 reg = <0x0c 0x04>;
  275                                 #clock-cells = <0>;
  276                                 lock-offset = <0x20>;
  277                                 vco-offset = <0x0C>;
  278                                 clocks = <&xtal24mhz>;
  279                         };
  280                         oscclk1: clock-controller@10 {
  281                                 compatible = "arm,syscon-icst307";
  282                                 reg = <0x10 0x04>;
  283                                 #clock-cells = <0>;
  284                                 lock-offset = <0x20>;
  285                                 vco-offset = <0x10>;
  286                                 clocks = <&xtal24mhz>;
  287                         };
  288                         oscclk2: clock-controller@14 {
  289                                 compatible = "arm,syscon-icst307";
  290                                 reg = <0x14 0x04>;
  291                                 #clock-cells = <0>;
  292                                 lock-offset = <0x20>;
  293                                 vco-offset = <0x14>;
  294                                 clocks = <&xtal24mhz>;
  295                         };
  296                         oscclk3: clock-controller@18 {
  297                                 compatible = "arm,syscon-icst307";
  298                                 reg = <0x18 0x04>;
  299                                 #clock-cells = <0>;
  300                                 lock-offset = <0x20>;
  301                                 vco-offset = <0x18>;
  302                                 clocks = <&xtal24mhz>;
  303                         };
  304                         oscclk4: clock-controller@1c {
  305                                 compatible = "arm,syscon-icst307";
  306                                 reg = <0x1c 0x04>;
  307                                 #clock-cells = <0>;
  308                                 lock-offset = <0x20>;
  309                                 vco-offset = <0x1c>;
  310                                 clocks = <&xtal24mhz>;
  311                         };
  312                 };
  313 
  314                 i2c: i2c@10002000 {
  315                         #address-cells = <1>;
  316                         #size-cells = <0>;
  317                         compatible = "arm,versatile-i2c";
  318                         reg = <0x10002000 0x1000>;
  319 
  320                         rtc@68 {
  321                                 compatible = "dallas,ds1338";
  322                                 reg = <0x68>;
  323                         };
  324                 };
  325 
  326                 aaci: aaci@10004000 {
  327                         compatible = "arm,pl041", "arm,primecell";
  328                         reg = <0x10004000 0x1000>;
  329                         clocks = <&pclk>;
  330                         clock-names = "apb_pclk";
  331                 };
  332 
  333                 mmc: mmcsd@10005000 {
  334                         compatible = "arm,pl18x", "arm,primecell";
  335                         reg = <0x10005000 0x1000>;
  336 
  337                         /* Due to frequent FIFO overruns, use just 500 kHz */
  338                         max-frequency = <500000>;
  339                         bus-width = <4>;
  340                         cap-sd-highspeed;
  341                         cap-mmc-highspeed;
  342                         clocks = <&mclk>, <&pclk>;
  343                         clock-names = "mclk", "apb_pclk";
  344                         vmmc-supply = <&vmmc>;
  345                         cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
  346                         wp-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
  347                 };
  348 
  349                 kmi0: kmi@10006000 {
  350                         compatible = "arm,pl050", "arm,primecell";
  351                         reg = <0x10006000 0x1000>;
  352                         clocks = <&kmiclk>, <&pclk>;
  353                         clock-names = "KMIREFCLK", "apb_pclk";
  354                 };
  355 
  356                 kmi1: kmi@10007000 {
  357                         compatible = "arm,pl050", "arm,primecell";
  358                         reg = <0x10007000 0x1000>;
  359                         clocks = <&kmiclk>, <&pclk>;
  360                         clock-names = "KMIREFCLK", "apb_pclk";
  361                 };
  362 
  363                 charlcd: fpga_charlcd: charlcd@10008000 {
  364                         compatible = "arm,versatile-lcd";
  365                         reg = <0x10008000 0x1000>;
  366                         clocks = <&pclk>;
  367                         clock-names = "apb_pclk";
  368                 };
  369 
  370                 serial0: serial@10009000 {
  371                         compatible = "arm,pl011", "arm,primecell";
  372                         reg = <0x10009000 0x1000>;
  373                         clocks = <&uartclk>, <&pclk>;
  374                         clock-names = "uartclk", "apb_pclk";
  375                 };
  376 
  377                 serial1: serial@1000a000 {
  378                         compatible = "arm,pl011", "arm,primecell";
  379                         reg = <0x1000a000 0x1000>;
  380                         clocks = <&uartclk>, <&pclk>;
  381                         clock-names = "uartclk", "apb_pclk";
  382                 };
  383 
  384                 serial2: serial@1000b000 {
  385                         compatible = "arm,pl011", "arm,primecell";
  386                         reg = <0x1000b000 0x1000>;
  387                         clocks = <&uartclk>, <&pclk>;
  388                         clock-names = "uartclk", "apb_pclk";
  389                 };
  390 
  391                 serial3: serial@1000c000 {
  392                         compatible = "arm,pl011", "arm,primecell";
  393                         reg = <0x1000c000 0x1000>;
  394                         clocks = <&uartclk>, <&pclk>;
  395                         clock-names = "uartclk", "apb_pclk";
  396                 };
  397 
  398                 ssp: spi@1000d000 {
  399                         compatible = "arm,pl022", "arm,primecell";
  400                         reg = <0x1000d000 0x1000>;
  401                         clocks = <&sspclk>, <&pclk>;
  402                         clock-names = "sspclk", "apb_pclk";
  403                 };
  404 
  405                 wdog: watchdog@10010000 {
  406                         compatible = "arm,sp805", "arm,primecell";
  407                         reg = <0x10010000 0x1000>;
  408                         clocks = <&wdogclk>, <&pclk>;
  409                         clock-names = "wdog_clk", "apb_pclk";
  410                         status = "disabled";
  411                 };
  412 
  413                 timer01: timer@10011000 {
  414                         compatible = "arm,sp804", "arm,primecell";
  415                         reg = <0x10011000 0x1000>;
  416                         clocks = <&timclk>, <&timclk>, <&pclk>;
  417                         clock-names = "timer1", "timer2", "apb_pclk";
  418                 };
  419 
  420                 timer23: timer@10012000 {
  421                         compatible = "arm,sp804", "arm,primecell";
  422                         reg = <0x10012000 0x1000>;
  423                         clocks = <&timclk>, <&timclk>, <&pclk>;
  424                         clock-names = "timer1", "timer2", "apb_pclk";
  425                 };
  426 
  427                 gpio0: gpio@10013000 {
  428                         compatible = "arm,pl061", "arm,primecell";
  429                         reg = <0x10013000 0x1000>;
  430                         gpio-controller;
  431                         #gpio-cells = <2>;
  432                         interrupt-controller;
  433                         #interrupt-cells = <2>;
  434                         clocks = <&pclk>;
  435                         clock-names = "apb_pclk";
  436                 };
  437 
  438                 gpio1: gpio@10014000 {
  439                         compatible = "arm,pl061", "arm,primecell";
  440                         reg = <0x10014000 0x1000>;
  441                         gpio-controller;
  442                         #gpio-cells = <2>;
  443                         interrupt-controller;
  444                         #interrupt-cells = <2>;
  445                         clocks = <&pclk>;
  446                         clock-names = "apb_pclk";
  447                 };
  448 
  449                 gpio2: gpio@10015000 {
  450                         compatible = "arm,pl061", "arm,primecell";
  451                         reg = <0x10015000 0x1000>;
  452                         gpio-controller;
  453                         #gpio-cells = <2>;
  454                         interrupt-controller;
  455                         #interrupt-cells = <2>;
  456                         clocks = <&pclk>;
  457                         clock-names = "apb_pclk";
  458                 };
  459 
  460                 rtc: rtc@10017000 {
  461                         compatible = "arm,pl031", "arm,primecell";
  462                         reg = <0x10017000 0x1000>;
  463                         clocks = <&pclk>;
  464                         clock-names = "apb_pclk";
  465                 };
  466 
  467                 clcd: clcd@10020000 {
  468                         compatible = "arm,pl111", "arm,primecell";
  469                         reg = <0x10020000 0x1000>;
  470                         interrupt-names = "combined";
  471                         clocks = <&oscclk0>, <&pclk>;
  472                         clock-names = "clcdclk", "apb_pclk";
  473                         /* 1024x768 16bpp @65MHz works fine */
  474                         max-memory-bandwidth = <95000000>;
  475 
  476                         port {
  477                                 clcd_pads: endpoint {
  478                                         remote-endpoint = <&vga_bridge_in>;
  479                                         arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
  480                                 };
  481                         };
  482                 };
  483         };
  484 };

Cache object: 27d408012bc93a5f9c674f7de099a930


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