Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0+
0002 /*
0003  * Copyright (C) 2016 Freescale Semiconductor, Inc.
0004  * Copyright 2017-2020 NXP
0005  *      Dong Aisheng <aisheng.dong@nxp.com>
0006  */
0007 
0008 #include <dt-bindings/clock/imx8-clock.h>
0009 #include <dt-bindings/clock/imx8-lpcg.h>
0010 #include <dt-bindings/firmware/imx/rsrc.h>
0011 #include <dt-bindings/gpio/gpio.h>
0012 #include <dt-bindings/input/input.h>
0013 #include <dt-bindings/interrupt-controller/arm-gic.h>
0014 #include <dt-bindings/pinctrl/pads-imx8qxp.h>
0015 #include <dt-bindings/thermal/thermal.h>
0016 
0017 / {
0018         interrupt-parent = <&gic>;
0019         #address-cells = <2>;
0020         #size-cells = <2>;
0021 
0022         aliases {
0023                 ethernet0 = &fec1;
0024                 ethernet1 = &fec2;
0025                 gpio0 = &lsio_gpio0;
0026                 gpio1 = &lsio_gpio1;
0027                 gpio2 = &lsio_gpio2;
0028                 gpio3 = &lsio_gpio3;
0029                 gpio4 = &lsio_gpio4;
0030                 gpio5 = &lsio_gpio5;
0031                 gpio6 = &lsio_gpio6;
0032                 gpio7 = &lsio_gpio7;
0033                 i2c0 = &i2c0;
0034                 i2c1 = &i2c1;
0035                 i2c2 = &i2c2;
0036                 i2c3 = &i2c3;
0037                 mmc0 = &usdhc1;
0038                 mmc1 = &usdhc2;
0039                 mmc2 = &usdhc3;
0040                 mu0 = &lsio_mu0;
0041                 mu1 = &lsio_mu1;
0042                 mu2 = &lsio_mu2;
0043                 mu3 = &lsio_mu3;
0044                 mu4 = &lsio_mu4;
0045                 serial0 = &lpuart0;
0046                 serial1 = &lpuart1;
0047                 serial2 = &lpuart2;
0048                 serial3 = &lpuart3;
0049                 vpu_core0 = &vpu_core0;
0050                 vpu_core1 = &vpu_core1;
0051                 vpu_core2 = &vpu_core2;
0052         };
0053 
0054         cpus {
0055                 #address-cells = <2>;
0056                 #size-cells = <0>;
0057 
0058                 /* We have 1 clusters with 4 Cortex-A35 cores */
0059                 A35_0: cpu@0 {
0060                         device_type = "cpu";
0061                         compatible = "arm,cortex-a35";
0062                         reg = <0x0 0x0>;
0063                         enable-method = "psci";
0064                         i-cache-size = <0x8000>;
0065                         i-cache-line-size = <64>;
0066                         i-cache-sets = <256>;
0067                         d-cache-size = <0x8000>;
0068                         d-cache-line-size = <64>;
0069                         d-cache-sets = <128>;
0070                         next-level-cache = <&A35_L2>;
0071                         clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
0072                         operating-points-v2 = <&a35_opp_table>;
0073                         #cooling-cells = <2>;
0074                 };
0075 
0076                 A35_1: cpu@1 {
0077                         device_type = "cpu";
0078                         compatible = "arm,cortex-a35";
0079                         reg = <0x0 0x1>;
0080                         enable-method = "psci";
0081                         i-cache-size = <0x8000>;
0082                         i-cache-line-size = <64>;
0083                         i-cache-sets = <256>;
0084                         d-cache-size = <0x8000>;
0085                         d-cache-line-size = <64>;
0086                         d-cache-sets = <128>;
0087                         next-level-cache = <&A35_L2>;
0088                         clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
0089                         operating-points-v2 = <&a35_opp_table>;
0090                         #cooling-cells = <2>;
0091                 };
0092 
0093                 A35_2: cpu@2 {
0094                         device_type = "cpu";
0095                         compatible = "arm,cortex-a35";
0096                         reg = <0x0 0x2>;
0097                         enable-method = "psci";
0098                         i-cache-size = <0x8000>;
0099                         i-cache-line-size = <64>;
0100                         i-cache-sets = <256>;
0101                         d-cache-size = <0x8000>;
0102                         d-cache-line-size = <64>;
0103                         d-cache-sets = <128>;
0104                         next-level-cache = <&A35_L2>;
0105                         clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
0106                         operating-points-v2 = <&a35_opp_table>;
0107                         #cooling-cells = <2>;
0108                 };
0109 
0110                 A35_3: cpu@3 {
0111                         device_type = "cpu";
0112                         compatible = "arm,cortex-a35";
0113                         reg = <0x0 0x3>;
0114                         enable-method = "psci";
0115                         i-cache-size = <0x8000>;
0116                         i-cache-line-size = <64>;
0117                         i-cache-sets = <256>;
0118                         d-cache-size = <0x8000>;
0119                         d-cache-line-size = <64>;
0120                         d-cache-sets = <128>;
0121                         next-level-cache = <&A35_L2>;
0122                         clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
0123                         operating-points-v2 = <&a35_opp_table>;
0124                         #cooling-cells = <2>;
0125                 };
0126 
0127                 A35_L2: l2-cache0 {
0128                         compatible = "cache";
0129                         cache-level = <2>;
0130                         cache-size = <0x80000>;
0131                         cache-line-size = <64>;
0132                         cache-sets = <1024>;
0133                 };
0134         };
0135 
0136         a35_opp_table: opp-table {
0137                 compatible = "operating-points-v2";
0138                 opp-shared;
0139 
0140                 opp-900000000 {
0141                         opp-hz = /bits/ 64 <900000000>;
0142                         opp-microvolt = <1000000>;
0143                         clock-latency-ns = <150000>;
0144                 };
0145 
0146                 opp-1200000000 {
0147                         opp-hz = /bits/ 64 <1200000000>;
0148                         opp-microvolt = <1100000>;
0149                         clock-latency-ns = <150000>;
0150                         opp-suspend;
0151                 };
0152         };
0153 
0154         gic: interrupt-controller@51a00000 {
0155                 compatible = "arm,gic-v3";
0156                 reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
0157                       <0x0 0x51b00000 0 0xc0000>; /* GICR (RD_base + SGI_base) */
0158                 #interrupt-cells = <3>;
0159                 interrupt-controller;
0160                 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
0161         };
0162 
0163         reserved-memory {
0164                 #address-cells = <2>;
0165                 #size-cells = <2>;
0166                 ranges;
0167 
0168                 decoder_boot: decoder-boot@84000000 {
0169                         reg = <0 0x84000000 0 0x2000000>;
0170                         no-map;
0171                 };
0172 
0173                 encoder_boot: encoder-boot@86000000 {
0174                         reg = <0 0x86000000 0 0x200000>;
0175                         no-map;
0176                 };
0177 
0178                 decoder_rpc: decoder-rpc@92000000 {
0179                         reg = <0 0x92000000 0 0x100000>;
0180                         no-map;
0181                 };
0182 
0183                 dsp_reserved: dsp@92400000 {
0184                         reg = <0 0x92400000 0 0x2000000>;
0185                         no-map;
0186                 };
0187 
0188                 encoder_rpc: encoder-rpc@94400000 {
0189                         reg = <0 0x94400000 0 0x700000>;
0190                         no-map;
0191                 };
0192         };
0193 
0194         pmu {
0195                 compatible = "arm,cortex-a35-pmu";
0196                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
0197         };
0198 
0199         psci {
0200                 compatible = "arm,psci-1.0";
0201                 method = "smc";
0202         };
0203 
0204         system-controller {
0205                 compatible = "fsl,imx-scu";
0206                 mbox-names = "tx0",
0207                              "rx0",
0208                              "gip3";
0209                 mboxes = <&lsio_mu1 0 0
0210                           &lsio_mu1 1 0
0211                           &lsio_mu1 3 3>;
0212 
0213                 pd: power-controller {
0214                         compatible = "fsl,imx8qxp-scu-pd", "fsl,scu-pd";
0215                         #power-domain-cells = <1>;
0216                 };
0217 
0218                 clk: clock-controller {
0219                         compatible = "fsl,imx8qxp-clk", "fsl,scu-clk";
0220                         #clock-cells = <2>;
0221                 };
0222 
0223                 iomuxc: pinctrl {
0224                         compatible = "fsl,imx8qxp-iomuxc";
0225                 };
0226 
0227                 ocotp: ocotp {
0228                         compatible = "fsl,imx8qxp-scu-ocotp";
0229                         #address-cells = <1>;
0230                         #size-cells = <1>;
0231                 };
0232 
0233                 scu_key: keys {
0234                         compatible = "fsl,imx8qxp-sc-key", "fsl,imx-sc-key";
0235                         linux,keycodes = <KEY_POWER>;
0236                         status = "disabled";
0237                 };
0238 
0239                 rtc: rtc {
0240                         compatible = "fsl,imx8qxp-sc-rtc";
0241                 };
0242 
0243                 watchdog {
0244                         compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt";
0245                         timeout-sec = <60>;
0246                 };
0247 
0248                 tsens: thermal-sensor {
0249                         compatible = "fsl,imx8qxp-sc-thermal", "fsl,imx-sc-thermal";
0250                         #thermal-sensor-cells = <1>;
0251                 };
0252         };
0253 
0254         timer {
0255                 compatible = "arm,armv8-timer";
0256                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
0257                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
0258                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
0259                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
0260         };
0261 
0262         xtal32k: clock-xtal32k {
0263                 compatible = "fixed-clock";
0264                 #clock-cells = <0>;
0265                 clock-frequency = <32768>;
0266                 clock-output-names = "xtal_32KHz";
0267         };
0268 
0269         xtal24m: clock-xtal24m {
0270                 compatible = "fixed-clock";
0271                 #clock-cells = <0>;
0272                 clock-frequency = <24000000>;
0273                 clock-output-names = "xtal_24MHz";
0274         };
0275 
0276         thermal_zones: thermal-zones {
0277                 cpu0-thermal {
0278                         polling-delay-passive = <250>;
0279                         polling-delay = <2000>;
0280                         thermal-sensors = <&tsens IMX_SC_R_SYSTEM>;
0281 
0282                         trips {
0283                                 cpu_alert0: trip0 {
0284                                         temperature = <107000>;
0285                                         hysteresis = <2000>;
0286                                         type = "passive";
0287                                 };
0288 
0289                                 cpu_crit0: trip1 {
0290                                         temperature = <127000>;
0291                                         hysteresis = <2000>;
0292                                         type = "critical";
0293                                 };
0294                         };
0295 
0296                         cooling-maps {
0297                                 map0 {
0298                                         trip = <&cpu_alert0>;
0299                                         cooling-device =
0300                                                 <&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0301                                                 <&A35_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0302                                                 <&A35_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0303                                                 <&A35_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
0304                                 };
0305                         };
0306                 };
0307         };
0308 
0309         /* sorted in register address */
0310         #include "imx8-ss-img.dtsi"
0311         #include "imx8-ss-vpu.dtsi"
0312         #include "imx8-ss-adma.dtsi"
0313         #include "imx8-ss-conn.dtsi"
0314         #include "imx8-ss-ddr.dtsi"
0315         #include "imx8-ss-lsio.dtsi"
0316 };
0317 
0318 #include "imx8qxp-ss-img.dtsi"
0319 #include "imx8qxp-ss-adma.dtsi"
0320 #include "imx8qxp-ss-conn.dtsi"
0321 #include "imx8qxp-ss-lsio.dtsi"