// SPDX-License-Identifier: GPL-2.0 /* * Samsung's ExynosAuto v9 SoC device tree source * * Copyright (c) 2021 Samsung Electronics Co., Ltd. * */ #include #include #include / { compatible = "samsung,exynosautov9"; #address-cells = <2>; #size-cells = <1>; interrupt-parent = <&gic>; aliases { pinctrl0 = &pinctrl_alive; pinctrl1 = &pinctrl_aud; pinctrl2 = &pinctrl_fsys0; pinctrl3 = &pinctrl_fsys1; pinctrl4 = &pinctrl_fsys2; pinctrl5 = &pinctrl_peric0; pinctrl6 = &pinctrl_peric1; }; arm-pmu { compatible = "arm,cortex-a76-pmu"; interrupts = , , , , , , , ; interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>, <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu-map { cluster0 { core0 { cpu = <&cpu0>; }; core1 { cpu = <&cpu1>; }; core2 { cpu = <&cpu2>; }; core3 { cpu = <&cpu3>; }; }; cluster1 { core0 { cpu = <&cpu4>; }; core1 { cpu = <&cpu5>; }; core2 { cpu = <&cpu6>; }; core3 { cpu = <&cpu7>; }; }; }; cpu0: cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a76"; reg = <0x0>; enable-method = "psci"; }; cpu1: cpu@100 { device_type = "cpu"; compatible = "arm,cortex-a76"; reg = <0x100>; enable-method = "psci"; }; cpu2: cpu@200 { device_type = "cpu"; compatible = "arm,cortex-a76"; reg = <0x200>; enable-method = "psci"; }; cpu3: cpu@300 { device_type = "cpu"; compatible = "arm,cortex-a76"; reg = <0x300>; enable-method = "psci"; }; cpu4: cpu@10000 { device_type = "cpu"; compatible = "arm,cortex-a76"; reg = <0x10000>; enable-method = "psci"; }; cpu5: cpu@10100 { device_type = "cpu"; compatible = "arm,cortex-a76"; reg = <0x10100>; enable-method = "psci"; }; cpu6: cpu@10200 { device_type = "cpu"; compatible = "arm,cortex-a76"; reg = <0x10200>; enable-method = "psci"; }; cpu7: cpu@10300 { device_type = "cpu"; compatible = "arm,cortex-a76"; reg = <0x10300>; enable-method = "psci"; }; }; psci { compatible = "arm,psci-1.0"; method = "smc"; cpu_suspend = <0xc4000001>; cpu_off = <0x84000002>; cpu_on = <0xc4000003>; }; timer { compatible = "arm,armv8-timer"; interrupts = , , , ; }; fixed-rate-clocks { xtcxo: 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>; }; cmu_peris: clock-controller@10020000 { compatible = "samsung,exynosautov9-cmu-peris"; reg = <0x10020000 0x8000>; #clock-cells = <1>; clocks = <&xtcxo>, <&cmu_top DOUT_CLKCMU_PERIS_BUS>; clock-names = "oscclk", "dout_clkcmu_peris_bus"; }; cmu_peric0: clock-controller@10200000 { compatible = "samsung,exynosautov9-cmu-peric0"; reg = <0x10200000 0x8000>; #clock-cells = <1>; clocks = <&xtcxo>, <&cmu_top DOUT_CLKCMU_PERIC0_BUS>, <&cmu_top DOUT_CLKCMU_PERIC0_IP>; clock-names = "oscclk", "dout_clkcmu_peric0_bus", "dout_clkcmu_peric0_ip"; }; cmu_peric1: clock-controller@10800000 { compatible = "samsung,exynosautov9-cmu-peric1"; reg = <0x10800000 0x8000>; #clock-cells = <1>; clocks = <&xtcxo>, <&cmu_top DOUT_CLKCMU_PERIC1_BUS>, <&cmu_top DOUT_CLKCMU_PERIC1_IP>; clock-names = "oscclk", "dout_clkcmu_peric1_bus", "dout_clkcmu_peric1_ip"; }; cmu_fsys2: clock-controller@17c00000 { compatible = "samsung,exynosautov9-cmu-fsys2"; reg = <0x17c00000 0x8000>; #clock-cells = <1>; clocks = <&xtcxo>, <&cmu_top DOUT_CLKCMU_FSYS2_BUS>, <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>, <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>; clock-names = "oscclk", "dout_clkcmu_fsys2_bus", "dout_fsys2_clkcmu_ufs_embd", "dout_fsys2_clkcmu_ethernet"; }; cmu_core: clock-controller@1b030000 { compatible = "samsung,exynosautov9-cmu-core"; reg = <0x1b030000 0x8000>; #clock-cells = <1>; clocks = <&xtcxo>, <&cmu_top DOUT_CLKCMU_CORE_BUS>; clock-names = "oscclk", "dout_clkcmu_core_bus"; }; cmu_busmc: clock-controller@1b200000 { compatible = "samsung,exynosautov9-cmu-busmc"; reg = <0x1b200000 0x8000>; #clock-cells = <1>; clocks = <&xtcxo>, <&cmu_top DOUT_CLKCMU_BUSMC_BUS>; clock-names = "oscclk", "dout_clkcmu_busmc_bus"; }; cmu_top: clock-controller@1b240000 { compatible = "samsung,exynosautov9-cmu-top"; reg = <0x1b240000 0x8000>; #clock-cells = <1>; clocks = <&xtcxo>; clock-names = "oscclk"; }; gic: interrupt-controller@10101000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; #address-cells = <0>; interrupt-controller; reg = <0x10101000 0x1000>, <0x10102000 0x2000>, <0x10104000 0x2000>, <0x10106000 0x2000>; interrupts = ; }; pinctrl_alive: pinctrl@10450000 { compatible = "samsung,exynosautov9-pinctrl"; reg = <0x10450000 0x1000>; wakeup-interrupt-controller { compatible = "samsung,exynosautov9-wakeup-eint"; }; }; pinctrl_aud: pinctrl@19c60000{ compatible = "samsung,exynosautov9-pinctrl"; reg = <0x19c60000 0x1000>; }; pinctrl_fsys0: pinctrl@17740000 { compatible = "samsung,exynosautov9-pinctrl"; reg = <0x17740000 0x1000>; interrupts = ; }; pinctrl_fsys1: pinctrl@17060000 { compatible = "samsung,exynosautov9-pinctrl"; reg = <0x17060000 0x1000>; interrupts = ; }; pinctrl_fsys2: pinctrl@17c30000 { compatible = "samsung,exynosautov9-pinctrl"; reg = <0x17c30000 0x1000>; interrupts = ; }; pinctrl_peric0: pinctrl@10230000 { compatible = "samsung,exynosautov9-pinctrl"; reg = <0x10230000 0x1000>; interrupts = ; }; pinctrl_peric1: pinctrl@10830000 { compatible = "samsung,exynosautov9-pinctrl"; reg = <0x10830000 0x1000>; interrupts = ; }; pmu_system_controller: system-controller@10460000 { compatible = "samsung,exynos7-pmu", "syscon"; reg = <0x10460000 0x10000>; }; syscon_fsys2: syscon@17c20000 { compatible = "samsung,exynosautov9-sysreg", "syscon"; reg = <0x17c20000 0x1000>; }; syscon_peric0: syscon@10220000 { compatible = "samsung,exynosautov9-sysreg", "syscon"; reg = <0x10220000 0x2000>; }; usi_0: usi@103000c0 { compatible = "samsung,exynos850-usi"; reg = <0x103000c0 0x20>; samsung,sysreg = <&syscon_peric0 0x1000>; samsung,mode = ; samsung,clkreq-on; /* needed for UART mode */ #address-cells = <1>; #size-cells = <1>; ranges; clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PCLK_0>, <&cmu_peric0 CLK_GOUT_PERIC0_IPCLK_0>; clock-names = "pclk", "ipclk"; status = "disabled"; /* USI: UART */ serial_0: serial@10300000 { compatible = "samsung,exynos850-uart"; reg = <0x10300000 0xc0>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&uart0_bus_dual>; clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PCLK_0>, <&cmu_peric0 CLK_GOUT_PERIC0_IPCLK_0>; clock-names = "uart", "clk_uart_baud0"; status = "disabled"; }; }; ufs_0_phy: ufs0-phy@17e04000 { compatible = "samsung,exynosautov9-ufs-phy"; reg = <0x17e04000 0xc00>; reg-names = "phy-pma"; samsung,pmu-syscon = <&pmu_system_controller>; #phy-cells = <0>; clocks = <&xtcxo>; clock-names = "ref_clk"; status = "disabled"; }; ufs_0: ufs0@17e00000 { compatible ="samsung,exynosautov9-ufs"; reg = <0x17e00000 0x100>, /* 0: HCI standard */ <0x17e01100 0x410>, /* 1: Vendor-specific */ <0x17e80000 0x8000>, /* 2: UNIPRO */ <0x17dc0000 0x2200>; /* 3: UFS protector */ reg-names = "hci", "vs_hci", "unipro", "ufsp"; interrupts = ; clocks = <&cmu_fsys2 CLK_GOUT_FSYS2_UFS_EMBD0_ACLK>, <&cmu_fsys2 CLK_GOUT_FSYS2_UFS_EMBD0_UNIPRO>; clock-names = "core_clk", "sclk_unipro_main"; freq-table-hz = <0 0>, <0 0>; pinctrl-names = "default"; pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>; phys = <&ufs_0_phy>; phy-names = "ufs-phy"; samsung,sysreg = <&syscon_fsys2 0x710>; status = "disabled"; }; }; }; #include "exynosautov9-pinctrl.dtsi"