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/owl-s500.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  * Actions Semi S500 SoC
    4  *
    5  * Copyright (c) 2016-2017 Andreas Färber
    6  */
    7 
    8 #include <dt-bindings/clock/actions,s500-cmu.h>
    9 #include <dt-bindings/gpio/gpio.h>
   10 #include <dt-bindings/interrupt-controller/arm-gic.h>
   11 #include <dt-bindings/power/owl-s500-powergate.h>
   12 #include <dt-bindings/reset/actions,s500-reset.h>
   13 
   14 / {
   15         compatible = "actions,s500";
   16         interrupt-parent = <&gic>;
   17         #address-cells = <1>;
   18         #size-cells = <1>;
   19 
   20         aliases {
   21         };
   22 
   23         chosen {
   24         };
   25 
   26         cpus {
   27                 #address-cells = <1>;
   28                 #size-cells = <0>;
   29 
   30                 cpu0: cpu@0 {
   31                         device_type = "cpu";
   32                         compatible = "arm,cortex-a9";
   33                         reg = <0x0>;
   34                         enable-method = "actions,s500-smp";
   35                 };
   36 
   37                 cpu1: cpu@1 {
   38                         device_type = "cpu";
   39                         compatible = "arm,cortex-a9";
   40                         reg = <0x1>;
   41                         enable-method = "actions,s500-smp";
   42                 };
   43 
   44                 cpu2: cpu@2 {
   45                         device_type = "cpu";
   46                         compatible = "arm,cortex-a9";
   47                         reg = <0x2>;
   48                         enable-method = "actions,s500-smp";
   49                         power-domains = <&sps S500_PD_CPU2>;
   50                 };
   51 
   52                 cpu3: cpu@3 {
   53                         device_type = "cpu";
   54                         compatible = "arm,cortex-a9";
   55                         reg = <0x3>;
   56                         enable-method = "actions,s500-smp";
   57                         power-domains = <&sps S500_PD_CPU3>;
   58                 };
   59         };
   60 
   61         arm-pmu {
   62                 compatible = "arm,cortex-a9-pmu";
   63                 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
   64                              <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
   65                              <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
   66                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
   67                 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
   68         };
   69 
   70         hosc: hosc {
   71                 compatible = "fixed-clock";
   72                 clock-frequency = <24000000>;
   73                 #clock-cells = <0>;
   74         };
   75 
   76         losc: losc {
   77                 compatible = "fixed-clock";
   78                 clock-frequency = <32768>;
   79                 #clock-cells = <0>;
   80         };
   81 
   82         soc {
   83                 compatible = "simple-bus";
   84                 #address-cells = <1>;
   85                 #size-cells = <1>;
   86                 ranges;
   87 
   88                 scu: scu@b0020000 {
   89                         compatible = "arm,cortex-a9-scu";
   90                         reg = <0xb0020000 0x100>;
   91                 };
   92 
   93                 global_timer: timer@b0020200 {
   94                         compatible = "arm,cortex-a9-global-timer";
   95                         reg = <0xb0020200 0x100>;
   96                         interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
   97                         status = "disabled";
   98                 };
   99 
  100                 twd_timer: timer@b0020600 {
  101                         compatible = "arm,cortex-a9-twd-timer";
  102                         reg = <0xb0020600 0x20>;
  103                         interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
  104                         status = "disabled";
  105                 };
  106 
  107                 twd_wdt: wdt@b0020620 {
  108                         compatible = "arm,cortex-a9-twd-wdt";
  109                         reg = <0xb0020620 0xe0>;
  110                         interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
  111                         status = "disabled";
  112                 };
  113 
  114                 gic: interrupt-controller@b0021000 {
  115                         compatible = "arm,cortex-a9-gic";
  116                         reg = <0xb0021000 0x1000>,
  117                               <0xb0020100 0x0100>;
  118                         interrupt-controller;
  119                         #interrupt-cells = <3>;
  120                 };
  121 
  122                 l2: cache-controller@b0022000 {
  123                         compatible = "arm,pl310-cache";
  124                         reg = <0xb0022000 0x1000>;
  125                         cache-unified;
  126                         cache-level = <2>;
  127                         interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  128                         arm,tag-latency = <3 3 2>;
  129                         arm,data-latency = <5 3 3>;
  130                 };
  131 
  132                 uart0: serial@b0120000 {
  133                         compatible = "actions,s500-uart", "actions,owl-uart";
  134                         reg = <0xb0120000 0x2000>;
  135                         interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  136                         clocks = <&cmu CLK_UART0>;
  137                         status = "disabled";
  138                 };
  139 
  140                 uart1: serial@b0122000 {
  141                         compatible = "actions,s500-uart", "actions,owl-uart";
  142                         reg = <0xb0122000 0x2000>;
  143                         interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  144                         clocks = <&cmu CLK_UART1>;
  145                         status = "disabled";
  146                 };
  147 
  148                 uart2: serial@b0124000 {
  149                         compatible = "actions,s500-uart", "actions,owl-uart";
  150                         reg = <0xb0124000 0x2000>;
  151                         interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  152                         clocks = <&cmu CLK_UART2>;
  153                         status = "disabled";
  154                 };
  155 
  156                 uart3: serial@b0126000 {
  157                         compatible = "actions,s500-uart", "actions,owl-uart";
  158                         reg = <0xb0126000 0x2000>;
  159                         interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  160                         clocks = <&cmu CLK_UART3>;
  161                         status = "disabled";
  162                 };
  163 
  164                 uart4: serial@b0128000 {
  165                         compatible = "actions,s500-uart", "actions,owl-uart";
  166                         reg = <0xb0128000 0x2000>;
  167                         interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  168                         clocks = <&cmu CLK_UART4>;
  169                         status = "disabled";
  170                 };
  171 
  172                 uart5: serial@b012a000 {
  173                         compatible = "actions,s500-uart", "actions,owl-uart";
  174                         reg = <0xb012a000 0x2000>;
  175                         interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  176                         clocks = <&cmu CLK_UART5>;
  177                         status = "disabled";
  178                 };
  179 
  180                 uart6: serial@b012c000 {
  181                         compatible = "actions,s500-uart", "actions,owl-uart";
  182                         reg = <0xb012c000 0x2000>;
  183                         interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  184                         clocks = <&cmu CLK_UART6>;
  185                         status = "disabled";
  186                 };
  187 
  188                 cmu: clock-controller@b0160000 {
  189                         compatible = "actions,s500-cmu";
  190                         reg = <0xb0160000 0x8000>;
  191                         clocks = <&hosc>, <&losc>;
  192                         #clock-cells = <1>;
  193                         #reset-cells = <1>;
  194                 };
  195 
  196                 i2c0: i2c@b0170000 {
  197                         compatible = "actions,s500-i2c";
  198                         reg = <0xb0170000 0x4000>;
  199                         clocks = <&cmu CLK_I2C0>;
  200                         interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
  201                         #address-cells = <1>;
  202                         #size-cells = <0>;
  203                         status = "disabled";
  204                 };
  205 
  206                 i2c1: i2c@b0174000 {
  207                         compatible = "actions,s500-i2c";
  208                         reg = <0xb0174000 0x4000>;
  209                         clocks = <&cmu CLK_I2C1>;
  210                         interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  211                         #address-cells = <1>;
  212                         #size-cells = <0>;
  213                         status = "disabled";
  214                 };
  215 
  216                 i2c2: i2c@b0178000 {
  217                         compatible = "actions,s500-i2c";
  218                         reg = <0xb0178000 0x4000>;
  219                         clocks = <&cmu CLK_I2C2>;
  220                         interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  221                         #address-cells = <1>;
  222                         #size-cells = <0>;
  223                         status = "disabled";
  224                 };
  225 
  226                 i2c3: i2c@b017c000 {
  227                         compatible = "actions,s500-i2c";
  228                         reg = <0xb017c000 0x4000>;
  229                         clocks = <&cmu CLK_I2C3>;
  230                         interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  231                         #address-cells = <1>;
  232                         #size-cells = <0>;
  233                         status = "disabled";
  234                 };
  235 
  236                 sirq: interrupt-controller@b01b0200 {
  237                         compatible = "actions,s500-sirq";
  238                         reg = <0xb01b0200 0x4>;
  239                         interrupt-controller;
  240                         #interrupt-cells = <2>;
  241                         interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, /* SIRQ0 */
  242                                      <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, /* SIRQ1 */
  243                                      <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; /* SIRQ2 */
  244                 };
  245 
  246                 timer: timer@b0168000 {
  247                         compatible = "actions,s500-timer";
  248                         reg = <0xb0168000 0x8000>;
  249                         interrupts = <GIC_SPI  8 IRQ_TYPE_LEVEL_HIGH>,
  250                                      <GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>,
  251                                      <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
  252                                      <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  253                         interrupt-names = "2hz0", "2hz1", "timer0", "timer1";
  254                 };
  255 
  256                 sps: power-controller@b01b0100 {
  257                         compatible = "actions,s500-sps";
  258                         reg = <0xb01b0100 0x100>;
  259                         #power-domain-cells = <1>;
  260                 };
  261 
  262                 pinctrl: pinctrl@b01b0000 {
  263                         compatible = "actions,s500-pinctrl";
  264                         reg = <0xb01b0000 0x40>, /* GPIO */
  265                               <0xb01b0040 0x10>, /* Multiplexing Control */
  266                               <0xb01b0060 0x18>, /* PAD Control */
  267                               <0xb01b0080 0xc>;  /* PAD Drive Capacity */
  268                         clocks = <&cmu CLK_GPIO>;
  269                         gpio-controller;
  270                         gpio-ranges = <&pinctrl 0 0 132>;
  271                         #gpio-cells = <2>;
  272                         interrupt-controller;
  273                         #interrupt-cells = <2>;
  274                         interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, /* GPIOA */
  275                                      <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, /* GPIOB */
  276                                      <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, /* GPIOC */
  277                                      <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, /* GPIOD */
  278                                      <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; /* GPIOE */
  279                 };
  280 
  281                 dma: dma-controller@b0260000 {
  282                         compatible = "actions,s500-dma";
  283                         reg = <0xb0260000 0xd00>;
  284                         interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
  285                                      <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
  286                                      <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
  287                                      <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
  288                         #dma-cells = <1>;
  289                         dma-channels = <12>;
  290                         dma-requests = <46>;
  291                         clocks = <&cmu CLK_DMAC>;
  292                         power-domains = <&sps S500_PD_DMA>;
  293                 };
  294 
  295                 mmc0: mmc@b0230000 {
  296                         compatible = "actions,s500-mmc", "actions,owl-mmc";
  297                         reg = <0xb0230000 0x38>;
  298                         interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  299                         clocks = <&cmu CLK_SD0>;
  300                         resets = <&cmu RESET_SD0>;
  301                         dmas = <&dma 2>;
  302                         dma-names = "mmc";
  303                         status = "disabled";
  304                 };
  305 
  306                 mmc1: mmc@b0234000 {
  307                         compatible = "actions,s500-mmc", "actions,owl-mmc";
  308                         reg = <0xb0234000 0x38>;
  309                         interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
  310                         clocks = <&cmu CLK_SD1>;
  311                         resets = <&cmu RESET_SD1>;
  312                         dmas = <&dma 3>;
  313                         dma-names = "mmc";
  314                         status = "disabled";
  315                 };
  316 
  317                 mmc2: mmc@b0238000 {
  318                         compatible = "actions,s500-mmc", "actions,owl-mmc";
  319                         reg = <0xb0238000 0x38>;
  320                         interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  321                         clocks = <&cmu CLK_SD2>;
  322                         resets = <&cmu RESET_SD2>;
  323                         dmas = <&dma 4>;
  324                         dma-names = "mmc";
  325                         status = "disabled";
  326                 };
  327 
  328                 ethernet: ethernet@b0310000 {
  329                         compatible = "actions,s500-emac", "actions,owl-emac";
  330                         reg = <0xb0310000 0x10000>;
  331                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
  332                         clocks = <&cmu CLK_ETHERNET>, <&cmu CLK_RMII_REF>;
  333                         clock-names = "eth", "rmii";
  334                         resets = <&cmu RESET_ETHERNET>;
  335                         status = "disabled";
  336                 };
  337         };
  338 };

Cache object: 4c244d81627aa74b75bd3cc98dbbb1f6


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