// SPDX-License-Identifier: GPL-2.0 /* * Samsung Exynos7885 SoC device tree source * * Copyright (c) 2021 Samsung Electronics Co., Ltd. * Copyright (c) 2021 Dávid Virág */ #include #include / { compatible = "samsung,exynos7885"; #address-cells = <2>; #size-cells = <1>; interrupt-parent = <&gic>; aliases { pinctrl0 = &pinctrl_alive; pinctrl1 = &pinctrl_dispaud; pinctrl2 = &pinctrl_fsys; pinctrl3 = &pinctrl_top; }; arm-a53-pmu { compatible = "arm,cortex-a53-pmu"; interrupts = , , , , , ; interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>, <&cpu4>, <&cpu5>; }; arm-a73-pmu { compatible = "arm,cortex-a73-pmu"; interrupts = , ; interrupt-affinity = <&cpu6>, <&cpu7>; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu-map { cluster0 { core0 { cpu = <&cpu0>; }; core1 { cpu = <&cpu1>; }; core2 { cpu = <&cpu2>; }; core3 { cpu = <&cpu3>; }; core4 { cpu = <&cpu4>; }; core5 { cpu = <&cpu5>; }; }; cluster1 { core0 { cpu = <&cpu6>; }; core1 { cpu = <&cpu7>; }; }; }; cpu0: cpu@100 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x100>; enable-method = "psci"; }; cpu1: cpu@101 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x101>; enable-method = "psci"; }; cpu2: cpu@102 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x102>; enable-method = "psci"; }; cpu3: cpu@103 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x103>; enable-method = "psci"; }; cpu4: cpu@200 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x200>; enable-method = "psci"; }; cpu5: cpu@201 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x201>; enable-method = "psci"; }; cpu6: cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a73"; reg = <0x0>; enable-method = "psci"; }; cpu7: cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a73"; reg = <0x1>; enable-method = "psci"; }; }; psci { compatible = "arm,psci"; method = "smc"; cpu_suspend = <0xc4000001>; cpu_off = <0x84000002>; cpu_on = <0xc4000003>; }; timer { compatible = "arm,armv8-timer"; /* Hypervisor Virtual Timer interrupt is not wired to GIC */ interrupts = , , , ; }; fixed-rate-clocks { oscclk: osc-clock { compatible = "fixed-clock"; #clock-cells = <0>; clock-output-names = "oscclk"; }; }; soc: soc@0 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x0 0x20000000>; chipid@10000000 { compatible = "samsung,exynos850-chipid"; reg = <0x10000000 0x24>; }; gic: interrupt-controller@12301000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; #address-cells = <0>; interrupt-controller; reg = <0x12301000 0x1000>, <0x12302000 0x2000>, <0x12304000 0x2000>, <0x12306000 0x2000>; interrupts = ; }; cmu_peri: clock-controller@10010000 { compatible = "samsung,exynos7885-cmu-peri"; reg = <0x10010000 0x8000>; #clock-cells = <1>; clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, <&cmu_top CLK_DOUT_PERI_SPI0>, <&cmu_top CLK_DOUT_PERI_SPI1>, <&cmu_top CLK_DOUT_PERI_UART0>, <&cmu_top CLK_DOUT_PERI_UART1>, <&cmu_top CLK_DOUT_PERI_UART2>, <&cmu_top CLK_DOUT_PERI_USI0>, <&cmu_top CLK_DOUT_PERI_USI1>, <&cmu_top CLK_DOUT_PERI_USI2>; clock-names = "oscclk", "dout_peri_bus", "dout_peri_spi0", "dout_peri_spi1", "dout_peri_uart0", "dout_peri_uart1", "dout_peri_uart2", "dout_peri_usi0", "dout_peri_usi1", "dout_peri_usi2"; }; cmu_core: clock-controller@12000000 { compatible = "samsung,exynos7885-cmu-core"; reg = <0x12000000 0x8000>; #clock-cells = <1>; clocks = <&oscclk>, <&cmu_top CLK_DOUT_CORE_BUS>, <&cmu_top CLK_DOUT_CORE_CCI>, <&cmu_top CLK_DOUT_CORE_G3D>; clock-names = "oscclk", "dout_core_bus", "dout_core_cci", "dout_core_g3d"; }; cmu_top: clock-controller@12060000 { compatible = "samsung,exynos7885-cmu-top"; reg = <0x12060000 0x8000>; #clock-cells = <1>; clocks = <&oscclk>; clock-names = "oscclk"; }; cmu_fsys: clock-controller@13400000 { compatible = "samsung,exynos7885-cmu-fsys"; reg = <0x13400000 0x8000>; #clock-cells = <1>; clocks = <&oscclk>, <&cmu_top CLK_DOUT_FSYS_BUS>, <&cmu_top CLK_DOUT_FSYS_MMC_CARD>, <&cmu_top CLK_DOUT_FSYS_MMC_EMBD>, <&cmu_top CLK_DOUT_FSYS_MMC_SDIO>, <&cmu_top CLK_DOUT_FSYS_USB30DRD>; clock-names = "oscclk", "dout_fsys_bus", "dout_fsys_mmc_card", "dout_fsys_mmc_embd", "dout_fsys_mmc_sdio", "dout_fsys_usb30drd"; }; pinctrl_alive: pinctrl@11cb0000 { compatible = "samsung,exynos7885-pinctrl"; reg = <0x11cb0000 0x1000>; wakeup-interrupt-controller { compatible = "samsung,exynos7-wakeup-eint"; interrupt-parent = <&gic>; interrupts = ; }; }; pinctrl_fsys: pinctrl@13430000 { compatible = "samsung,exynos7885-pinctrl"; reg = <0x13430000 0x1000>; interrupts = ; }; pinctrl_top: pinctrl@139b0000 { compatible = "samsung,exynos7885-pinctrl"; reg = <0x139b0000 0x1000>; interrupts = ; }; pinctrl_dispaud: pinctrl@148f0000 { compatible = "samsung,exynos7885-pinctrl"; reg = <0x148f0000 0x1000>; interrupts = ; }; pmu_system_controller: system-controller@11c80000 { compatible = "samsung,exynos7-pmu", "syscon"; reg = <0x11c80000 0x10000>; }; mmc_0: mmc@13500000 { compatible = "samsung,exynos7-dw-mshc-smu"; reg = <0x13500000 0x2000>; interrupts = ; #address-cells = <1>; #size-cells = <0>; clocks = <&cmu_fsys CLK_GOUT_MMC_EMBD_ACLK>, <&cmu_fsys CLK_GOUT_MMC_EMBD_SDCLKIN>; clock-names = "biu", "ciu"; fifo-depth = <0x40>; status = "disabled"; }; serial_0: serial@13800000 { compatible = "samsung,exynos5433-uart"; reg = <0x13800000 0x100>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&uart0_bus>; clocks = <&cmu_peri CLK_GOUT_UART0_PCLK>, <&cmu_peri CLK_GOUT_UART0_EXT_UCLK>; clock-names = "uart", "clk_uart_baud0"; samsung,uart-fifosize = <64>; status = "disabled"; }; serial_1: serial@13810000 { compatible = "samsung,exynos5433-uart"; reg = <0x13810000 0x100>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&uart1_bus>; clocks = <&cmu_peri CLK_GOUT_UART1_PCLK>, <&cmu_peri CLK_GOUT_UART1_EXT_UCLK>; clock-names = "uart", "clk_uart_baud0"; samsung,uart-fifosize = <256>; status = "disabled"; }; serial_2: serial@13820000 { compatible = "samsung,exynos5433-uart"; reg = <0x13820000 0x100>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&uart2_bus>; clocks = <&cmu_peri CLK_GOUT_UART2_PCLK>, <&cmu_peri CLK_GOUT_UART2_EXT_UCLK>; clock-names = "uart", "clk_uart_baud0"; samsung,uart-fifosize = <256>; status = "disabled"; }; i2c_0: i2c@13830000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13830000 0x100>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c0_bus>; clocks = <&cmu_peri CLK_GOUT_I2C0_PCLK>; clock-names = "i2c"; status = "disabled"; }; i2c_1: i2c@13840000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13840000 0x100>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c1_bus>; clocks = <&cmu_peri CLK_GOUT_I2C1_PCLK>; clock-names = "i2c"; status = "disabled"; }; i2c_2: i2c@13850000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13850000 0x100>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c2_bus>; clocks = <&cmu_peri CLK_GOUT_I2C2_PCLK>; clock-names = "i2c"; status = "disabled"; }; i2c_3: i2c@13860000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13860000 0x100>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c3_bus>; clocks = <&cmu_peri CLK_GOUT_I2C3_PCLK>; clock-names = "i2c"; status = "disabled"; }; i2c_4: i2c@13870000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13870000 0x100>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c4_bus>; clocks = <&cmu_peri CLK_GOUT_I2C4_PCLK>; clock-names = "i2c"; status = "disabled"; }; i2c_5: i2c@13880000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13880000 0x100>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c5_bus>; clocks = <&cmu_peri CLK_GOUT_I2C5_PCLK>; clock-names = "i2c"; status = "disabled"; }; i2c_6: i2c@13890000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13890000 0x100>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c6_bus>; clocks = <&cmu_peri CLK_GOUT_I2C6_PCLK>; clock-names = "i2c"; status = "disabled"; }; i2c_7: i2c@11cd0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x11cd0000 0x100>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c7_bus>; clocks = <&cmu_peri CLK_GOUT_I2C7_PCLK>; clock-names = "i2c"; status = "disabled"; }; }; }; #include "exynos7885-pinctrl.dtsi" #include "arm/exynos-syscon-restart.dtsi"