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

Cache object: ea49c3cb7ff39b181ac0c8906a3b7e01


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