1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Samsung's ExynosAuto v9 SoC device tree source 4 * 5 * Copyright (c) 2021 Samsung Electronics Co., Ltd. 6 * 7 */ 8 9#include <dt-bindings/interrupt-controller/arm-gic.h> 10 11/ { 12 compatible = "samsung,exynosautov9"; 13 #address-cells = <2>; 14 #size-cells = <1>; 15 16 interrupt-parent = <&gic>; 17 18 aliases { 19 pinctrl0 = &pinctrl_alive; 20 pinctrl1 = &pinctrl_aud; 21 pinctrl2 = &pinctrl_fsys0; 22 pinctrl3 = &pinctrl_fsys1; 23 pinctrl4 = &pinctrl_fsys2; 24 pinctrl5 = &pinctrl_peric0; 25 pinctrl6 = &pinctrl_peric1; 26 }; 27 28 arm-pmu { 29 compatible = "arm,cortex-a76-pmu"; 30 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, 31 <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 32 <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>, 33 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 34 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, 35 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, 36 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, 37 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 38 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>, 39 <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>; 40 }; 41 42 cpus { 43 #address-cells = <1>; 44 #size-cells = <0>; 45 46 cpu-map { 47 cluster0 { 48 core0 { 49 cpu = <&cpu0>; 50 }; 51 core1 { 52 cpu = <&cpu1>; 53 }; 54 core2 { 55 cpu = <&cpu2>; 56 }; 57 core3 { 58 cpu = <&cpu3>; 59 }; 60 }; 61 62 cluster1 { 63 core0 { 64 cpu = <&cpu4>; 65 }; 66 core1 { 67 cpu = <&cpu5>; 68 }; 69 core2 { 70 cpu = <&cpu6>; 71 }; 72 core3 { 73 cpu = <&cpu7>; 74 }; 75 }; 76 }; 77 78 cpu0: cpu@0 { 79 device_type = "cpu"; 80 compatible = "arm,cortex-a76"; 81 reg = <0x0>; 82 enable-method = "psci"; 83 }; 84 85 cpu1: cpu@100 { 86 device_type = "cpu"; 87 compatible = "arm,cortex-a76"; 88 reg = <0x100>; 89 enable-method = "psci"; 90 }; 91 92 cpu2: cpu@200 { 93 device_type = "cpu"; 94 compatible = "arm,cortex-a76"; 95 reg = <0x200>; 96 enable-method = "psci"; 97 }; 98 99 cpu3: cpu@300 { 100 device_type = "cpu"; 101 compatible = "arm,cortex-a76"; 102 reg = <0x300>; 103 enable-method = "psci"; 104 }; 105 106 cpu4: cpu@10000 { 107 device_type = "cpu"; 108 compatible = "arm,cortex-a76"; 109 reg = <0x10000>; 110 enable-method = "psci"; 111 }; 112 113 cpu5: cpu@10100 { 114 device_type = "cpu"; 115 compatible = "arm,cortex-a76"; 116 reg = <0x10100>; 117 enable-method = "psci"; 118 }; 119 120 cpu6: cpu@10200 { 121 device_type = "cpu"; 122 compatible = "arm,cortex-a76"; 123 reg = <0x10200>; 124 enable-method = "psci"; 125 }; 126 127 cpu7: cpu@10300 { 128 device_type = "cpu"; 129 compatible = "arm,cortex-a76"; 130 reg = <0x10300>; 131 enable-method = "psci"; 132 }; 133 }; 134 135 psci { 136 compatible = "arm,psci-1.0"; 137 method = "smc"; 138 cpu_suspend = <0xc4000001>; 139 cpu_off = <0x84000002>; 140 cpu_on = <0xc4000003>; 141 }; 142 143 timer { 144 compatible = "arm,armv8-timer"; 145 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 146 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 147 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 148 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 149 }; 150 151 fixed-rate-clocks { 152 xtcxo: clock { 153 compatible = "fixed-clock"; 154 #clock-cells = <0>; 155 clock-frequency = <26000000>; 156 clock-output-names = "oscclk"; 157 }; 158 159 /* 160 * Keep the stub clock for serial driver, until proper clock 161 * driver is implemented. 162 */ 163 uart_clock: uart-clock { 164 compatible = "fixed-clock"; 165 #clock-cells = <0>; 166 clock-frequency = <133250000>; 167 clock-output-names = "uart"; 168 }; 169 170 /* 171 * Keep the stub clock for ufs driver, until proper clock 172 * driver is implemented. 173 */ 174 ufs_core_clock: ufs-core-clock { 175 compatible = "fixed-clock"; 176 #clock-cells = <0>; 177 clock-frequency = <166562500>; 178 }; 179 }; 180 181 soc: soc@0 { 182 compatible = "simple-bus"; 183 #address-cells = <1>; 184 #size-cells = <1>; 185 ranges = <0x0 0x0 0x0 0x20000000>; 186 187 chipid@10000000 { 188 compatible = "samsung,exynos850-chipid"; 189 reg = <0x10000000 0x24>; 190 }; 191 192 gic: interrupt-controller@10101000 { 193 compatible = "arm,gic-400"; 194 #interrupt-cells = <3>; 195 #address-cells = <0>; 196 interrupt-controller; 197 reg = <0x10101000 0x1000>, 198 <0x10102000 0x2000>, 199 <0x10104000 0x2000>, 200 <0x10106000 0x2000>; 201 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | 202 IRQ_TYPE_LEVEL_HIGH)>; 203 }; 204 205 pinctrl_alive: pinctrl@10450000 { 206 compatible = "samsung,exynosautov9-pinctrl"; 207 reg = <0x10450000 0x1000>; 208 209 wakeup-interrupt-controller { 210 compatible = "samsung,exynos7-wakeup-eint"; 211 }; 212 }; 213 214 pinctrl_aud: pinctrl@19c60000{ 215 compatible = "samsung,exynosautov9-pinctrl"; 216 reg = <0x19c60000 0x1000>; 217 }; 218 219 pinctrl_fsys0: pinctrl@17740000 { 220 compatible = "samsung,exynosautov9-pinctrl"; 221 reg = <0x17740000 0x1000>; 222 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; 223 }; 224 225 pinctrl_fsys1: pinctrl@17060000 { 226 compatible = "samsung,exynosautov9-pinctrl"; 227 reg = <0x17060000 0x1000>; 228 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 229 }; 230 231 pinctrl_fsys2: pinctrl@17c30000 { 232 compatible = "samsung,exynosautov9-pinctrl"; 233 reg = <0x17c30000 0x1000>; 234 interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; 235 }; 236 237 pinctrl_peric0: pinctrl@10230000 { 238 compatible = "samsung,exynosautov9-pinctrl"; 239 reg = <0x10230000 0x1000>; 240 interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>; 241 }; 242 243 pinctrl_peric1: pinctrl@10830000 { 244 compatible = "samsung,exynosautov9-pinctrl"; 245 reg = <0x10830000 0x1000>; 246 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; 247 }; 248 249 pmu_system_controller: system-controller@10460000 { 250 compatible = "samsung,exynos7-pmu", "syscon"; 251 reg = <0x10460000 0x10000>; 252 }; 253 254 syscon_fsys2: syscon@17c20000 { 255 compatible = "samsung,exynosautov9-sysreg", "syscon"; 256 reg = <0x17c20000 0x1000>; 257 }; 258 259 /* USI: UART */ 260 serial_0: uart@10300000 { 261 compatible = "samsung,exynos850-uart"; 262 reg = <0x10300000 0x100>; 263 interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>; 264 pinctrl-names = "default"; 265 pinctrl-0 = <&uart0_bus_dual>; 266 clocks = <&uart_clock>, <&uart_clock>; 267 clock-names = "uart", "clk_uart_baud0"; 268 status = "disabled"; 269 }; 270 271 ufs_0_phy: ufs0-phy@17e04000 { 272 compatible = "samsung,exynosautov9-ufs-phy"; 273 reg = <0x17e04000 0xc00>; 274 reg-names = "phy-pma"; 275 samsung,pmu-syscon = <&pmu_system_controller>; 276 #phy-cells = <0>; 277 clocks = <&xtcxo>; 278 clock-names = "ref_clk"; 279 status = "disabled"; 280 }; 281 282 ufs_0: ufs0@17e00000 { 283 compatible ="samsung,exynosautov9-ufs"; 284 285 reg = <0x17e00000 0x100>, /* 0: HCI standard */ 286 <0x17e01100 0x410>, /* 1: Vendor-specific */ 287 <0x17e80000 0x8000>, /* 2: UNIPRO */ 288 <0x17dc0000 0x2200>; /* 3: UFS protector */ 289 reg-names = "hci", "vs_hci", "unipro", "ufsp"; 290 interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>; 291 clocks = <&ufs_core_clock>, 292 <&ufs_core_clock>; 293 clock-names = "core_clk", "sclk_unipro_main"; 294 freq-table-hz = <0 0>, <0 0>; 295 pinctrl-names = "default"; 296 pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>; 297 phys = <&ufs_0_phy>; 298 phy-names = "ufs-phy"; 299 samsung,sysreg = <&syscon_fsys2>; 300 samsung,ufs-shareability-reg-offset = <0x710>; 301 status = "disabled"; 302 }; 303 }; 304}; 305 306#include "exynosautov9-pinctrl.dtsi" 307