1*1537cf73SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*1537cf73SEmmanuel Vadot/* 3*1537cf73SEmmanuel Vadot * Axis ARTPEC-8 SoC device tree source 4*1537cf73SEmmanuel Vadot * 5*1537cf73SEmmanuel Vadot * Copyright (c) 2025 Samsung Electronics Co., Ltd. 6*1537cf73SEmmanuel Vadot * https://www.samsung.com 7*1537cf73SEmmanuel Vadot * Copyright (c) 2025 Axis Communications AB. 8*1537cf73SEmmanuel Vadot * https://www.axis.com 9*1537cf73SEmmanuel Vadot */ 10*1537cf73SEmmanuel Vadot 11*1537cf73SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 12*1537cf73SEmmanuel Vadot#include <dt-bindings/clock/axis,artpec8-clk.h> 13*1537cf73SEmmanuel Vadot 14*1537cf73SEmmanuel Vadot/ { 15*1537cf73SEmmanuel Vadot compatible = "axis,artpec8"; 16*1537cf73SEmmanuel Vadot interrupt-parent = <&gic>; 17*1537cf73SEmmanuel Vadot #address-cells = <2>; 18*1537cf73SEmmanuel Vadot #size-cells = <2>; 19*1537cf73SEmmanuel Vadot 20*1537cf73SEmmanuel Vadot aliases { 21*1537cf73SEmmanuel Vadot pinctrl0 = &pinctrl_fsys; 22*1537cf73SEmmanuel Vadot pinctrl1 = &pinctrl_peric; 23*1537cf73SEmmanuel Vadot }; 24*1537cf73SEmmanuel Vadot 25*1537cf73SEmmanuel Vadot cpus { 26*1537cf73SEmmanuel Vadot #address-cells = <1>; 27*1537cf73SEmmanuel Vadot #size-cells = <0>; 28*1537cf73SEmmanuel Vadot 29*1537cf73SEmmanuel Vadot cpu0: cpu@0 { 30*1537cf73SEmmanuel Vadot device_type = "cpu"; 31*1537cf73SEmmanuel Vadot compatible = "arm,cortex-a53"; 32*1537cf73SEmmanuel Vadot reg = <0x0>; 33*1537cf73SEmmanuel Vadot enable-method = "psci"; 34*1537cf73SEmmanuel Vadot cpu-idle-states = <&cpu_sleep>; 35*1537cf73SEmmanuel Vadot clocks = <&cmu_cpucl CLK_GOUT_CPUCL_CLUSTER_CPU>; 36*1537cf73SEmmanuel Vadot clock-names = "cpu"; 37*1537cf73SEmmanuel Vadot }; 38*1537cf73SEmmanuel Vadot 39*1537cf73SEmmanuel Vadot cpu1: cpu@1 { 40*1537cf73SEmmanuel Vadot device_type = "cpu"; 41*1537cf73SEmmanuel Vadot compatible = "arm,cortex-a53"; 42*1537cf73SEmmanuel Vadot reg = <0x1>; 43*1537cf73SEmmanuel Vadot enable-method = "psci"; 44*1537cf73SEmmanuel Vadot cpu-idle-states = <&cpu_sleep>; 45*1537cf73SEmmanuel Vadot }; 46*1537cf73SEmmanuel Vadot 47*1537cf73SEmmanuel Vadot cpu2: cpu@2 { 48*1537cf73SEmmanuel Vadot device_type = "cpu"; 49*1537cf73SEmmanuel Vadot compatible = "arm,cortex-a53"; 50*1537cf73SEmmanuel Vadot reg = <0x2>; 51*1537cf73SEmmanuel Vadot enable-method = "psci"; 52*1537cf73SEmmanuel Vadot cpu-idle-states = <&cpu_sleep>; 53*1537cf73SEmmanuel Vadot }; 54*1537cf73SEmmanuel Vadot 55*1537cf73SEmmanuel Vadot cpu3: cpu@3 { 56*1537cf73SEmmanuel Vadot device_type = "cpu"; 57*1537cf73SEmmanuel Vadot compatible = "arm,cortex-a53"; 58*1537cf73SEmmanuel Vadot reg = <0x3>; 59*1537cf73SEmmanuel Vadot enable-method = "psci"; 60*1537cf73SEmmanuel Vadot cpu-idle-states = <&cpu_sleep>; 61*1537cf73SEmmanuel Vadot }; 62*1537cf73SEmmanuel Vadot 63*1537cf73SEmmanuel Vadot idle-states { 64*1537cf73SEmmanuel Vadot entry-method = "psci"; 65*1537cf73SEmmanuel Vadot 66*1537cf73SEmmanuel Vadot cpu_sleep: cpu-sleep { 67*1537cf73SEmmanuel Vadot compatible = "arm,idle-state"; 68*1537cf73SEmmanuel Vadot arm,psci-suspend-param = <0x0010000>; 69*1537cf73SEmmanuel Vadot local-timer-stop; 70*1537cf73SEmmanuel Vadot entry-latency-us = <300>; 71*1537cf73SEmmanuel Vadot exit-latency-us = <1200>; 72*1537cf73SEmmanuel Vadot min-residency-us = <2000>; 73*1537cf73SEmmanuel Vadot }; 74*1537cf73SEmmanuel Vadot }; 75*1537cf73SEmmanuel Vadot }; 76*1537cf73SEmmanuel Vadot 77*1537cf73SEmmanuel Vadot fin_pll: clock-finpll { 78*1537cf73SEmmanuel Vadot compatible = "fixed-factor-clock"; 79*1537cf73SEmmanuel Vadot clocks = <&osc_clk>; 80*1537cf73SEmmanuel Vadot #clock-cells = <0>; 81*1537cf73SEmmanuel Vadot clock-div = <2>; 82*1537cf73SEmmanuel Vadot clock-mult = <1>; 83*1537cf73SEmmanuel Vadot clock-output-names = "fin_pll"; 84*1537cf73SEmmanuel Vadot }; 85*1537cf73SEmmanuel Vadot 86*1537cf73SEmmanuel Vadot osc_clk: clock-osc { 87*1537cf73SEmmanuel Vadot /* XXTI */ 88*1537cf73SEmmanuel Vadot compatible = "fixed-clock"; 89*1537cf73SEmmanuel Vadot #clock-cells = <0>; 90*1537cf73SEmmanuel Vadot clock-output-names = "osc_clk"; 91*1537cf73SEmmanuel Vadot }; 92*1537cf73SEmmanuel Vadot 93*1537cf73SEmmanuel Vadot pmu { 94*1537cf73SEmmanuel Vadot compatible = "arm,cortex-a53-pmu"; 95*1537cf73SEmmanuel Vadot interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 96*1537cf73SEmmanuel Vadot <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 97*1537cf73SEmmanuel Vadot <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 98*1537cf73SEmmanuel Vadot <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 99*1537cf73SEmmanuel Vadot interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 100*1537cf73SEmmanuel Vadot }; 101*1537cf73SEmmanuel Vadot 102*1537cf73SEmmanuel Vadot psci { 103*1537cf73SEmmanuel Vadot compatible = "arm,psci-0.2"; 104*1537cf73SEmmanuel Vadot method = "smc"; 105*1537cf73SEmmanuel Vadot }; 106*1537cf73SEmmanuel Vadot 107*1537cf73SEmmanuel Vadot soc: soc@0 { 108*1537cf73SEmmanuel Vadot compatible = "simple-bus"; 109*1537cf73SEmmanuel Vadot ranges = <0x0 0x0 0x0 0x17000000>; 110*1537cf73SEmmanuel Vadot #address-cells = <1>; 111*1537cf73SEmmanuel Vadot #size-cells = <1>; 112*1537cf73SEmmanuel Vadot 113*1537cf73SEmmanuel Vadot cmu_imem: clock-controller@10010000 { 114*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-cmu-imem"; 115*1537cf73SEmmanuel Vadot reg = <0x10010000 0x4000>; 116*1537cf73SEmmanuel Vadot #clock-cells = <1>; 117*1537cf73SEmmanuel Vadot clocks = <&fin_pll>, 118*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_IMEM_ACLK>, 119*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_IMEM_JPEG>; 120*1537cf73SEmmanuel Vadot clock-names = "fin_pll", "aclk", "jpeg"; 121*1537cf73SEmmanuel Vadot }; 122*1537cf73SEmmanuel Vadot 123*1537cf73SEmmanuel Vadot timer@10040000 { 124*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-mct", "samsung,exynos4210-mct"; 125*1537cf73SEmmanuel Vadot reg = <0x10040000 0x1000>; 126*1537cf73SEmmanuel Vadot clocks = <&fin_pll>, <&cmu_imem CLK_GOUT_IMEM_MCT_PCLK>; 127*1537cf73SEmmanuel Vadot clock-names = "fin_pll", "mct"; 128*1537cf73SEmmanuel Vadot interrupts = <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>, 129*1537cf73SEmmanuel Vadot <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>, 130*1537cf73SEmmanuel Vadot <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>, 131*1537cf73SEmmanuel Vadot <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>, 132*1537cf73SEmmanuel Vadot <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>, 133*1537cf73SEmmanuel Vadot <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>, 134*1537cf73SEmmanuel Vadot <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>, 135*1537cf73SEmmanuel Vadot <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>, 136*1537cf73SEmmanuel Vadot <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>, 137*1537cf73SEmmanuel Vadot <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>, 138*1537cf73SEmmanuel Vadot <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>, 139*1537cf73SEmmanuel Vadot <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>; 140*1537cf73SEmmanuel Vadot }; 141*1537cf73SEmmanuel Vadot 142*1537cf73SEmmanuel Vadot gic: interrupt-controller@10201000 { 143*1537cf73SEmmanuel Vadot compatible = "arm,gic-400"; 144*1537cf73SEmmanuel Vadot reg = <0x10201000 0x1000>, 145*1537cf73SEmmanuel Vadot <0x10202000 0x2000>, 146*1537cf73SEmmanuel Vadot <0x10204000 0x2000>, 147*1537cf73SEmmanuel Vadot <0x10206000 0x2000>; 148*1537cf73SEmmanuel Vadot #interrupt-cells = <3>; 149*1537cf73SEmmanuel Vadot interrupt-controller; 150*1537cf73SEmmanuel Vadot interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 151*1537cf73SEmmanuel Vadot }; 152*1537cf73SEmmanuel Vadot 153*1537cf73SEmmanuel Vadot cmu_cpucl: clock-controller@11410000 { 154*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-cmu-cpucl"; 155*1537cf73SEmmanuel Vadot reg = <0x11410000 0x4000>; 156*1537cf73SEmmanuel Vadot #clock-cells = <1>; 157*1537cf73SEmmanuel Vadot clocks = <&fin_pll>, 158*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_CPUCL_SWITCH>; 159*1537cf73SEmmanuel Vadot clock-names = "fin_pll", "switch"; 160*1537cf73SEmmanuel Vadot }; 161*1537cf73SEmmanuel Vadot 162*1537cf73SEmmanuel Vadot cmu_cmu: clock-controller@12400000 { 163*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-cmu-cmu"; 164*1537cf73SEmmanuel Vadot reg = <0x12400000 0x4000>; 165*1537cf73SEmmanuel Vadot #clock-cells = <1>; 166*1537cf73SEmmanuel Vadot clocks = <&fin_pll>; 167*1537cf73SEmmanuel Vadot clock-names = "fin_pll"; 168*1537cf73SEmmanuel Vadot }; 169*1537cf73SEmmanuel Vadot 170*1537cf73SEmmanuel Vadot cmu_core: clock-controller@12410000 { 171*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-cmu-core"; 172*1537cf73SEmmanuel Vadot reg = <0x12410000 0x4000>; 173*1537cf73SEmmanuel Vadot #clock-cells = <1>; 174*1537cf73SEmmanuel Vadot clocks = <&fin_pll>, 175*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_CORE_MAIN>, 176*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_CORE_DLP>; 177*1537cf73SEmmanuel Vadot clock-names = "fin_pll", "main", "dlp"; 178*1537cf73SEmmanuel Vadot }; 179*1537cf73SEmmanuel Vadot 180*1537cf73SEmmanuel Vadot cmu_bus: clock-controller@12c10000 { 181*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-cmu-bus"; 182*1537cf73SEmmanuel Vadot reg = <0x12c10000 0x4000>; 183*1537cf73SEmmanuel Vadot #clock-cells = <1>; 184*1537cf73SEmmanuel Vadot clocks = <&fin_pll>, 185*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_BUS>, 186*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_BUS_DLP>; 187*1537cf73SEmmanuel Vadot clock-names = "fin_pll", "bus", "dlp"; 188*1537cf73SEmmanuel Vadot }; 189*1537cf73SEmmanuel Vadot 190*1537cf73SEmmanuel Vadot cmu_peri: clock-controller@16410000 { 191*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-cmu-peri"; 192*1537cf73SEmmanuel Vadot reg = <0x16410000 0x4000>; 193*1537cf73SEmmanuel Vadot #clock-cells = <1>; 194*1537cf73SEmmanuel Vadot clocks = <&fin_pll>, 195*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_PERI_IP>, 196*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_PERI_AUDIO>, 197*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_PERI_DISP>; 198*1537cf73SEmmanuel Vadot clock-names = "fin_pll", "ip", "audio", "disp"; 199*1537cf73SEmmanuel Vadot }; 200*1537cf73SEmmanuel Vadot 201*1537cf73SEmmanuel Vadot pinctrl_peric: pinctrl@165f0000 { 202*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-pinctrl"; 203*1537cf73SEmmanuel Vadot reg = <0x165f0000 0x1000>; 204*1537cf73SEmmanuel Vadot interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 205*1537cf73SEmmanuel Vadot }; 206*1537cf73SEmmanuel Vadot 207*1537cf73SEmmanuel Vadot cmu_fsys: clock-controller@16c10000 { 208*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-cmu-fsys"; 209*1537cf73SEmmanuel Vadot reg = <0x16c10000 0x4000>; 210*1537cf73SEmmanuel Vadot #clock-cells = <1>; 211*1537cf73SEmmanuel Vadot clocks = <&fin_pll>, 212*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_FSYS_SCAN0>, 213*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_FSYS_SCAN1>, 214*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_FSYS_BUS>, 215*1537cf73SEmmanuel Vadot <&cmu_cmu CLK_DOUT_CMU_FSYS_IP>; 216*1537cf73SEmmanuel Vadot clock-names = "fin_pll", "scan0", "scan1", "bus", "ip"; 217*1537cf73SEmmanuel Vadot }; 218*1537cf73SEmmanuel Vadot 219*1537cf73SEmmanuel Vadot pinctrl_fsys: pinctrl@16c30000 { 220*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-pinctrl"; 221*1537cf73SEmmanuel Vadot reg = <0x16c30000 0x1000>; 222*1537cf73SEmmanuel Vadot interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 223*1537cf73SEmmanuel Vadot }; 224*1537cf73SEmmanuel Vadot 225*1537cf73SEmmanuel Vadot serial_0: serial@16cc0000 { 226*1537cf73SEmmanuel Vadot compatible = "axis,artpec8-uart"; 227*1537cf73SEmmanuel Vadot reg = <0x16cc0000 0x100>; 228*1537cf73SEmmanuel Vadot clocks = <&cmu_fsys CLK_GOUT_FSYS_UART0_PCLK>, 229*1537cf73SEmmanuel Vadot <&cmu_fsys CLK_GOUT_FSYS_UART0_SCLK_UART>; 230*1537cf73SEmmanuel Vadot clock-names = "uart", "clk_uart_baud0"; 231*1537cf73SEmmanuel Vadot interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 232*1537cf73SEmmanuel Vadot pinctrl-names = "default"; 233*1537cf73SEmmanuel Vadot pinctrl-0 = <&serial0_bus>; 234*1537cf73SEmmanuel Vadot }; 235*1537cf73SEmmanuel Vadot }; 236*1537cf73SEmmanuel Vadot 237*1537cf73SEmmanuel Vadot timer { 238*1537cf73SEmmanuel Vadot compatible = "arm,armv8-timer"; 239*1537cf73SEmmanuel Vadot interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 240*1537cf73SEmmanuel Vadot <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 241*1537cf73SEmmanuel Vadot <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 242*1537cf73SEmmanuel Vadot <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 243*1537cf73SEmmanuel Vadot }; 244*1537cf73SEmmanuel Vadot}; 245