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/arm64/freescale/imx8ulp.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  * Copyright 2021 NXP
    4  */
    5 
    6 #include <dt-bindings/clock/imx8ulp-clock.h>
    7 #include <dt-bindings/gpio/gpio.h>
    8 #include <dt-bindings/interrupt-controller/arm-gic.h>
    9 #include <dt-bindings/power/imx8ulp-power.h>
   10 
   11 #include "imx8ulp-pinfunc.h"
   12 
   13 / {
   14         interrupt-parent = <&gic>;
   15         #address-cells = <2>;
   16         #size-cells = <2>;
   17 
   18         aliases {
   19                 gpio0 = &gpiod;
   20                 gpio1 = &gpioe;
   21                 gpio2 = &gpiof;
   22                 mmc0 = &usdhc0;
   23                 mmc1 = &usdhc1;
   24                 mmc2 = &usdhc2;
   25                 serial0 = &lpuart4;
   26                 serial1 = &lpuart5;
   27                 serial2 = &lpuart6;
   28                 serial3 = &lpuart7;
   29         };
   30 
   31         cpus {
   32                 #address-cells = <2>;
   33                 #size-cells = <0>;
   34 
   35                 A35_0: cpu@0 {
   36                         device_type = "cpu";
   37                         compatible = "arm,cortex-a35";
   38                         reg = <0x0 0x0>;
   39                         enable-method = "psci";
   40                         next-level-cache = <&A35_L2>;
   41                 };
   42 
   43                 A35_1: cpu@1 {
   44                         device_type = "cpu";
   45                         compatible = "arm,cortex-a35";
   46                         reg = <0x0 0x1>;
   47                         enable-method = "psci";
   48                         next-level-cache = <&A35_L2>;
   49                 };
   50 
   51                 A35_L2: l2-cache0 {
   52                         compatible = "cache";
   53                 };
   54         };
   55 
   56         gic: interrupt-controller@2d400000 {
   57                 compatible = "arm,gic-v3";
   58                 reg = <0x0 0x2d400000 0 0x10000>, /* GIC Dist */
   59                       <0x0 0x2d440000 0 0xc0000>; /* GICR (RD_base + SGI_base) */
   60                 #interrupt-cells = <3>;
   61                 interrupt-controller;
   62                 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
   63         };
   64 
   65         psci {
   66                 compatible = "arm,psci-1.0";
   67                 method = "smc";
   68         };
   69 
   70         timer {
   71                 compatible = "arm,armv8-timer";
   72                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
   73                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
   74                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
   75                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
   76         };
   77 
   78         frosc: clock-frosc {
   79                 compatible = "fixed-clock";
   80                 clock-frequency = <192000000>;
   81                 clock-output-names = "frosc";
   82                 #clock-cells = <0>;
   83         };
   84 
   85         lposc: clock-lposc {
   86                 compatible = "fixed-clock";
   87                 clock-frequency = <1000000>;
   88                 clock-output-names = "lposc";
   89                 #clock-cells = <0>;
   90         };
   91 
   92         rosc: clock-rosc {
   93                 compatible = "fixed-clock";
   94                 clock-frequency = <32768>;
   95                 clock-output-names = "rosc";
   96                 #clock-cells = <0>;
   97         };
   98 
   99         sosc: clock-sosc {
  100                 compatible = "fixed-clock";
  101                 clock-frequency = <24000000>;
  102                 clock-output-names = "sosc";
  103                 #clock-cells = <0>;
  104         };
  105 
  106         sram@2201f000 {
  107                 compatible = "mmio-sram";
  108                 reg = <0x0 0x2201f000 0x0 0x1000>;
  109 
  110                 #address-cells = <1>;
  111                 #size-cells = <1>;
  112                 ranges = <0 0x0 0x2201f000 0x1000>;
  113 
  114                 scmi_buf: scmi-buf@0 {
  115                         compatible = "arm,scmi-shmem";
  116                         reg = <0x0 0x400>;
  117                 };
  118         };
  119 
  120         firmware {
  121                 scmi {
  122                         compatible = "arm,scmi-smc";
  123                         arm,smc-id = <0xc20000fe>;
  124                         #address-cells = <1>;
  125                         #size-cells = <0>;
  126                         shmem = <&scmi_buf>;
  127 
  128                         scmi_devpd: protocol@11 {
  129                                 reg = <0x11>;
  130                                 #power-domain-cells = <1>;
  131                         };
  132 
  133                         scmi_sensor: protocol@15 {
  134                                 reg = <0x15>;
  135                                 #thermal-sensor-cells = <1>;
  136                         };
  137                 };
  138         };
  139 
  140         soc: soc@0 {
  141                 compatible = "simple-bus";
  142                 #address-cells = <1>;
  143                 #size-cells = <1>;
  144                 ranges = <0x0 0x0 0x0 0x40000000>;
  145 
  146                 per_bridge3: bus@29000000 {
  147                         compatible = "simple-bus";
  148                         reg = <0x29000000 0x800000>;
  149                         #address-cells = <1>;
  150                         #size-cells = <1>;
  151                         ranges;
  152 
  153                         wdog3: watchdog@292a0000 {
  154                                 compatible = "fsl,imx8ulp-wdt", "fsl,imx7ulp-wdt";
  155                                 reg = <0x292a0000 0x10000>;
  156                                 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  157                                 clocks = <&pcc3 IMX8ULP_CLK_WDOG3>;
  158                                 assigned-clocks = <&pcc3 IMX8ULP_CLK_WDOG3>;
  159                                 assigned-clock-parents = <&cgc1 IMX8ULP_CLK_SOSC_DIV2>;
  160                                 timeout-sec = <40>;
  161                         };
  162 
  163                         cgc1: clock-controller@292c0000 {
  164                                 compatible = "fsl,imx8ulp-cgc1";
  165                                 reg = <0x292c0000 0x10000>;
  166                                 clocks = <&rosc>, <&sosc>, <&frosc>, <&lposc>;
  167                                 clock-names = "rosc", "sosc", "frosc", "lposc";
  168                                 #clock-cells = <1>;
  169                         };
  170 
  171                         pcc3: clock-controller@292d0000 {
  172                                 compatible = "fsl,imx8ulp-pcc3";
  173                                 reg = <0x292d0000 0x10000>;
  174                                 #clock-cells = <1>;
  175                                 #reset-cells = <1>;
  176                         };
  177 
  178                         tpm5: tpm@29340000 {
  179                                 compatible = "fsl,imx8ulp-tpm", "fsl,imx7ulp-tpm";
  180                                 reg = <0x29340000 0x1000>;
  181                                 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  182                                 clocks = <&pcc3 IMX8ULP_CLK_TPM5>,
  183                                          <&pcc3 IMX8ULP_CLK_TPM5>;
  184                                 clock-names = "ipg", "per";
  185                                 status = "disabled";
  186                         };
  187 
  188                         lpi2c4: i2c@29370000 {
  189                                 compatible = "fsl,imx8ulp-lpi2c", "fsl,imx7ulp-lpi2c";
  190                                 reg = <0x29370000 0x10000>;
  191                                 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  192                                 clocks = <&pcc3 IMX8ULP_CLK_LPI2C4>,
  193                                          <&pcc3 IMX8ULP_CLK_LPI2C4>;
  194                                 clock-names = "per", "ipg";
  195                                 assigned-clocks = <&pcc3 IMX8ULP_CLK_LPI2C4>;
  196                                 assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
  197                                 assigned-clock-rates = <48000000>;
  198                                 status = "disabled";
  199                         };
  200 
  201                         lpi2c5: i2c@29380000 {
  202                                 compatible = "fsl,imx8ulp-lpi2c", "fsl,imx7ulp-lpi2c";
  203                                 reg = <0x29380000 0x10000>;
  204                                 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  205                                 clocks = <&pcc3 IMX8ULP_CLK_LPI2C5>,
  206                                          <&pcc3 IMX8ULP_CLK_LPI2C5>;
  207                                 clock-names = "per", "ipg";
  208                                 assigned-clocks = <&pcc3 IMX8ULP_CLK_LPI2C5>;
  209                                 assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
  210                                 assigned-clock-rates = <48000000>;
  211                                 status = "disabled";
  212                         };
  213 
  214                         lpuart4: serial@29390000 {
  215                                 compatible = "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
  216                                 reg = <0x29390000 0x1000>;
  217                                 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  218                                 clocks = <&pcc3 IMX8ULP_CLK_LPUART4>;
  219                                 clock-names = "ipg";
  220                                 status = "disabled";
  221                         };
  222 
  223                         lpuart5: serial@293a0000 {
  224                                 compatible = "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
  225                                 reg = <0x293a0000 0x1000>;
  226                                 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  227                                 clocks = <&pcc3 IMX8ULP_CLK_LPUART5>;
  228                                 clock-names = "ipg";
  229                                 status = "disabled";
  230                         };
  231 
  232                         lpspi4: spi@293b0000 {
  233                                 #address-cells = <1>;
  234                                 #size-cells = <0>;
  235                                 compatible = "fsl,imx8ulp-spi", "fsl,imx7ulp-spi";
  236                                 reg = <0x293b0000 0x10000>;
  237                                 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  238                                 clocks = <&pcc3 IMX8ULP_CLK_LPSPI4>,
  239                                          <&pcc3 IMX8ULP_CLK_LPSPI4>;
  240                                 clock-names = "per", "ipg";
  241                                 assigned-clocks = <&pcc3 IMX8ULP_CLK_LPSPI4>;
  242                                 assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
  243                                 assigned-clock-rates = <16000000>;
  244                                 status = "disabled";
  245                         };
  246 
  247                         lpspi5: spi@293c0000 {
  248                                 #address-cells = <1>;
  249                                 #size-cells = <0>;
  250                                 compatible = "fsl,imx8ulp-spi", "fsl,imx7ulp-spi";
  251                                 reg = <0x293c0000 0x10000>;
  252                                 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  253                                 clocks = <&pcc3 IMX8ULP_CLK_LPSPI5>,
  254                                          <&pcc3 IMX8ULP_CLK_LPSPI5>;
  255                                 clock-names = "per", "ipg";
  256                                 assigned-clocks = <&pcc3 IMX8ULP_CLK_LPSPI5>;
  257                                 assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
  258                                 assigned-clock-rates = <16000000>;
  259                                 status = "disabled";
  260                         };
  261                 };
  262 
  263                 per_bridge4: bus@29800000 {
  264                         compatible = "simple-bus";
  265                         reg = <0x29800000 0x800000>;
  266                         #address-cells = <1>;
  267                         #size-cells = <1>;
  268                         ranges;
  269 
  270                         pcc4: clock-controller@29800000 {
  271                                 compatible = "fsl,imx8ulp-pcc4";
  272                                 reg = <0x29800000 0x10000>;
  273                                 #clock-cells = <1>;
  274                                 #reset-cells = <1>;
  275                         };
  276 
  277                         lpi2c6: i2c@29840000 {
  278                                 compatible = "fsl,imx8ulp-lpi2c", "fsl,imx7ulp-lpi2c";
  279                                 reg = <0x29840000 0x10000>;
  280                                 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  281                                 clocks = <&pcc4 IMX8ULP_CLK_LPI2C6>,
  282                                          <&pcc4 IMX8ULP_CLK_LPI2C6>;
  283                                 clock-names = "per", "ipg";
  284                                 assigned-clocks = <&pcc4 IMX8ULP_CLK_LPI2C6>;
  285                                 assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
  286                                 assigned-clock-rates = <48000000>;
  287                                 status = "disabled";
  288                         };
  289 
  290                         lpi2c7: i2c@29850000 {
  291                                 compatible = "fsl,imx8ulp-lpi2c", "fsl,imx7ulp-lpi2c";
  292                                 reg = <0x29850000 0x10000>;
  293                                 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  294                                 clocks = <&pcc4 IMX8ULP_CLK_LPI2C7>,
  295                                          <&pcc4 IMX8ULP_CLK_LPI2C7>;
  296                                 clock-names = "per", "ipg";
  297                                 assigned-clocks = <&pcc4 IMX8ULP_CLK_LPI2C7>;
  298                                 assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
  299                                 assigned-clock-rates = <48000000>;
  300                                 status = "disabled";
  301                         };
  302 
  303                         lpuart6: serial@29860000 {
  304                                 compatible = "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
  305                                 reg = <0x29860000 0x1000>;
  306                                 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  307                                 clocks = <&pcc4 IMX8ULP_CLK_LPUART6>;
  308                                 clock-names = "ipg";
  309                                 status = "disabled";
  310                         };
  311 
  312                         lpuart7: serial@29870000 {
  313                                 compatible = "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
  314                                 reg = <0x29870000 0x1000>;
  315                                 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  316                                 clocks = <&pcc4 IMX8ULP_CLK_LPUART7>;
  317                                 clock-names = "ipg";
  318                                 status = "disabled";
  319                         };
  320 
  321                         iomuxc1: pinctrl@298c0000 {
  322                                 compatible = "fsl,imx8ulp-iomuxc1";
  323                                 reg = <0x298c0000 0x10000>;
  324                         };
  325 
  326                         usdhc0: mmc@298d0000 {
  327                                 compatible = "fsl,imx8ulp-usdhc", "fsl,imx8mm-usdhc";
  328                                 reg = <0x298d0000 0x10000>;
  329                                 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
  330                                 clocks = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>,
  331                                          <&cgc1 IMX8ULP_CLK_XBAR_AD_DIVPLAT>,
  332                                          <&pcc4 IMX8ULP_CLK_USDHC0>;
  333                                 clock-names = "ipg", "ahb", "per";
  334                                 power-domains = <&scmi_devpd IMX8ULP_PD_USDHC0>;
  335                                 fsl,tuning-start-tap = <20>;
  336                                 fsl,tuning-step = <2>;
  337                                 bus-width = <4>;
  338                                 status = "disabled";
  339                         };
  340 
  341                         usdhc1: mmc@298e0000 {
  342                                 compatible = "fsl,imx8ulp-usdhc", "fsl,imx8mm-usdhc";
  343                                 reg = <0x298e0000 0x10000>;
  344                                 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
  345                                 clocks = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>,
  346                                          <&cgc1 IMX8ULP_CLK_NIC_PER_DIVPLAT>,
  347                                          <&pcc4 IMX8ULP_CLK_USDHC1>;
  348                                 clock-names = "ipg", "ahb", "per";
  349                                 power-domains = <&scmi_devpd IMX8ULP_PD_USDHC1>;
  350                                 fsl,tuning-start-tap = <20>;
  351                                 fsl,tuning-step = <2>;
  352                                 bus-width = <4>;
  353                                 status = "disabled";
  354                         };
  355 
  356                         usdhc2: mmc@298f0000 {
  357                                 compatible = "fsl,imx8ulp-usdhc", "fsl,imx8mm-usdhc";
  358                                 reg = <0x298f0000 0x10000>;
  359                                 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
  360                                 clocks = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>,
  361                                          <&cgc1 IMX8ULP_CLK_NIC_PER_DIVPLAT>,
  362                                          <&pcc4 IMX8ULP_CLK_USDHC2>;
  363                                 clock-names = "ipg", "ahb", "per";
  364                                 power-domains = <&scmi_devpd IMX8ULP_PD_USDHC2_USB1>;
  365                                 fsl,tuning-start-tap = <20>;
  366                                 fsl,tuning-step = <2>;
  367                                 bus-width = <4>;
  368                                 status = "disabled";
  369                         };
  370                 };
  371 
  372                 gpioe: gpio@2d000080 {
  373                                 compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio";
  374                                 reg = <0x2d000080 0x1000>, <0x2d000040 0x40>;
  375                                 gpio-controller;
  376                                 #gpio-cells = <2>;
  377                                 interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
  378                                 interrupt-controller;
  379                                 #interrupt-cells = <2>;
  380                                 clocks = <&pcc4 IMX8ULP_CLK_RGPIOE>,
  381                                          <&pcc4 IMX8ULP_CLK_PCTLE>;
  382                                 clock-names = "gpio", "port";
  383                                 gpio-ranges = <&iomuxc1 0 32 24>;
  384                 };
  385 
  386                 gpiof: gpio@2d010080 {
  387                                 compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio";
  388                                 reg = <0x2d010080 0x1000>, <0x2d010040 0x40>;
  389                                 gpio-controller;
  390                                 #gpio-cells = <2>;
  391                                 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
  392                                 interrupt-controller;
  393                                 #interrupt-cells = <2>;
  394                                 clocks = <&pcc4 IMX8ULP_CLK_RGPIOF>,
  395                                          <&pcc4 IMX8ULP_CLK_PCTLF>;
  396                                 clock-names = "gpio", "port";
  397                                 gpio-ranges = <&iomuxc1 0 64 32>;
  398                 };
  399 
  400                 per_bridge5: bus@2d800000 {
  401                         compatible = "simple-bus";
  402                         reg = <0x2d800000 0x800000>;
  403                         #address-cells = <1>;
  404                         #size-cells = <1>;
  405                         ranges;
  406 
  407                         cgc2: clock-controller@2da60000 {
  408                                 compatible = "fsl,imx8ulp-cgc2";
  409                                 reg = <0x2da60000 0x10000>;
  410                                 clocks = <&sosc>, <&frosc>;
  411                                 clock-names = "sosc", "frosc";
  412                                 #clock-cells = <1>;
  413                         };
  414 
  415                         pcc5: clock-controller@2da70000 {
  416                                 compatible = "fsl,imx8ulp-pcc5";
  417                                 reg = <0x2da70000 0x10000>;
  418                                 #clock-cells = <1>;
  419                                 #reset-cells = <1>;
  420                         };
  421                 };
  422 
  423                 gpiod: gpio@2e200080 {
  424                         compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio";
  425                         reg = <0x2e200080 0x1000>, <0x2e200040 0x40>;
  426                         gpio-controller;
  427                         #gpio-cells = <2>;
  428                         interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
  429                         interrupt-controller;
  430                         #interrupt-cells = <2>;
  431                         clocks = <&pcc5 IMX8ULP_CLK_RGPIOD>,
  432                                  <&pcc5 IMX8ULP_CLK_RGPIOD>;
  433                         clock-names = "gpio", "port";
  434                         gpio-ranges = <&iomuxc1 0 0 24>;
  435                 };
  436         };
  437 };

Cache object: 86e5f56a6380bffb0680b397fa1e18d7


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