Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Samsung Exynos7885 SoC device tree source
0004  *
0005  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
0006  * Copyright (c) 2021 Dávid Virág
0007  */
0008 
0009 #include <dt-bindings/clock/exynos7885.h>
0010 #include <dt-bindings/interrupt-controller/arm-gic.h>
0011 
0012 / {
0013         compatible = "samsung,exynos7885";
0014         #address-cells = <2>;
0015         #size-cells = <1>;
0016 
0017         interrupt-parent = <&gic>;
0018 
0019         aliases {
0020                 pinctrl0 = &pinctrl_alive;
0021                 pinctrl1 = &pinctrl_dispaud;
0022                 pinctrl2 = &pinctrl_fsys;
0023                 pinctrl3 = &pinctrl_top;
0024         };
0025 
0026         arm-a53-pmu {
0027                 compatible = "arm,cortex-a53-pmu";
0028                 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
0029                              <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
0030                              <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
0031                              <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
0032                              <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
0033                              <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>;
0034                 interrupt-affinity = <&cpu0>,
0035                                      <&cpu1>,
0036                                      <&cpu2>,
0037                                      <&cpu3>,
0038                                      <&cpu4>,
0039                                      <&cpu5>;
0040         };
0041 
0042         arm-a73-pmu {
0043                 compatible = "arm,cortex-a73-pmu";
0044                 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
0045                              <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
0046                 interrupt-affinity = <&cpu6>,
0047                                      <&cpu7>;
0048         };
0049 
0050         cpus {
0051                 #address-cells = <1>;
0052                 #size-cells = <0>;
0053 
0054                 cpu-map {
0055                         cluster0 {
0056                                 core0 {
0057                                         cpu = <&cpu0>;
0058                                 };
0059                                 core1 {
0060                                         cpu = <&cpu1>;
0061                                 };
0062                                 core2 {
0063                                         cpu = <&cpu2>;
0064                                 };
0065                                 core3 {
0066                                         cpu = <&cpu3>;
0067                                 };
0068                                 core4 {
0069                                         cpu = <&cpu4>;
0070                                 };
0071                                 core5 {
0072                                         cpu = <&cpu5>;
0073                                 };
0074                         };
0075 
0076                         cluster1 {
0077                                 core0 {
0078                                         cpu = <&cpu6>;
0079                                 };
0080                                 core1 {
0081                                         cpu = <&cpu7>;
0082                                 };
0083                         };
0084                 };
0085 
0086                 cpu0: cpu@100 {
0087                         device_type = "cpu";
0088                         compatible = "arm,cortex-a53";
0089                         reg = <0x100>;
0090                         enable-method = "psci";
0091                 };
0092 
0093                 cpu1: cpu@101 {
0094                         device_type = "cpu";
0095                         compatible = "arm,cortex-a53";
0096                         reg = <0x101>;
0097                         enable-method = "psci";
0098                 };
0099 
0100                 cpu2: cpu@102 {
0101                         device_type = "cpu";
0102                         compatible = "arm,cortex-a53";
0103                         reg = <0x102>;
0104                         enable-method = "psci";
0105                 };
0106 
0107                 cpu3: cpu@103 {
0108                         device_type = "cpu";
0109                         compatible = "arm,cortex-a53";
0110                         reg = <0x103>;
0111                         enable-method = "psci";
0112                 };
0113 
0114                 cpu4: cpu@200 {
0115                         device_type = "cpu";
0116                         compatible = "arm,cortex-a53";
0117                         reg = <0x200>;
0118                         enable-method = "psci";
0119                 };
0120 
0121                 cpu5: cpu@201 {
0122                         device_type = "cpu";
0123                         compatible = "arm,cortex-a53";
0124                         reg = <0x201>;
0125                         enable-method = "psci";
0126                 };
0127 
0128                 cpu6: cpu@0 {
0129                         device_type = "cpu";
0130                         compatible = "arm,cortex-a73";
0131                         reg = <0x0>;
0132                         enable-method = "psci";
0133                 };
0134 
0135                 cpu7: cpu@1 {
0136                         device_type = "cpu";
0137                         compatible = "arm,cortex-a73";
0138                         reg = <0x1>;
0139                         enable-method = "psci";
0140                 };
0141         };
0142 
0143         psci {
0144                 compatible = "arm,psci";
0145                 method = "smc";
0146                 cpu_suspend = <0xc4000001>;
0147                 cpu_off = <0x84000002>;
0148                 cpu_on = <0xc4000003>;
0149         };
0150 
0151         timer {
0152                 compatible = "arm,armv8-timer";
0153                 /* Hypervisor Virtual Timer interrupt is not wired to GIC */
0154                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
0155                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
0156                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
0157                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
0158         };
0159 
0160         fixed-rate-clocks {
0161                 oscclk: osc-clock {
0162                         compatible = "fixed-clock";
0163                         #clock-cells = <0>;
0164                         clock-output-names = "oscclk";
0165                 };
0166         };
0167 
0168         soc: soc@0 {
0169                 compatible = "simple-bus";
0170                 #address-cells = <1>;
0171                 #size-cells = <1>;
0172                 ranges = <0x0 0x0 0x0 0x20000000>;
0173 
0174                 chipid@10000000 {
0175                         compatible = "samsung,exynos850-chipid";
0176                         reg = <0x10000000 0x24>;
0177                 };
0178 
0179                 gic: interrupt-controller@12301000 {
0180                         compatible = "arm,gic-400";
0181                         #interrupt-cells = <3>;
0182                         #address-cells = <0>;
0183                         interrupt-controller;
0184                         reg = <0x12301000 0x1000>,
0185                               <0x12302000 0x2000>,
0186                               <0x12304000 0x2000>,
0187                               <0x12306000 0x2000>;
0188                         interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
0189                                                  IRQ_TYPE_LEVEL_HIGH)>;
0190                 };
0191 
0192                 cmu_peri: clock-controller@10010000 {
0193                         compatible = "samsung,exynos7885-cmu-peri";
0194                         reg = <0x10010000 0x8000>;
0195                         #clock-cells = <1>;
0196 
0197                         clocks = <&oscclk>,
0198                                  <&cmu_top CLK_DOUT_PERI_BUS>,
0199                                  <&cmu_top CLK_DOUT_PERI_SPI0>,
0200                                  <&cmu_top CLK_DOUT_PERI_SPI1>,
0201                                  <&cmu_top CLK_DOUT_PERI_UART0>,
0202                                  <&cmu_top CLK_DOUT_PERI_UART1>,
0203                                  <&cmu_top CLK_DOUT_PERI_UART2>,
0204                                  <&cmu_top CLK_DOUT_PERI_USI0>,
0205                                  <&cmu_top CLK_DOUT_PERI_USI1>,
0206                                  <&cmu_top CLK_DOUT_PERI_USI2>;
0207                         clock-names = "oscclk",
0208                                       "dout_peri_bus",
0209                                       "dout_peri_spi0",
0210                                       "dout_peri_spi1",
0211                                       "dout_peri_uart0",
0212                                       "dout_peri_uart1",
0213                                       "dout_peri_uart2",
0214                                       "dout_peri_usi0",
0215                                       "dout_peri_usi1",
0216                                       "dout_peri_usi2";
0217                 };
0218 
0219                 cmu_core: clock-controller@12000000 {
0220                         compatible = "samsung,exynos7885-cmu-core";
0221                         reg = <0x12000000 0x8000>;
0222                         #clock-cells = <1>;
0223 
0224                         clocks = <&oscclk>,
0225                                  <&cmu_top CLK_DOUT_CORE_BUS>,
0226                                  <&cmu_top CLK_DOUT_CORE_CCI>,
0227                                  <&cmu_top CLK_DOUT_CORE_G3D>;
0228                         clock-names = "oscclk",
0229                                       "dout_core_bus",
0230                                       "dout_core_cci",
0231                                       "dout_core_g3d";
0232                 };
0233 
0234                 cmu_top: clock-controller@12060000 {
0235                         compatible = "samsung,exynos7885-cmu-top";
0236                         reg = <0x12060000 0x8000>;
0237                         #clock-cells = <1>;
0238 
0239                         clocks = <&oscclk>;
0240                         clock-names = "oscclk";
0241                 };
0242 
0243                 cmu_fsys: clock-controller@13400000 {
0244                         compatible = "samsung,exynos7885-cmu-fsys";
0245                         reg = <0x13400000 0x8000>;
0246                         #clock-cells = <1>;
0247 
0248                         clocks = <&oscclk>,
0249                                  <&cmu_top CLK_DOUT_FSYS_BUS>,
0250                                  <&cmu_top CLK_DOUT_FSYS_MMC_CARD>,
0251                                  <&cmu_top CLK_DOUT_FSYS_MMC_EMBD>,
0252                                  <&cmu_top CLK_DOUT_FSYS_MMC_SDIO>,
0253                                  <&cmu_top CLK_DOUT_FSYS_USB30DRD>;
0254                         clock-names = "oscclk",
0255                                       "dout_fsys_bus",
0256                                       "dout_fsys_mmc_card",
0257                                       "dout_fsys_mmc_embd",
0258                                       "dout_fsys_mmc_sdio",
0259                                       "dout_fsys_usb30drd";
0260                 };
0261 
0262                 pinctrl_alive: pinctrl@11cb0000 {
0263                         compatible = "samsung,exynos7885-pinctrl";
0264                         reg = <0x11cb0000 0x1000>;
0265 
0266                         wakeup-interrupt-controller {
0267                                 compatible = "samsung,exynos7-wakeup-eint";
0268                                 interrupt-parent = <&gic>;
0269                                 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
0270                         };
0271                 };
0272 
0273                 pinctrl_fsys: pinctrl@13430000 {
0274                         compatible = "samsung,exynos7885-pinctrl";
0275                         reg = <0x13430000 0x1000>;
0276                         interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
0277                 };
0278 
0279                 pinctrl_top: pinctrl@139b0000 {
0280                         compatible = "samsung,exynos7885-pinctrl";
0281                         reg = <0x139b0000 0x1000>;
0282                         interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
0283                 };
0284 
0285                 pinctrl_dispaud: pinctrl@148f0000 {
0286                         compatible = "samsung,exynos7885-pinctrl";
0287                         reg = <0x148f0000 0x1000>;
0288                         interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
0289                 };
0290 
0291                 pmu_system_controller: system-controller@11c80000 {
0292                         compatible = "samsung,exynos7-pmu", "syscon";
0293                         reg = <0x11c80000 0x10000>;
0294                 };
0295 
0296                 mmc_0: mmc@13500000 {
0297                         compatible = "samsung,exynos7-dw-mshc-smu";
0298                         reg = <0x13500000 0x2000>;
0299                         interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
0300                         #address-cells = <1>;
0301                         #size-cells = <0>;
0302                         clocks = <&cmu_fsys CLK_GOUT_MMC_EMBD_ACLK>,
0303                                  <&cmu_fsys CLK_GOUT_MMC_EMBD_SDCLKIN>;
0304                         clock-names = "biu", "ciu";
0305                         fifo-depth = <0x40>;
0306                         status = "disabled";
0307                 };
0308 
0309                 serial_0: serial@13800000 {
0310                         compatible = "samsung,exynos5433-uart";
0311                         reg = <0x13800000 0x100>;
0312                         interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
0313                         pinctrl-names = "default";
0314                         pinctrl-0 = <&uart0_bus>;
0315                         clocks = <&cmu_peri CLK_GOUT_UART0_PCLK>,
0316                                  <&cmu_peri CLK_GOUT_UART0_EXT_UCLK>;
0317                         clock-names = "uart", "clk_uart_baud0";
0318                         samsung,uart-fifosize = <64>;
0319                         status = "disabled";
0320                 };
0321 
0322                 serial_1: serial@13810000 {
0323                         compatible = "samsung,exynos5433-uart";
0324                         reg = <0x13810000 0x100>;
0325                         interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
0326                         pinctrl-names = "default";
0327                         pinctrl-0 = <&uart1_bus>;
0328                         clocks = <&cmu_peri CLK_GOUT_UART1_PCLK>,
0329                                  <&cmu_peri CLK_GOUT_UART1_EXT_UCLK>;
0330                         clock-names = "uart", "clk_uart_baud0";
0331                         samsung,uart-fifosize = <256>;
0332                         status = "disabled";
0333                 };
0334 
0335                 serial_2: serial@13820000 {
0336                         compatible = "samsung,exynos5433-uart";
0337                         reg = <0x13820000 0x100>;
0338                         interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>;
0339                         pinctrl-names = "default";
0340                         pinctrl-0 = <&uart2_bus>;
0341                         clocks = <&cmu_peri CLK_GOUT_UART2_PCLK>,
0342                                  <&cmu_peri CLK_GOUT_UART2_EXT_UCLK>;
0343                         clock-names = "uart", "clk_uart_baud0";
0344                         samsung,uart-fifosize = <256>;
0345                         status = "disabled";
0346                 };
0347 
0348                 i2c_0: i2c@13830000 {
0349                         compatible = "samsung,s3c2440-i2c";
0350                         reg = <0x13830000 0x100>;
0351                         interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
0352                         #address-cells = <1>;
0353                         #size-cells = <0>;
0354                         pinctrl-names = "default";
0355                         pinctrl-0 = <&i2c0_bus>;
0356                         clocks = <&cmu_peri CLK_GOUT_I2C0_PCLK>;
0357                         clock-names = "i2c";
0358                         status = "disabled";
0359                 };
0360 
0361                 i2c_1: i2c@13840000 {
0362                         compatible = "samsung,s3c2440-i2c";
0363                         reg = <0x13840000 0x100>;
0364                         interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
0365                         #address-cells = <1>;
0366                         #size-cells = <0>;
0367                         pinctrl-names = "default";
0368                         pinctrl-0 = <&i2c1_bus>;
0369                         clocks = <&cmu_peri CLK_GOUT_I2C1_PCLK>;
0370                         clock-names = "i2c";
0371                         status = "disabled";
0372                 };
0373 
0374                 i2c_2: i2c@13850000 {
0375                         compatible = "samsung,s3c2440-i2c";
0376                         reg = <0x13850000 0x100>;
0377                         interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>;
0378                         #address-cells = <1>;
0379                         #size-cells = <0>;
0380                         pinctrl-names = "default";
0381                         pinctrl-0 = <&i2c2_bus>;
0382                         clocks = <&cmu_peri CLK_GOUT_I2C2_PCLK>;
0383                         clock-names = "i2c";
0384                         status = "disabled";
0385                 };
0386 
0387                 i2c_3: i2c@13860000 {
0388                         compatible = "samsung,s3c2440-i2c";
0389                         reg = <0x13860000 0x100>;
0390                         interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
0391                         #address-cells = <1>;
0392                         #size-cells = <0>;
0393                         pinctrl-names = "default";
0394                         pinctrl-0 = <&i2c3_bus>;
0395                         clocks = <&cmu_peri CLK_GOUT_I2C3_PCLK>;
0396                         clock-names = "i2c";
0397                         status = "disabled";
0398                 };
0399 
0400                 i2c_4: i2c@13870000 {
0401                         compatible = "samsung,s3c2440-i2c";
0402                         reg = <0x13870000 0x100>;
0403                         interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
0404                         #address-cells = <1>;
0405                         #size-cells = <0>;
0406                         pinctrl-names = "default";
0407                         pinctrl-0 = <&i2c4_bus>;
0408                         clocks = <&cmu_peri CLK_GOUT_I2C4_PCLK>;
0409                         clock-names = "i2c";
0410                         status = "disabled";
0411                 };
0412 
0413                 i2c_5: i2c@13880000 {
0414                         compatible = "samsung,s3c2440-i2c";
0415                         reg = <0x13880000 0x100>;
0416                         interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>;
0417                         #address-cells = <1>;
0418                         #size-cells = <0>;
0419                         pinctrl-names = "default";
0420                         pinctrl-0 = <&i2c5_bus>;
0421                         clocks = <&cmu_peri CLK_GOUT_I2C5_PCLK>;
0422                         clock-names = "i2c";
0423                         status = "disabled";
0424                 };
0425 
0426                 i2c_6: i2c@13890000 {
0427                         compatible = "samsung,s3c2440-i2c";
0428                         reg = <0x13890000 0x100>;
0429                         interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
0430                         #address-cells = <1>;
0431                         #size-cells = <0>;
0432                         pinctrl-names = "default";
0433                         pinctrl-0 = <&i2c6_bus>;
0434                         clocks = <&cmu_peri CLK_GOUT_I2C6_PCLK>;
0435                         clock-names = "i2c";
0436                         status = "disabled";
0437                 };
0438 
0439                 i2c_7: i2c@11cd0000 {
0440                         compatible = "samsung,s3c2440-i2c";
0441                         reg = <0x11cd0000 0x100>;
0442                         interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
0443                         #address-cells = <1>;
0444                         #size-cells = <0>;
0445                         pinctrl-names = "default";
0446                         pinctrl-0 = <&i2c7_bus>;
0447                         clocks = <&cmu_peri CLK_GOUT_I2C7_PCLK>;
0448                         clock-names = "i2c";
0449                         status = "disabled";
0450                 };
0451         };
0452 };
0453 
0454 #include "exynos7885-pinctrl.dtsi"
0455 #include "arm/exynos-syscon-restart.dtsi"