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/dts/arm/bcm2836.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 (c) 2012 Oleksandr Tymoshenko <gonzo@bluezbox.com>
    3  *
    4  * Redistribution and use in source and binary forms, with or without
    5  * modification, are permitted provided that the following conditions
    6  * are met:
    7  * 1. Redistributions of source code must retain the above copyright
    8  *    notice, this list of conditions and the following disclaimer.
    9  * 2. Redistributions in binary form must reproduce the above copyright
   10  *    notice, this list of conditions and the following disclaimer in the
   11  *    documentation and/or other materials provided with the distribution.
   12  *
   13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   14  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   16  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   17  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   18  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   19  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   20  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   21  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   22  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   23  * SUCH DAMAGE.
   24  *
   25  * $FreeBSD$
   26  */
   27 
   28 / {
   29         #address-cells = <1>;
   30         #size-cells = <1>;
   31 
   32         timer {
   33                 compatible = "arm,armv7-timer";
   34                 clock-frequency = <19200000>;
   35                 interrupts = <0 1 3 2>;
   36                 interrupt-parent = <&local_intc>;
   37         };
   38 
   39         SOC: axi {
   40                 compatible = "simple-bus";
   41                 #address-cells = <1>;
   42                 #size-cells = <1>;
   43                 reg = <0x3f000000 0x01000000>;
   44                 ranges = <0 0x3f000000 0x01000000>,
   45                     <0x40000000 0x40000000 0x00001000>;
   46 
   47                 local_intc: local_intc {
   48                         compatible = "brcm,bcm2836-l1-intc";
   49                         reg = <0x40000000 0x100>;
   50                         interrupt-controller;
   51                         #interrupt-cells = <1>;
   52                         interrupt-parent = <&local_intc>;
   53                 };
   54 
   55                 intc: interrupt-controller {
   56                         compatible = "broadcom,bcm2835-armctrl-ic",
   57                                      "broadcom,bcm2708-armctrl-ic";
   58                         reg = <0xB200 0x200>;
   59                         interrupt-parent = <&local_intc>;
   60                         interrupts = <8>;
   61 
   62                         interrupt-controller;
   63                         #interrupt-cells = <1>;
   64 
   65                         /* Bank 0
   66                          * 0: ARM_TIMER
   67                          * 1: ARM_MAILBOX
   68                          * 2: ARM_DOORBELL_0
   69                          * 3: ARM_DOORBELL_1
   70                          * 4: VPU0_HALTED
   71                          * 5: VPU1_HALTED
   72                          * 6: ILLEGAL_TYPE0
   73                          * 7: ILLEGAL_TYPE1
   74                          */
   75 
   76                         /* Bank 1
   77                          * 0: TIMER0            16: DMA0
   78                          * 1: TIMER1            17: DMA1
   79                          * 2: TIMER2            18: VC_DMA2
   80                          * 3: TIMER3            19: VC_DMA3
   81                          * 4: CODEC0            20: DMA4
   82                          * 5: CODEC1            21: DMA5
   83                          * 6: CODEC2            22: DMA6
   84                          * 7: VC_JPEG           23: DMA7
   85                          * 8: ISP               24: DMA8
   86                          * 9: VC_USB            25: DMA9
   87                          * 10: VC_3D            26: DMA10
   88                          * 11: TRANSPOSER       27: DMA11
   89                          * 12: MULTICORESYNC0   28: DMA12
   90                          * 13: MULTICORESYNC1   29: AUX
   91                          * 14: MULTICORESYNC2   30: ARM
   92                          * 15: MULTICORESYNC3   31: VPUDMA
   93                          */
   94 
   95                         /* Bank 2
   96                          * 0: HOSTPORT          16: SMI
   97                          * 1: VIDEOSCALER       17: GPIO0
   98                          * 2: CCP2TX            18: GPIO1
   99                          * 3: SDC               19: GPIO2
  100                          * 4: DSI0              20: GPIO3
  101                          * 5: AVE               21: VC_I2C
  102                          * 6: CAM0              22: VC_SPI
  103                          * 7: CAM1              23: VC_I2SPCM
  104                          * 8: HDMI0             24: VC_SDIO
  105                          * 9: HDMI1             25: VC_UART
  106                          * 10: PIXELVALVE1      26: SLIMBUS
  107                          * 11: I2CSPISLV        27: VEC
  108                          * 12: DSI1             28: CPG
  109                          * 13: PWA0             29: RNG
  110                          * 14: PWA1             30: VC_ARASANSDIO
  111                          * 15: CPR              31: AVSPMON
  112                          */
  113                 };
  114 
  115                 watchdog0 {
  116                         compatible = "broadcom,bcm2835-wdt",
  117                                      "broadcom,bcm2708-wdt";
  118                         reg = <0x10001c 0x0c>; /* 0x1c, 0x20, 0x24 */
  119                 };
  120 
  121                 gpio: gpio {
  122                         compatible = "broadcom,bcm2835-gpio",
  123                                      "broadcom,bcm2708-gpio";
  124                         reg = <0x200000 0xb0>;
  125 
  126                         /* Unusual arrangement of interrupts 
  127                          * (determined by testing)
  128                          * 17: Bank 0 (GPIOs  0-31)
  129                          * 19: Bank 1 (GPIOs 32-53)
  130                          * 18: Bank 2
  131                          * 20: All banks (GPIOs 0-53)
  132                          */
  133                         interrupts = <57 59 58 60>;
  134                         interrupt-parent = <&intc>;
  135 
  136                         gpio-controller;
  137                         #gpio-cells = <2>;
  138 
  139                         interrupt-controller;
  140                         #interrupt-cells = <2>;
  141 
  142                         pinctrl-names = "default";
  143                         pinctrl-0 = <&pins_reserved>;
  144 
  145                         /* Pins that can short 3.3V to GND in output mode: 46
  146                          * Pins used by VideoCore: 48-53
  147                          */
  148                         broadcom,read-only = <46>, <48>, <49>, <50>,
  149                                              <51>, <52>, <53>;
  150 
  151                         /* BSC0 */
  152                         pins_bsc0_a: bsc0_a {
  153                                 broadcom,pins = <0>, <1>;
  154                         };
  155 
  156                         pins_bsc0_b: bsc0_b {
  157                                 broadcom,pins = <28>, <29>;
  158                         };
  159 
  160                         pins_bsc0_c: bsc0_c {
  161                                 broadcom,pins = <44>, <45>;
  162                         };
  163 
  164                         /* BSC1 */
  165                         pins_bsc1_a: bsc1_a {
  166                                 broadcom,pins = <2>, <3>;
  167                         };
  168 
  169                         pins_bsc1_b: bsc1_b {
  170                                 broadcom,pins = <44>, <45>;
  171                         };
  172 
  173                         /* GPCLK0 */
  174                         pins_gpclk0_a: gpclk0_a {
  175                                 broadcom,pins = <4>;
  176                         };
  177 
  178                         pins_gpclk0_b: gpclk0_b {
  179                                 broadcom,pins = <20>;
  180                         };
  181 
  182                         pins_gpclk0_c: gpclk0_c {
  183                                 broadcom,pins = <32>;
  184                         };
  185 
  186                         pins_gpclk0_d: gpclk0_d {
  187                                 broadcom,pins = <34>;
  188                         };
  189 
  190                         /* GPCLK1 */
  191                         pins_gpclk1_a: gpclk1_a {
  192                                 broadcom,pins = <5>;
  193                         };
  194 
  195                         pins_gpclk1_b: gpclk1_b {
  196                                 broadcom,pins = <21>;
  197                         };
  198 
  199                         pins_gpclk1_c: gpclk1_c {
  200                                 broadcom,pins = <42>;
  201                         };
  202 
  203                         pins_gpclk1_d: gpclk1_d {
  204                                 broadcom,pins = <44>;
  205                         };
  206 
  207                         /* GPCLK2 */
  208                         pins_gpclk2_a: gpclk2_a {
  209                                 broadcom,pins = <6>;
  210                         };
  211 
  212                         pins_gpclk2_b: gpclk2_b {
  213                                 broadcom,pins = <43>;
  214                         };
  215 
  216                         /* SPI0 */
  217                         pins_spi0_a: spi0_a {
  218                                 broadcom,pins = <7>, <8>, <9>, <10>, <11>;
  219                         };
  220 
  221                         pins_spi0_b: spi0_b {
  222                                 broadcom,pins = <35>, <36>, <37>, <38>, <39>;
  223                         };
  224 
  225                         /* PWM */
  226                         pins_pwm0_a: pwm0_a {
  227                                 broadcom,pins = <12>;
  228                         };
  229 
  230                         pins_pwm0_b: pwm0_b {
  231                                 broadcom,pins = <18>;
  232                         };
  233 
  234                         pins_pwm0_c: pwm0_c {
  235                                 broadcom,pins = <40>;
  236                         };
  237 
  238                         pins_pwm1_a: pwm1_a {
  239                                 broadcom,pins = <13>;
  240                         };
  241 
  242                         pins_pwm1_b: pwm1_b {
  243                                 broadcom,pins = <19>;
  244                         };
  245 
  246                         pins_pwm1_c: pwm1_c {
  247                                 broadcom,pins = <41>;
  248                         };
  249 
  250                         pins_pwm1_d: pwm1_d {
  251                                 broadcom,pins = <45>;
  252                         };
  253 
  254                         /* UART0 */
  255                         pins_uart0_a: uart0_a {
  256                                 broadcom,pins = <14>, <15>;
  257                         };
  258 
  259                         pins_uart0_b: uart0_b {
  260                                 broadcom,pins = <32>, <33>;
  261                         };
  262 
  263                         pins_uart0_c: uart0_c {
  264                                 broadcom,pins = <36>, <37>;
  265                         };
  266 
  267                         pins_uart0_fc_a: uart0_fc_a {
  268                                 broadcom,pins = <16>, <17>;
  269                         };
  270 
  271                         pins_uart0_fc_b: uart0_fc_b {
  272                                 broadcom,pins = <30>, <31>;
  273                         };
  274 
  275                         pins_uart0_fc_c: uart0_fc_c {
  276                                 broadcom,pins = <39>, <38>;
  277                         };
  278 
  279                         /* PCM */
  280                         pins_pcm_a: pcm_a {
  281                                 broadcom,pins = <18>, <19>, <20>, <21>;
  282                         };
  283 
  284                         pins_pcm_b: pcm_b {
  285                                 broadcom,pins = <28>, <29>, <30>, <31>;
  286                         };
  287 
  288                         /* Secondary Address Bus */
  289                         pins_sm_addr_a: sm_addr_a {
  290                                 broadcom,pins = <5>, <4>, <3>, <2>, <1>, <0>;
  291                         };
  292 
  293                         pins_sm_addr_b: sm_addr_b {
  294                                 broadcom,pins = <33>, <32>, <31>, <30>, <29>,
  295                                                 <28>;
  296                         };
  297 
  298                         pins_sm_ctl_a: sm_ctl_a {
  299                                 broadcom,pins = <6>, <7>;
  300                         };
  301 
  302                         pins_sm_ctl_b: sm_ctl_b {
  303                                 broadcom,pins = <34>, <35>;
  304                         };
  305 
  306                         pins_sm_data_8bit_a: sm_data_8bit_a {
  307                                 broadcom,pins = <8>, <9>, <10>, <11>, <12>,
  308                                                 <13>, <14>, <15>;
  309                         };
  310 
  311                         pins_sm_data_8bit_b: sm_data_8bit_b {
  312                                 broadcom,pins = <36>, <37>, <38>, <39>, <40>,
  313                                                 <41>, <42>, <43>;
  314                         };
  315 
  316                         pins_sm_data_16bit: sm_data_16bit {
  317                                 broadcom,pins = <16>, <17>, <18>, <19>, <20>,
  318                                                 <21>, <22>, <23>;
  319                         };
  320 
  321                         pins_sm_data_18bit: sm_data_18bit {
  322                                 broadcom,pins = <24>, <25>;
  323                         };
  324 
  325                         /* BSCSL */
  326                         pins_bscsl: bscsl {
  327                                 broadcom,pins = <18>, <19>;
  328                         };
  329 
  330                         /* SPISL */
  331                         pins_spisl: spisl {
  332                                 broadcom,pins = <18>, <19>, <20>, <21>;
  333                         };
  334 
  335                         /* SPI1 */
  336                         pins_spi1: spi1 {
  337                                 broadcom,pins = <16>, <17>, <18>, <19>, <20>,
  338                                                 <21>;
  339                         };
  340 
  341                         /* UART1 */
  342                         pins_uart1_a: uart1_a {
  343                                 broadcom,pins = <14>, <15>;
  344                         };
  345 
  346                         pins_uart1_b: uart1_b {
  347                                 broadcom,pins = <32>, <33>;
  348                         };
  349 
  350                         pins_uart1_c: uart1_c {
  351                                 broadcom,pins = <40>, <41>;
  352                         };
  353 
  354                         pins_uart1_fc_a: uart1_fc_a {
  355                                 broadcom,pins = <16>, <17>;
  356                         };
  357 
  358                         pins_uart1_fc_b: uart1_fc_b {
  359                                 broadcom,pins = <30>, <31>;
  360                         };
  361 
  362                         pins_uart1_fc_c: uart1_fc_c {
  363                                 broadcom,pins = <43>, <42>;
  364                         };
  365 
  366                         /* SPI2 */
  367                         pins_spi2: spi2 {
  368                                 broadcom,pins = <40>, <41>, <42>, <43>, <44>,
  369                                                 <45>;
  370                         };
  371 
  372                         /* ARM JTAG */
  373                         pins_arm_jtag_trst: arm_jtag_trst {
  374                                 broadcom,pins = <22>;
  375                         };
  376 
  377                         pins_arm_jtag_a: arm_jtag_a {
  378                                 broadcom,pins = <4>, <5>, <6>, <12>, <13>;
  379                         };
  380 
  381                         pins_arm_jtag_b: arm_jtag_b {
  382                                 broadcom,pins = <23>, <24>, <25>, <26>, <27>;
  383                         };
  384 
  385                         /* Reserved */
  386                         pins_reserved: reserved {
  387                                 broadcom,pins = <48>, <49>, <50>, <51>, <52>,
  388                                                 <53>;
  389                         };
  390                 };
  391 
  392                 cprman {
  393                         compatible = "broadcom,bcm2835-cprman";
  394                         reg = <0x101000 0x2000>;
  395                 };
  396 
  397                 rng {
  398                         compatible = "broadcom,bcm2835-rng",
  399                                      "broadcom,bcm2708-rng";
  400                         reg = <0x104000 0x20>;
  401                         interrupts = <69>;
  402                         interrupt-parent = <&intc>;
  403                 };
  404 
  405                 bsc0 {
  406                         #address-cells = <1>;
  407                         #size-cells = <0>;
  408                         compatible = "broadcom,bcm2835-bsc",
  409                                      "broadcom,bcm2708-bsc";
  410                         reg = <0x205000 0x20>;
  411                         interrupts = <61>;
  412                         interrupt-parent = <&intc>;
  413                 };
  414 
  415                 bsc1 {
  416                         #address-cells = <1>;
  417                         #size-cells = <0>;
  418                         compatible = "broadcom,bcm2835-bsc",
  419                                      "broadcom,bcm2708-bsc";
  420                         reg = <0x804000 0x20>;
  421                         interrupts = <61>;
  422                         interrupt-parent = <&intc>;
  423                 };
  424 
  425                 spi0 {
  426                         compatible = "broadcom,bcm2835-spi",
  427                                      "broadcom,bcm2708-spi";
  428                         reg = <0x204000 0x20>;
  429                         interrupts = <62>;
  430                         interrupt-parent = <&intc>;
  431                 };
  432 
  433                 pwm0 {
  434                         compatible = "broadcom,bcm2835-pwm";
  435                         reg = <0x20c000 0x28>;
  436                 };
  437 
  438                 dma: dma {
  439                         compatible = "broadcom,bcm2835-dma", 
  440                                      "broadcom,bcm2708-dma";
  441                         reg = <0x7000 0x1000>, <0xE05000 0x1000>;
  442                         interrupts = <24 25 26 27 28 29 30 31 32 33 34 35 36>;
  443                         interrupt-parent = <&intc>;
  444 
  445                         broadcom,channels = <0x7f35>;
  446                 };
  447 
  448                 vc_mbox: mbox {
  449                         compatible = "broadcom,bcm2835-mbox", 
  450                                      "broadcom,bcm2708-mbox";
  451                         reg = <0xB880 0x40>;
  452                         interrupts = <1>;
  453                         interrupt-parent = <&intc>;
  454 
  455                         /* Channels
  456                          * 0: Power
  457                          * 1: Frame buffer
  458                          * 2: Virtual UART
  459                          * 3: VCHIQ
  460                          * 4: LEDs
  461                          * 5: Buttons
  462                          * 6: Touch screen
  463                          */
  464                 };
  465 
  466                 sdhci {
  467                         compatible = "broadcom,bcm2835-sdhci", 
  468                                      "broadcom,bcm2708-sdhci";
  469                         reg = <0x300000 0x100>;
  470                         interrupts = <70>;
  471                         interrupt-parent = <&intc>;
  472 
  473                         clock-frequency = <250000000>;  /* Set by VideoCore */
  474                 };
  475 
  476                 uart0: uart0 {
  477                         compatible = "broadcom,bcm2835-uart", 
  478                                      "broadcom,bcm2708-uart", "arm,pl011", 
  479                                      "arm,primecell";
  480                         reg = <0x201000 0x1000>;
  481                         interrupts = <65>;
  482                         interrupt-parent = <&intc>;
  483 
  484                         clock-frequency = <3000000>;    /* Set by VideoCore */
  485                         reg-shift = <2>;
  486                 };
  487 
  488                 vchiq: vchiq {
  489                         compatible = "broadcom,bcm2835-vchiq";
  490                         reg = <0xB800 0x50>;
  491                         interrupts = <2>;
  492                         interrupt-parent = <&intc>;
  493                         cache-line-size = <32>;
  494                 };
  495 
  496                 usb {
  497                         compatible = "broadcom,bcm2835-usb", 
  498                                      "broadcom,bcm2708-usb", 
  499                                      "synopsys,designware-hs-otg2";
  500                         reg = <0x980000 0x20000>;
  501                         interrupts = <17>;
  502                         interrupt-parent = <&intc>;
  503                         #address-cells = <1>;
  504                         #size-cells = <0>;
  505                 };
  506 
  507         };
  508 };

Cache object: e28ab2da82b5d1dd7ef23061ee9dba4d


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