Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (c) 2015 MediaTek Inc.
0004  * Author: Mars.C <mars.cheng@mediatek.com>
0005  */
0006 
0007 #include <dt-bindings/interrupt-controller/irq.h>
0008 #include <dt-bindings/interrupt-controller/arm-gic.h>
0009 #include <dt-bindings/pinctrl/mt6795-pinfunc.h>
0010 
0011 / {
0012         compatible = "mediatek,mt6795";
0013         interrupt-parent = <&sysirq>;
0014         #address-cells = <2>;
0015         #size-cells = <2>;
0016 
0017         psci {
0018                 compatible = "arm,psci-0.2";
0019                 method = "smc";
0020         };
0021 
0022         cpus {
0023                 #address-cells = <1>;
0024                 #size-cells = <0>;
0025 
0026                 cpu0: cpu@0 {
0027                         device_type = "cpu";
0028                         compatible = "arm,cortex-a53";
0029                         enable-method = "psci";
0030                         reg = <0x000>;
0031                         cci-control-port = <&cci_control2>;
0032                         next-level-cache = <&l2_0>;
0033                 };
0034 
0035                 cpu1: cpu@1 {
0036                         device_type = "cpu";
0037                         compatible = "arm,cortex-a53";
0038                         enable-method = "psci";
0039                         reg = <0x001>;
0040                         cci-control-port = <&cci_control2>;
0041                         next-level-cache = <&l2_0>;
0042                 };
0043 
0044                 cpu2: cpu@2 {
0045                         device_type = "cpu";
0046                         compatible = "arm,cortex-a53";
0047                         enable-method = "psci";
0048                         reg = <0x002>;
0049                         cci-control-port = <&cci_control2>;
0050                         next-level-cache = <&l2_0>;
0051                 };
0052 
0053                 cpu3: cpu@3 {
0054                         device_type = "cpu";
0055                         compatible = "arm,cortex-a53";
0056                         enable-method = "psci";
0057                         reg = <0x003>;
0058                         cci-control-port = <&cci_control2>;
0059                         next-level-cache = <&l2_0>;
0060                 };
0061 
0062                 cpu4: cpu@100 {
0063                         device_type = "cpu";
0064                         compatible = "arm,cortex-a53";
0065                         enable-method = "psci";
0066                         reg = <0x100>;
0067                         cci-control-port = <&cci_control1>;
0068                         next-level-cache = <&l2_1>;
0069                 };
0070 
0071                 cpu5: cpu@101 {
0072                         device_type = "cpu";
0073                         compatible = "arm,cortex-a53";
0074                         enable-method = "psci";
0075                         reg = <0x101>;
0076                         cci-control-port = <&cci_control1>;
0077                         next-level-cache = <&l2_1>;
0078                 };
0079 
0080                 cpu6: cpu@102 {
0081                         device_type = "cpu";
0082                         compatible = "arm,cortex-a53";
0083                         enable-method = "psci";
0084                         reg = <0x102>;
0085                         cci-control-port = <&cci_control1>;
0086                         next-level-cache = <&l2_1>;
0087                 };
0088 
0089                 cpu7: cpu@103 {
0090                         device_type = "cpu";
0091                         compatible = "arm,cortex-a53";
0092                         enable-method = "psci";
0093                         reg = <0x103>;
0094                         cci-control-port = <&cci_control1>;
0095                         next-level-cache = <&l2_1>;
0096                 };
0097 
0098                 cpu-map {
0099                         cluster0 {
0100                                 core0 {
0101                                         cpu = <&cpu0>;
0102                                 };
0103 
0104                                 core1 {
0105                                         cpu = <&cpu1>;
0106                                 };
0107 
0108                                 core2 {
0109                                         cpu = <&cpu2>;
0110                                 };
0111 
0112                                 core3 {
0113                                         cpu = <&cpu3>;
0114                                 };
0115                         };
0116 
0117                         cluster1 {
0118                                 core0 {
0119                                         cpu = <&cpu4>;
0120                                 };
0121 
0122                                 core1 {
0123                                         cpu = <&cpu5>;
0124                                 };
0125 
0126                                 core2 {
0127                                         cpu = <&cpu6>;
0128                                 };
0129 
0130                                 core3 {
0131                                         cpu = <&cpu7>;
0132                                 };
0133                         };
0134                 };
0135 
0136                 l2_0: l2-cache0 {
0137                         compatible = "cache";
0138                         cache-level = <2>;
0139                 };
0140 
0141                 l2_1: l2-cache1 {
0142                         compatible = "cache";
0143                         cache-level = <2>;
0144                 };
0145         };
0146 
0147         clk26m: oscillator-26m {
0148                 compatible = "fixed-clock";
0149                 #clock-cells = <0>;
0150                 clock-frequency = <26000000>;
0151                 clock-output-names = "clk26m";
0152         };
0153 
0154         clk32k: oscillator-32k {
0155                 compatible = "fixed-clock";
0156                 #clock-cells = <0>;
0157                 clock-frequency = <32000>;
0158                 clock-output-names = "clk32k";
0159         };
0160 
0161         system_clk: dummy13m {
0162                 compatible = "fixed-clock";
0163                 clock-frequency = <13000000>;
0164                 #clock-cells = <0>;
0165         };
0166 
0167         pmu {
0168                 compatible = "arm,cortex-a53-pmu";
0169                 interrupts = <GIC_SPI  8 IRQ_TYPE_LEVEL_LOW>,
0170                              <GIC_SPI  9 IRQ_TYPE_LEVEL_LOW>,
0171                              <GIC_SPI 10 IRQ_TYPE_LEVEL_LOW>,
0172                              <GIC_SPI 11 IRQ_TYPE_LEVEL_LOW>;
0173                 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
0174         };
0175 
0176         timer {
0177                 compatible = "arm,armv8-timer";
0178                 interrupt-parent = <&gic>;
0179                 interrupts = <GIC_PPI 13
0180                              (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
0181                              <GIC_PPI 14
0182                              (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
0183                              <GIC_PPI 11
0184                              (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
0185                              <GIC_PPI 10
0186                              (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
0187         };
0188 
0189         soc {
0190                 #address-cells = <2>;
0191                 #size-cells = <2>;
0192                 compatible = "simple-bus";
0193                 ranges;
0194 
0195                 pio: pinctrl@10005000 {
0196                         compatible = "mediatek,mt6795-pinctrl";
0197                         reg = <0 0x10005000 0 0x1000>, <0 0x1000b000 0 0x1000>;
0198                         reg-names = "base", "eint";
0199                         interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
0200                                      <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
0201                         gpio-controller;
0202                         #gpio-cells = <2>;
0203                         gpio-ranges = <&pio 0 0 196>;
0204                         interrupt-controller;
0205                         #interrupt-cells = <2>;
0206                 };
0207 
0208                 watchdog: watchdog@10007000 {
0209                         compatible = "mediatek,mt6795-wdt";
0210                         reg = <0 0x10007000 0 0x100>;
0211                         interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_LOW>;
0212                         #reset-cells = <1>;
0213                         timeout-sec = <20>;
0214                 };
0215 
0216                 timer: timer@10008000 {
0217                         compatible = "mediatek,mt6795-timer",
0218                                      "mediatek,mt6577-timer";
0219                         reg = <0 0x10008000 0 0x1000>;
0220                         interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>;
0221                         clocks = <&system_clk>, <&clk32k>;
0222                 };
0223 
0224                 sysirq: intpol-controller@10200620 {
0225                         compatible = "mediatek,mt6795-sysirq",
0226                                      "mediatek,mt6577-sysirq";
0227                         interrupt-controller;
0228                         #interrupt-cells = <3>;
0229                         interrupt-parent = <&gic>;
0230                         reg = <0 0x10200620 0 0x20>;
0231                 };
0232 
0233                 gic: interrupt-controller@10221000 {
0234                         compatible = "arm,gic-400";
0235                         #interrupt-cells = <3>;
0236                         interrupt-parent = <&gic>;
0237                         interrupt-controller;
0238                         reg = <0 0x10221000 0 0x1000>,
0239                               <0 0x10222000 0 0x2000>,
0240                               <0 0x10224000 0 0x2000>,
0241                               <0 0x10226000 0 0x2000>;
0242                         interrupts = <GIC_PPI 9
0243                                 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
0244                 };
0245 
0246                 cci: cci@10390000 {
0247                         compatible = "arm,cci-400";
0248                         #address-cells = <1>;
0249                         #size-cells = <1>;
0250                         reg = <0 0x10390000 0 0x1000>;
0251                         ranges = <0 0 0x10390000 0x10000>;
0252 
0253                         cci_control0: slave-if@1000 {
0254                                 compatible = "arm,cci-400-ctrl-if";
0255                                 interface-type = "ace-lite";
0256                                 reg = <0x1000 0x1000>;
0257                         };
0258 
0259                         cci_control1: slave-if@4000 {
0260                                 compatible = "arm,cci-400-ctrl-if";
0261                                 interface-type = "ace";
0262                                 reg = <0x4000 0x1000>;
0263                         };
0264 
0265                         cci_control2: slave-if@5000 {
0266                                 compatible = "arm,cci-400-ctrl-if";
0267                                 interface-type = "ace";
0268                                 reg = <0x5000 0x1000>;
0269                         };
0270 
0271                         pmu@9000 {
0272                                 compatible = "arm,cci-400-pmu,r1";
0273                                 reg = <0x9000 0x5000>;
0274                                 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
0275                                              <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
0276                                              <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
0277                                              <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
0278                                              <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
0279                         };
0280                 };
0281 
0282                 uart0: serial@11002000 {
0283                         compatible = "mediatek,mt6795-uart",
0284                                      "mediatek,mt6577-uart";
0285                         reg = <0 0x11002000 0 0x400>;
0286                         interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
0287                         clocks = <&clk26m>;
0288                         status = "disabled";
0289                 };
0290 
0291                 uart1: serial@11003000 {
0292                         compatible = "mediatek,mt6795-uart",
0293                                      "mediatek,mt6577-uart";
0294                         reg = <0 0x11003000 0 0x400>;
0295                         interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
0296                         clocks = <&clk26m>;
0297                         status = "disabled";
0298                 };
0299 
0300                 uart2: serial@11004000 {
0301                         compatible = "mediatek,mt6795-uart",
0302                                      "mediatek,mt6577-uart";
0303                         reg = <0 0x11004000 0 0x400>;
0304                         interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
0305                         clocks = <&clk26m>;
0306                         status = "disabled";
0307                 };
0308 
0309                 uart3: serial@11005000 {
0310                         compatible = "mediatek,mt6795-uart",
0311                                      "mediatek,mt6577-uart";
0312                         reg = <0 0x11005000 0 0x400>;
0313                         interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>;
0314                         clocks = <&clk26m>;
0315                         status = "disabled";
0316                 };
0317         };
0318 };