blob: 1d7f1618a8524449e28608418471e96959d89ac6 [file] [log] [blame]
/*
* SAMSUNG EXYNOS8895 SoC device tree source
*
* Copyright (c) 2014 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* SAMSUNG EXYNOS8895 SoC device nodes are listed in this file.
* EXYNOS8895 based board files can include this file and provide
* values for board specfic bindings.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/memreserve/ 0xE0000000 0x3200000;
#include <dt-bindings/clock/exynos8895.h>
#include <dt-bindings/ufs/ufs.h>
#include <dt-bindings/soc/samsung/exynos8895.h>
#include <dt-bindings/sysmmu/sysmmu.h>
#include <dt-bindings/thermal/thermal.h>
#include "exynos8895-pinctrl.dtsi"
#include "exynos8895-pm-domains.dtsi"
#include "exynos8895-rmem.dtsi"
#include "exynos8895-ess.dtsi"
/ {
compatible = "samsung,armv8", "samsung,exynos8895";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <1>;
arm-pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <0 24 4>,
<0 25 4>,
<0 26 4>,
<0 27 4>,
<0 40 4>,
<0 41 4>,
<0 42 4>,
<0 43 4>;
};
aliases {
pinctrl0 = &pinctrl_0;
pinctrl1 = &pinctrl_1;
pinctrl2 = &pinctrl_2;
pinctrl3 = &pinctrl_3;
pinctrl4 = &pinctrl_4;
pinctrl5 = &pinctrl_5;
pinctrl6 = &pinctrl_6;
pinctrl7 = &pinctrl_7;
uart0 = &serial_0;
uart1 = &serial_1;
uart2 = &serial_2;
uart3 = &serial_3;
uart4 = &serial_4;
uart5 = &serial_5;
uart6 = &serial_6;
uart7 = &serial_7;
uart8 = &serial_8;
uart9 = &serial_9;
uart10 = &serial_10;
uart11 = &serial_11;
uart12 = &serial_12;
uart13 = &serial_13;
uart14 = &serial_14;
uart15 = &serial_15;
hsi2c0 = &hsi2c_0;
hsi2c1 = &hsi2c_1;
hsi2c2 = &hsi2c_2;
hsi2c3 = &hsi2c_3;
hsi2c4 = &hsi2c_4;
hsi2c5 = &hsi2c_5;
hsi2c6 = &hsi2c_6;
hsi2c7 = &hsi2c_7;
hsi2c8 = &hsi2c_8;
hsi2c9 = &hsi2c_9;
hsi2c10 = &hsi2c_10;
hsi2c11 = &hsi2c_11;
hsi2c12 = &hsi2c_12;
hsi2c13 = &hsi2c_13;
hsi2c14 = &hsi2c_14;
hsi2c15 = &hsi2c_15;
hsi2c16 = &hsi2c_16;
hsi2c17 = &hsi2c_17;
hsi2c18 = &hsi2c_18;
hsi2c19 = &hsi2c_19;
hsi2c20 = &hsi2c_20;
hsi2c21 = &hsi2c_21;
hsi2c22 = &hsi2c_22;
hsi2c23 = &hsi2c_23;
hsi2c24 = &hsi2c_24;
hsi2c25 = &hsi2c_25;
hsi2c26 = &hsi2c_26;
hsi2c27 = &hsi2c_27;
hsi2c28 = &hsi2c_28;
hsi2c29 = &hsi2c_29;
hsi2c30 = &hsi2c_30;
hsi2c31 = &hsi2c_31;
hsi2c32 = &hsi2c_32;
spi0 = &spi_0;
spi1 = &spi_1;
spi2 = &spi_2;
spi3 = &spi_3;
spi4 = &spi_4;
spi5 = &spi_5;
spi6 = &spi_6;
spi7 = &spi_7;
spi8 = &spi_8;
spi9 = &spi_9;
spi10 = &spi_10;
spi11 = &spi_11;
spi12 = &spi_12;
spi13 = &spi_13;
spi14 = &spi_14;
spi15 = &spi_15;
dpp0 = &idma_g0;
dpp1 = &idma_g1;
dpp2 = &idma_vg0;
dpp3 = &idma_vg1;
dpp4 = &idma_vgf0;
dpp5 = &idma_vgf1;
dpp6 = &odma_wb;
dsim0 = &dsim_0;
displayport = &displayport;
decon0 = &decon_f;
decon2 = &decon_t;
mshc2 = &dwmmc_2;
scaler0 = &scaler_0;
mfc0 = &mfc_0;
};
chipid@10000000 {
compatible = "samsung,exynos8895-chipid";
reg = <0x0 0x10000000 0x100>;
};
reboot {
compatible = "exynos,reboot";
pmu_base = <0x16480000>;
};
cpus {
#address-cells = <2>;
#size-cells = <0>;
hmp {
up_threshold = <425>;
down_threshold = <160>;
semiboost_up_threshold = <254>;
semiboost_down_threshold = <163>;
bootboost-duration-us = <40000000>;
down_compensation_timeout = <30>; /* ms */
down_compensation_high_freq = <1500000>; /* min qos lock for little cpu */
down_compensation_mid_freq = <1000000>; /* min qos lock for little cpu */
down_compensation_low_freq = <800000>; /* min qos lock for little cpu */
hmp_up_compst_ratio = <512>;
hmp_down_compst_ratio = <2048>;
little-id = <1>;
};
auto_cpu_mapping {
enabled = <1>;
};
cpu0: cpu@100 {
device_type = "cpu";
compatible = "arm,cortex-a53", "arm,armv8";
reg = <0x0 0x100>;
logical-id = <0>;
enable-method = "psci";
cpu-idle-states = <&BOOTCL_CPU_SLEEP>;
#cooling-cells = <2>; /* min followed by max */
};
cpu@101 {
device_type = "cpu";
compatible = "arm,cortex-a53", "arm,armv8";
reg = <0x0 0x101>;
logical-id = <1>;
enable-method = "psci";
cpu-idle-states = <&BOOTCL_CPU_SLEEP>;
};
cpu@102 {
device_type = "cpu";
compatible = "arm,cortex-a53", "arm,armv8";
reg = <0x0 0x102>;
logical-id = <2>;
enable-method = "psci";
cpu-idle-states = <&BOOTCL_CPU_SLEEP>;
};
cpu@103 {
device_type = "cpu";
compatible = "arm,cortex-a53", "arm,armv8";
reg = <0x0 0x103>;
logical-id = <3>;
enable-method = "psci";
cpu-idle-states = <&BOOTCL_CPU_SLEEP>;
};
cpu4: cpu@0 {
device_type = "cpu";
compatible = "arm,mongoose", "arm,armv8";
reg = <0x0 0x0>;
logical-id = <4>;
enable-method = "psci";
cpu-idle-states = <&NONBOOTCL_CPU_SLEEP>;
#cooling-cells = <2>; /* min followed by max */
};
cpu@1 {
device_type = "cpu";
compatible = "arm,mongoose", "arm,armv8";
reg = <0x0 0x1>;
logical-id = <5>;
enable-method = "psci";
cpu-idle-states = <&NONBOOTCL_CPU_SLEEP>;
};
cpu@2 {
device_type = "cpu";
compatible = "arm,mongoose", "arm,armv8";
reg = <0x0 0x2>;
logical-id = <6>;
enable-method = "psci";
cpu-idle-states = <&NONBOOTCL_CPU_SLEEP>;
};
cpu@3 {
device_type = "cpu";
compatible = "arm,mongoose", "arm,armv8";
reg = <0x0 0x3>;
logical-id = <7>;
enable-method = "psci";
cpu-idle-states = <&NONBOOTCL_CPU_SLEEP>;
};
idle-states {
entry-method = "arm,psci";
BOOTCL_CPU_SLEEP: bootcl-cpu-sleep {
idle-state-name = "c2";
compatible = "exynos,idle-state";
arm,psci-suspend-param = <0x0010000>;
entry-latency-us = <35>;
exit-latency-us = <90>;
min-residency-us = <750>;
status = "okay";
};
NONBOOTCL_CPU_SLEEP: nobootcl-cpu-sleep {
idle-state-name = "c2";
compatible = "exynos,idle-state";
arm,psci-suspend-param = <0x0010000>;
entry-latency-us = <30>;
exit-latency-us = <75>;
min-residency-us = <2000>;
status = "okay";
};
};
};
psci {
compatible = "arm,psci";
method = "smc";
cpu_suspend = <0xC4000001>;
cpu_off = <0x84000002>;
cpu_on = <0xC4000003>;
};
cpu_hotplug {
compatible = "exynos,cpu_hotplug";
boot_lock_time = <40>;
};
exynos-pmu {
compatible = "samsung,exynos-pmu";
samsung,syscon-phandle = <&pmu_system_controller>;
};
pmu_system_controller: system-controller@16480000 {
compatible = "samsung,exynos8895-pmu", "syscon";
reg = <0x0 0x16480000 0x10000>;
};
exynos-pm {
compatible = "samsung,exynos-pm";
reg = <0x0 0x164B0000 0x1000>,
<0x0 0x10201200 0x100>;
reg-names = "gpio_alive_base",
"gicd_ispendrn_base";
num-eint = <32>;
num-gic = <16>;
suspend_mode_idx = <8>; /* SYS_SLEEP */
suspend_psci_idx = <133>; /* PSCI_SYSTEM_SLEEP */
cp_call_mode_idx = <10>; /* SYS_SLEEP_AUD_ON */
cp_call_psci_idx = <133>; /* PSCI_SYSTEM_SLEEP */
extra_wakeup_stat = <0x640>;
};
exynos-powermode {
cpd_residency = <3000>;
sicd_residency = <3000>;
cpd_enabled = <1>;
sicd_enabled = <1>;
idle-ip = "104c0000.pwm", /* [ 0] pwm */
"15b70000.adc", /* [ 1] adc */
"15bc0000.hsi2c", /* [ 2] hsi2c_0 */
"10990000.hsi2c", /* [ 3] hsi2c_1 */
"109a0000.hsi2c", /* [ 4] hsi2c_2 */
"109b0000.hsi2c", /* [ 5] hsi2c_3 */
"109c0000.hsi2c", /* [ 6] hsi2c_4 */
"10440000.hsi2c", /* [ 7] hsi2c_5 */
"10450000.hsi2c", /* [ 8] hsi2c_6 */
"10460000.hsi2c", /* [ 9] hsi2c_7 */
"10470000.hsi2c", /* [10] hsi2c_8 */
"10480000.hsi2c", /* [11] hsi2c_9 */
"10490000.hsi2c", /* [12] hsi2c_10 */
"104a0000.hsi2c", /* [13] hsi2c_11 */
"104b0000.hsi2c", /* [14] hsi2c_12 */
"10840000.hsi2c", /* [15] hsi2c_13 */
"10850000.hsi2c", /* [16] hsi2c_14 */
"10860000.hsi2c", /* [17] hsi2c_15 */
"10870000.hsi2c", /* [18] hsi2c_16 */
"10880000.hsi2c", /* [19] hsi2c_17 */
"10890000.hsi2c", /* [20] hsi2c_18 */
"108a0000.hsi2c", /* [21] hsi2c_19 */
"108b0000.hsi2c", /* [22] hsi2c_20 */
"108c0000.hsi2c", /* [23] hsi2c_21 */
"108d0000.hsi2c", /* [24] hsi2c_22 */
"108e0000.hsi2c", /* [25] hsi2c_23 */
"108f0000.hsi2c", /* [26] hsi2c_24 */
"10900000.hsi2c", /* [27] hsi2c_25 */
"10910000.hsi2c", /* [28] hsi2c_26 */
"10920000.hsi2c", /* [29] hsi2c_27 */
"10930000.hsi2c", /* [30] hsi2c_28 */
"10940000.hsi2c", /* [31] hsi2c_29 */
"10950000.hsi2c", /* [32] hsi2c_30 */
"10960000.hsi2c", /* [33] hsi2c_31 */
"10970000.hsi2c", /* [34] hsi2c_32 */
"109e0000.spi", /* [35] spi_0 */
"109e0000.spi", /* [36] spi_1 */
"10440000.spi", /* [37] spi_2 */
"10460000.spi", /* [38] spi_3 */
"10480000.spi", /* [39] spi_4 */
"104a0000.spi", /* [40] spi_5 */
"10840000.spi", /* [41] spi_6 */
"10860000.spi", /* [42] spi_7 */
"10880000.spi", /* [43] spi_8 */
"108a0000.spi", /* [44] spi_9 */
"108c0000.spi", /* [45] spi_10 */
"108e0000.spi", /* [46] spi_11 */
"10900000.spi", /* [47] spi_12 */
"10920000.spi", /* [48] spi_13 */
"10940000.spi", /* [49] spi_14 */
"10960000.spi", /* [50] spi_15 */
"11120000.ufs", /* [51] ufs */
"11500000.dwmmc2", /* [52] dwmmc2 */
"10c00000.usb", /* [53] usb */
"14040000.mailbox", /* [54] mailbox */
"116A0000.pcie0", /* [55] pcie0 */
"116B0000.pcie1", /* [56] pcie1 */
"pd-abox", /* [57] pd-abox */
"pd-cam", /* [58] pd-cam */
"pd-dbg", /* [59] pd-dbg */
"pd-dcam", /* [60] pd-dcam */
"pd-dpu0", /* [61] pd-dpu0 */
"pd-dpu1", /* [62] pd-dpu1 */
"pd-dsp", /* [63] pd-dsp */
"pd-g2d", /* [64] pd-g2d */
"pd-g3d", /* [65] pd-g3d */
"pd-isphq", /* [66] pd-isphq */
"pd-isplp", /* [67] pd-isplp */
"pd-iva", /* [68] pd-iva */
"pd-mfc", /* [69] pd-mfc */
"pd-srdz", /* [70] pd-srdz */
"pd-vpu", /* [71] pd-vpu */
"pd-vts"; /* [72] pd-vts */
fix-idle-ip = "acpm_dvfs";
fix-idle-ip-index = <96>;
idle_ip_mask {
sicd: SYS_SICD {
mode-index = <0>;
ref-idle-ip = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, <9>,
<10>, <11>, <12>, <13>, <14>, <15>, <16>, <17>, <18>, <19>,
<20>, <21>, <22>, <23>, <24>, <25>, <26>, <27>, <28>, <29>,
<30>, <31>, <32>, <33>, <34>, <35>, <36>, <37>, <38>, <39>,
<40>, <41>, <42>, <43>, <44>, <45>, <46>, <47>, <48>, <49>,
<50>, <51>, <52>, <53>, <54>, <55>, <56>, <58>,
<60>, <61>, <62>, <63>, <64>, <65>, <66>, <67>, <68>, <69>,
<70>, <71>, <96>;
};
};
wakeup-masks {
/*
* wakeup_mask configuration
* SICD SICD_CPD AFTR STOP
* LPD LPA ALPA DSTOP
* SLEEP SLEEP_VTS_ON SLEEP_AUD_ON FAPO
*/
wakeup-mask {
mask = <0x400001C0>, <0x0>, <0x0>, <0x0>,
<0x0>, <0x0>, <0x0>, <0x0>,
<0x500F7E7E>, <0x500F7E7E>, <0x500F7E7E>, <0x0>;
reg-offset = <0x610>;
};
wakeup-mask2 {
mask = <0x0>, <0x0>, <0x0>, <0x0>,
<0x0>, <0x0>, <0x0>, <0x0>,
<0xFFFF00FF>, <0xFFFF00FF>, <0xFFFF00FF>, <0x0>;
reg-offset = <0x614>;
};
wakeup-mask3 {
mask = <0x0>, <0x0>, <0x0>, <0x0>,
<0x0>, <0x0>, <0x0>, <0x0>,
<0xFFFF00FF>, <0xFFFF00FF>, <0xFFFF00FF>, <0x0>;
reg-offset = <0x618>;
};
wakeup-mask4 {
mask = <0x0>, <0x0>, <0x0>, <0x0>,
<0x0>, <0x0>, <0x0>, <0x0>,
<0x0>, <0x0>, <0x0>, <0x0>;
reg-offset = <0x644>;
};
};
};
schedtune {
domain@0 {
device_type = "schedtune-freqvar";
shared-cpus = "0-3";
/* this table works like target_load of interactive parameter */
table = < 100 598000 60 715000 30 832000 20 949000 10 1053000 0 >;
};
domain@1 {
device_type = "schedtune-freqvar";
shared-cpus = "4-7";
/* this table works like target_load of interactive parameter */
table = < 20 858000 15 962000 5 1261000 0 >;
};
};
cpufreq {
domain@0 {
device_type = "cpufreq-domain";
sibling-cpus = "0-3";
cal-id = <ACPM_DVFS_CPUCL1>;
dm-type = <DM_CPU_CL0>;
min-freq = <455000>;
/* PM QoS Class ID*/
pm_qos-min-class = <3>;
pm_qos-max-class = <4>;
user-default-qos = <715000>;
dm-constraints {
mif-perf {
const-type = <CONSTRAINT_MIN>;
dm-type = <DM_MIF>;
/* cpu mif */
table = < 2002000 1014000
1898000 1014000
1794000 1014000
1690000 1014000
1456000 1014000
1248000 1014000
1053000 845000
949000 845000
832000 676000
715000 676000
598000 421000
455000 0
>;
};
mif-skew {
guidance;
const-type = <CONSTRAINT_MIN>;
dm-type = <DM_MIF>;
ect-name = "dvfs_cpucl1";
};
};
};
domain@1 {
device_type = "cpufreq-domain";
sibling-cpus = "4-7";
cal-id = <ACPM_DVFS_CPUCL0>;
dm-type = <DM_CPU_CL1>;
min-freq = <741000>;
boost_supported;
/* PM QoS Class ID*/
pm_qos-min-class = <5>;
pm_qos-max-class = <6>;
dm-constraints {
mif-perf {
const-type = <CONSTRAINT_MIN>;
dm-type = <DM_MIF>;
/* cpu mif */
table = < 2808000 1794000
2704000 1794000
2652000 1794000
2574000 1794000
2496000 1794000
2314000 1540000
2158000 1540000
2002000 1540000
1937000 1352000
1807000 1352000
1703000 1014000
1469000 845000
1261000 676000
1170000 546000
1066000 546000
962000 421000
858000 421000
741000 421000 >;
};
mif-skew {
guidance;
const-type = <CONSTRAINT_MIN>;
dm-type = <DM_MIF>;
ect-name = "dvfs_cpucl0";
};
};
};
};
gic:interrupt-controller@10200000 {
compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
reg = <0x0 0x10201000 0x1000>,
<0x0 0x10202000 0x1000>,
<0x0 0x10204000 0x2000>,
<0x0 0x10206000 0x2000>;
interrupts = <1 9 0xf04>;
};
timer {
compatible = "arm,armv8-timer";
interrupts = <1 13 0xff01>,
<1 14 0xff01>,
<1 11 0xff01>,
<1 10 0xff01>;
clock-frequency = <26000000>;
use-clocksource-only;
use-physical-timer;
};
clock: clock-controller@0x15a80000 {
compatible = "samsung,exynos8895-clock";
reg = <0x0 0x15a80000 0x8000>;
#clock-cells = <1>;
acpm-ipc-channel = <0>;
};
sysreg_fsys0_controller: sysreg-controller@11020000 {
compatible = "samsung,exynos8895-sysreg", "syscon";
reg = <0x0 0x11020000 0x1200>;
};
sysreg_fsys1_controller: sysreg-controller@11420000 {
compatible = "samsung,exynos8895-sysreg", "syscon";
reg = <0x0 0x11420000 0x1200>;
};
mct@10040000 {
compatible = "samsung,exynos4210-mct";
reg = <0x0 0x10040000 0x800>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&mct_map>;
interrupts = <0>, <1>, <2>, <3>,
<4>, <5>, <6>, <7>,
<8>, <9>, <10>, <11>;
clocks = <&clock OSCCLK>, <&clock GATE_MCT>;
clock-names = "fin_pll", "mct";
use-clockevent-only;
mct_map: mct-map {
#interrupt-cells = <1>;
#address-cells = <0>;
#size-cells = <0>;
interrupt-map = <0 &gic 0 455 0>,
<1 &gic 0 456 0>,
<2 &gic 0 457 0>,
<3 &gic 0 458 0>,
<4 &gic 0 459 0>,
<5 &gic 0 460 0>,
<6 &gic 0 461 0>,
<7 &gic 0 462 0>,
<8 &gic 0 463 0>,
<9 &gic 0 464 0>,
<10 &gic 0 465 0>,
<11 &gic 0 466 0>;
};
};
/* DMA */
amba {
#address-cells = <2>;
#size-cells = <1>;
compatible = "arm,amba-bus";
interrupt-parent = <&gic>;
ranges;
pdma0: pdma0@15A40000 {
compatible = "arm,pl330", "arm,primecell";
reg = <0x0 0x15A40000 0x1000>;
interrupts = <0 107 0>;
clocks = <&clock GATE_PDMA0>;
clock-names = "apb_pclk";
#dma-cells = <2>;
#dma-channels = <8>;
#dma-requests = <32>;
#dma_mcode_addr = <0x13F2C000>;
dma-arwrapper = <0x15A44400>,
<0x15A44420>,
<0x15A44440>,
<0x15A44460>,
<0x15A44480>,
<0x15A444A0>,
<0x15A444C0>,
<0x15A444E0>;
dma-awwrapper = <0x15A44404>,
<0x15A44424>,
<0x15A44444>,
<0x15A44464>,
<0x15A44484>,
<0x15A444A4>,
<0x15A444C4>,
<0x15A444E4>;
dma-instwrapper = <0x15A44500>;
dma-selchan = <0x15A22200>;
dma-mask-bit = <36>;
coherent-mask-bit = <36>;
};
};
ITMON@0 {
compatible = "samsung,exynos-itmon";
interrupts = <0 72 0>, /* DATA_BUS_1 */
<0 311 0>, /* DATA_CORE */
<0 92 0>, /* DATA_BUS_C */
<0 315 0>, /* PERI_CORE_0 */
<0 316 0>, /* PERI_CORE_1 */
<0 93 0>, /* PERI_BUS_C */
<0 77 0>; /* PERI_BUS_1 */
};
/* ALIVE */
pinctrl_0: pinctrl@164B0000 {
compatible = "samsung,exynos8895-pinctrl";
reg = <0x0 0x164B0000 0x1000>;
interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
<0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
<0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
<0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
wakeup-interrupt-controller {
compatible = "samsung,exynos7-wakeup-eint";
interrupt-parent = <&gic>;
interrupts = <0 16 0>;
};
};
/* A-BOX */
pinctrl_1: pinctrl@13E60000{
compatible = "samsung,exynos8895-pinctrl";
reg = <0x0 0x13E60000 0x1000>;
};
/* VTS */
pinctrl_2: pinctrl@14080000 {
compatible = "samsung,exynos8895-pinctrl";
reg = <0x0 0x14080000 0x1000>;
};
/* FSYS0 */
pinctrl_3: pinctrl@11050000 {
compatible = "samsung,exynos8895-pinctrl";
reg = <0x0 0x11050000 0x1000>;
interrupts = <0 335 0>;
};
/* FSYS1 */
pinctrl_4: pinctrl@11430000 {
compatible = "samsung,exynos8895-pinctrl";
reg = <0x0 0x11430000 0x1000>;
interrupts = <0 342 0>;
};
/* BUSC */
pinctrl_5: pinctrl@15A30000 {
compatible = "samsung,exynos8895-pinctrl";
reg = <0x0 0x15A30000 0x1000>;
interrupts = <0 103 0>;
};
/* PERIC0 */
pinctrl_6: pinctrl@104D0000 {
compatible = "samsung,exynos8895-pinctrl";
reg = <0x0 0x104D0000 0x1000>;
interrupts = <0 386 0>;
pinctrl-names = "default";
};
/* PERIC1 */
pinctrl_7: pinctrl@10980000 {
compatible = "samsung,exynos8895-pinctrl";
reg = <0x0 0x10980000 0x1000>;
interrupts = <0 430 0>;
};
mali: mali@13900000 {
compatible = "arm,mali";
reg = <0x0 0x13900000 0x5000>;
interrupts = <0 60 0>, <0 61 0>, <0 59 0>;
interrupt-names = "JOB", "MMU", "GPU";
g3d_cmu_cal_id = <ACPM_DVFS_G3D>;
samsung,power-domain = <&pd_g3d>;
#cooling-cells = <2>; /* min followed by max */
};
fmp: fmp {
compatible = "samsung,exynos-fmp";
exynos,host-type = "ufs";
exynos-host = <&ufs>;
exynos,block-type = "sda";
exynos,fips-block_offset = <5>;
};
smu: smu {
compatible = "samsung,exynos-smu";
};
ufs@0x11120000 {
/* ----------------------- */
/* 1. SYSTEM CONFIGURATION */
/* ----------------------- */
compatible ="samsung,exynos-ufs";
#address-cells = <2>;
#size-cells = <1>;
ranges;
reg =
<0x0 0x11120000 0x200>, /* 0: HCI standard */
<0x0 0x11121100 0x200>, /* 1: Vendor specificed */
<0x0 0x11110000 0x8000>, /* 2: UNIPRO */
<0x0 0x11130000 0x100>; /* 3: UFS protector */
interrupts = <0 334 0>;
pinctrl-names = "default";
pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
clocks =
/* aclk clock */
<&clock GATE_UFS_EMBD>,
/* unipro clocks */
<&clock UFS_EMBD>;
clock-names =
/* aclk clocks */
"GATE_UFS_EMBD",
/* unipro clocks */
"UFS_EMBD";
/* PM QoS for INT power domain */
ufs-pm-qos-int = <400000>;
/* DMA coherent callback, should be coupled with 'ufs-sys' */
dma-coherent;
/* Alive block sfr for TCXO control */
samsung,pmu-phandle = <&pmu_system_controller>;
/* ----------------------- */
/* 2. UFS COMMON */
/* ----------------------- */
freq-table-hz = <0 0>, <0 0>;
pclk-freq-avail-range = <70000000 166000000>;
ufs,pmd-local-l2-timer = <8000 28000 20000>;
ufs,pmd-remote-l2-timer = <12000 32000 16000>;
vcc-supply = <&ufs_fixed_vcc>;
vcc-fixed-regulator;
/* smu */
ufs-exynos-smu = <&smu_0>;
/* ----------------------- */
/* 3. UFS EXYNOS */
/* ----------------------- */
hw-rev = <UFS_VER_0004>;
/* power mode change */
ufs,pmd-attr-mode = "FAST";
ufs,pmd-attr-lane = /bits/ 8 <2>;
ufs,pmd-attr-gear = /bits/ 8 <3>;
ufs,pmd-attr-hs-series = "HS_rate_b";
/* hiberantion */
ufs-rx-adv-fine-gran-sup_en = <0>;
ufs-rx-min-activate-time-cap = <3>;
ufs-rx-hibern8-time-cap = <2>;
ufs-tx-hibern8-time-cap = <2>;
/* misc table */
phy-init =
<0x9514 0x00 PMD_ALL UNIPRO_DBG_PRD>, //Unipro Clock Period
<0x200 0x40 PMD_ALL PHY_PCS_COMN>, //OV_TM On
<0x12 0x00 PMD_ALL PHY_PCS_RX_PRD>, //PCS RX Clock Period
<0xAA 0x00 PMD_ALL PHY_PCS_TX_PRD>, //PCS TX Clock Period
<0x5C 0x38 PMD_ALL PHY_PCS_RX>,
<0x0F 0x0 PMD_ALL PHY_PCS_RX>,
<0x65 0x01 PMD_ALL PHY_PCS_RX>, //PCS RX INT_H8_COUNT_CAP_ENABLE[0] = 1b'1(THIBERN8 CAPABILITY(200us))
<0x200 0x0 PMD_ALL PHY_PCS_COMN>, //OV_TM Off
<0x9564 0x2e820183 PMD_ALL UNIPRO_DBG_MIB>, //DBG_PA_OPTION_SUITE
<0x155E 0x0 PMD_ALL UNIPRO_STD_MIB>, //LCC disable
<0x3000 0x0 PMD_ALL UNIPRO_STD_MIB>, //N_DeviceID
<0x3001 0x1 PMD_ALL UNIPRO_STD_MIB>, //N_DeviceID_valid
<0x4021 0x1 PMD_ALL UNIPRO_STD_MIB>, //T_PeerDeviceID
<0x4020 0x1 PMD_ALL UNIPRO_STD_MIB>, //T_ConnectionState
<0x8C 0x80 PMD_ALL PHY_PMA_COMN>,
<0x74 0x10 PMD_ALL PHY_PMA_COMN>, //CMN_1D(0x74), PWM clock generation selection: CMN_REG1D(0x10 = Refclk, 0x20 = int OSC)
<0x110 0xB5 PMD_ALL PHY_PMA_TRSV>, //TRSVx_14(0x110/0x250), TRSVx_REG14(RXAFE_DIFN_SQ_PULSE_REJ_EN = 1b'0)
<0x134 0x43 PMD_ALL PHY_PMA_TRSV>, //TRSVx_1D(0x134/0x274),
<0x16C 0x20 PMD_ALL PHY_PMA_TRSV>, //TRSVx_2B(0x16C/0x2AC),
<0x178 0xC0 PMD_ALL PHY_PMA_TRSV>, //TRSVx_2E(0x178/0x2B8),
<0xE0 0x14 PMD_ALL PHY_PMA_TRSV>,
<0x164 0x58 PMD_ALL PHY_PMA_TRSV>,
<0x8C 0xC0 PMD_ALL PHY_PMA_COMN>,
<0x8C 0x00 PMD_ALL PHY_PMA_COMN>,
<0 0 0 0>;
post-phy-init =
<0x9529 0x1 PMD_ALL UNIPRO_DBG_MIB>, //Unipro Debug Mode On
<0x15A4 0xFA PMD_ALL UNIPRO_STD_MIB>, //PA_SaveConfigTime
<0x9529 0x0 PMD_ALL UNIPRO_DBG_MIB>, //Unipro Debug Mode Off
<0x200 0x40 PMD_ALL PHY_PCS_COMN>,
<0x35 0x05 PMD_ALL PHY_PCS_RX>,
<0x73 0x01 PMD_ALL PHY_PCS_RX>,
<0x41 0x02 PMD_ALL PHY_PCS_RX>,
<0x42 0xAC PMD_ALL PHY_PCS_RX>,
<0x200 0x0 PMD_ALL PHY_PCS_COMN>,
<0 0 0 0>;
calib-of-pwm =
<0x1569 0x0 PMD_PWM UNIPRO_STD_MIB>,
<0x1584 0x0 PMD_PWM UNIPRO_STD_MIB>,
<0x2041 8064 PMD_PWM UNIPRO_STD_MIB>,
<0x2042 28224 PMD_PWM UNIPRO_STD_MIB>,
<0x2043 20160 PMD_PWM UNIPRO_STD_MIB>,
<0x15B0 12000 PMD_PWM UNIPRO_STD_MIB>,
<0x15B1 32000 PMD_PWM UNIPRO_STD_MIB>,
<0x15B2 16000 PMD_PWM UNIPRO_STD_MIB>,
<0x7888 8064 PMD_PWM UNIPRO_DBG_APB>,
<0x788C 28224 PMD_PWM UNIPRO_DBG_APB>,
<0x7890 20160 PMD_PWM UNIPRO_DBG_APB>,
<0x78B8 12000 PMD_PWM UNIPRO_DBG_APB>,
<0x78BC 32000 PMD_PWM UNIPRO_DBG_APB>,
<0x78C0 16000 PMD_PWM UNIPRO_DBG_APB>,
/*MPHY tuning value*/
<0xC8 0x40 PMD_PWM PHY_PMA_TRSV>, //TRSVx_02(0xC8/0x208),
<0xF0 0x77 PMD_PWM PHY_PMA_TRSV>, //TRSVx_0c(0xF0/0x230), TX_SLEW_PREEMP_EN_CTRL_EN(bit3) = 1b'0
<0x120 0x80 PMD_PWM PHY_PMA_TRSV>, //TRSVx_18(0x120/0x260), TX_AMPL_CNTR_EN(bit6) = 1b'0
<0x128 0x00 PMD_PWM PHY_PMA_TRSV>, //TRSVx_1a(0x128/0x268), TX_AMPL_CTRL(bit[4:0], Amplitude) = 5b'00000(PWM)
<0x12C 0x00 PMD_PWM PHY_PMA_TRSV>, //TRSVx_1b(0x12C/0x26C), TX_PREEMP_CTRL(bit[5:4]) = 2b'00(0dB)
<0x134 0x43 PMD_PWM PHY_PMA_TRSV>, //TRSVx_1d(0x134/0x274), TX_AUX_CAP_INV_SEL(bit7) = 1b'0, TX_AUX_CAP_CTRL(bit[6:4]) = 3b'100
<0 0 0 0>;
calib-of-hs-rate-a =
<0x1569 0x1 PMD_HS UNIPRO_STD_MIB>,
<0x1584 0x1 PMD_HS UNIPRO_STD_MIB>,
<0x2041 8064 PMD_HS UNIPRO_STD_MIB>,
<0x2042 28224 PMD_HS UNIPRO_STD_MIB>,
<0x2043 20160 PMD_HS UNIPRO_STD_MIB>,
<0x15B0 12000 PMD_HS UNIPRO_STD_MIB>,
<0x15B1 32000 PMD_HS UNIPRO_STD_MIB>,
<0x15B2 16000 PMD_HS UNIPRO_STD_MIB>,
<0x7888 8064 PMD_HS UNIPRO_DBG_APB>,
<0x788C 28224 PMD_HS UNIPRO_DBG_APB>,
<0x7890 20160 PMD_HS UNIPRO_DBG_APB>,
<0x78B8 12000 PMD_HS UNIPRO_DBG_APB>,
<0x78BC 32000 PMD_HS UNIPRO_DBG_APB>,
<0x78C0 16000 PMD_HS UNIPRO_DBG_APB>,
/*MPHY tuning value*/
<0xC8 0xBC PMD_HS PHY_PMA_TRSV>, //TRSVx_02(0xC8/0x208),
<0xF0 0x7F PMD_HS PHY_PMA_TRSV>, //TRSVx_0c(0xF0/0x230), TX_SLEW_PREEMP_EN_CTRL_EN(bit3) = 1b'1
<0x120 0xC0 PMD_HS PHY_PMA_TRSV>, //TRSVx_18(0x120/0x260), TX_AMPL_CNTR_EN(bit6) = 1b'1
<0x128 0x08 PMD_HS_G1_L2 PHY_PMA_TRSV>, //TRSVx_1a(0x128/0x268), TX_AMPL_CTRL(bit[4:0], Amplitude) = 5b'01000(G1A/B)
<0x128 0x02 PMD_HS_G2_L2 PHY_PMA_TRSV>, // TX_AMPL_CTRL(bit[4:0], Amplitude) = 5b'00010(G2A/B)
<0x128 0x00 PMD_HS_G3_L2 PHY_PMA_TRSV>, // TX_AMPL_CTRL(bit[4:0], Amplitude) = 5b'00000(G3A/B)
<0x12C 0x00 (PMD_HS_G1_L2|PMD_HS_G3_L2) PHY_PMA_TRSV>, // TX_PREEMP_CTRL(bit[5:4]) = 2b'00(0dB)
<0x12C 0x00 PMD_HS_G2_L2 PHY_PMA_TRSV>, // TX_PREEMP_CTRL(bit[5:4]) = 2b'00(0dB, G2A/B))
<0x134 0xd3 PMD_HS_G1_L2 PHY_PMA_TRSV>, //TRSVx_1d(0x134/0x274), TX_AUX_CAP_INV_SEL(bit7) = 1b'1, TX_AUX_CAP_CTRL(bit[6:4]) = 3b'101
<0x134 0x73 PMD_HS_G2_L2 PHY_PMA_TRSV>, // TX_AUX_CAP_CTRL(bit[6:4]) = 3b'111
<0x134 0x63 PMD_HS_G3_L2 PHY_PMA_TRSV>, // TX_AUX_CAP_CTRL(bit[6:4]) = 3b'110
<0x108 0x5D PMD_HS PHY_PMA_TRSV>, //
<0x10C 0x80 PMD_HS PHY_PMA_TRSV>, //
<0 0 0 0>;
calib-of-hs-rate-b =
<0x1569 0x1 PMD_HS UNIPRO_STD_MIB>,
<0x1584 0x1 PMD_HS UNIPRO_STD_MIB>,
<0x2041 8064 PMD_HS UNIPRO_STD_MIB>,
<0x2042 28224 PMD_HS UNIPRO_STD_MIB>,
<0x2043 20160 PMD_HS UNIPRO_STD_MIB>,
<0x15B0 12000 PMD_HS UNIPRO_STD_MIB>,
<0x15B1 32000 PMD_HS UNIPRO_STD_MIB>,
<0x15B2 16000 PMD_HS UNIPRO_STD_MIB>,
<0x7888 8064 PMD_HS UNIPRO_DBG_APB>,
<0x788C 28224 PMD_HS UNIPRO_DBG_APB>,
<0x7890 20160 PMD_HS UNIPRO_DBG_APB>,
<0x78B8 12000 PMD_HS UNIPRO_DBG_APB>,
<0x78BC 32000 PMD_HS UNIPRO_DBG_APB>,
<0x78C0 16000 PMD_HS UNIPRO_DBG_APB>,
/*MPHY tuning value*/
<0xC8 0xBC PMD_HS PHY_PMA_TRSV>, //TRSVx_02(0xC8/0x208),
<0xF0 0x7F PMD_HS PHY_PMA_TRSV>, //TRSVx_0c(0xF0/0x230), TX_SLEW_PREEMP_EN_CTRL_EN(bit3) = 1b'1
<0x120 0xC0 PMD_HS PHY_PMA_TRSV>, //TRSVx_18(0x120/0x260), TX_AMPL_CNTR_EN(bit6) = 1b'1
<0x128 0x08 PMD_HS_G1_L2 PHY_PMA_TRSV>, //TRSVx_1a(0x128/0x268), TX_AMPL_CTRL(bit[4:0], Amplitude) = 5b'01000(G1A/B)
<0x128 0x02 PMD_HS_G2_L2 PHY_PMA_TRSV>, // TX_AMPL_CTRL(bit[4:0], Amplitude) = 5b'00010(G2A/B)
<0x128 0x00 PMD_HS_G3_L2 PHY_PMA_TRSV>, // TX_AMPL_CTRL(bit[4:0], Amplitude) = 5b'00000(G3A/B)
<0x12C 0x00 (PMD_HS_G1_L2|PMD_HS_G3_L2) PHY_PMA_TRSV>, // TX_PREEMP_CTRL(bit[5:4]) = 2b'00(0dB)
<0x12C 0x00 PMD_HS_G2_L2 PHY_PMA_TRSV>, // TX_PREEMP_CTRL(bit[5:4]) = 2b'00(0dB, G2A/B))
<0x134 0xd3 PMD_HS_G1_L2 PHY_PMA_TRSV>, //TRSVx_1d(0x134/0x274), TX_AUX_CAP_INV_SEL(bit7) = 1b'1, TX_AUX_CAP_CTRL(bit[6:4]) = 3b'101
<0x134 0x73 PMD_HS_G2_L2 PHY_PMA_TRSV>, // TX_AUX_CAP_CTRL(bit[6:4]) = 3b'111
<0x134 0x63 PMD_HS_G3_L2 PHY_PMA_TRSV>, //
<0x108 0x5D PMD_HS PHY_PMA_TRSV>, //
<0x10C 0x80 PMD_HS PHY_PMA_TRSV>, //
<0 0 0 0>;
post-calib-of-pwm =
<0 0 0 0>;
post-calib-of-hs-rate-a =
<0x1fc 0x01 PMD_HS PHY_CDR_WAIT>,
<0 0 0 0>;
post-calib-of-hs-rate-b =
<0x1fc 0x01 PMD_HS PHY_CDR_WAIT>,
<0 0 0 0>;
lpa-restore =
<0 0 0 0>;
pre-clk-off =
/* SQ off */
<0x0C4 0x99 PMD_ALL PHY_PMA_TRSV>,
<0x0E8 0x7F PMD_ALL PHY_PMA_TRSV>,
<0x004 0x02 PMD_ALL PHY_PMA_COMN>,
<0 0 0 0>;
post-clk-on =
/* SQ on */
<0x004 0x00 PMD_ALL PHY_PMA_COMN>,
<0x0C4 0xD9 PMD_ALL PHY_PMA_TRSV>,
<0x0E8 0x77 PMD_ALL PHY_PMA_TRSV>,
<0 0 0 0>;
/* ----------------------- */
/* 4. ADDITIONAL NODES */
/* ----------------------- */
/* PHY isolation */
ufs-phy {
#address-cells = <2>;
#size-cells = <1>;
ranges;
reg = <0x0 0x11124000 0x800>;
ufs-phy-sys {
reg = <0x0 0x16480724 0x4>;
};
};
/* SYSREG */
ufs-io-coherency {
#address-cells = <2>;
#size-cells = <1>;
ranges;
reg =
<0x0 0x11020700 0x4>;
mask = <(BIT_8 | BIT_9)>;
bits = <(BIT_8 | BIT_9)>;
};
ufs-tcxo-sel {
#address-cells = <2>;
#size-cells = <1>;
ranges;
reg =
<0x0 0x11021150 0x4>;
mask = <BIT_0>;
bits = <BIT_0>; // use alternative
};
};
ufs_fixed_vcc: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "ufs-vcc";
gpio = <&gpg0 0 0>;
regulator-boot-on;
enable-active-high;
};
/* UART_DBG */
serial_0: uart@10430000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10430000 0x100>;
samsung,fifo-size = <256>;
interrupts = <0 385 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart0_bus>;
clocks = <&clock GATE_UART_DBG>, <&clock UART_DBG>;
clock-names = "gate_pclk0", "gate_uart0";
status = "disabled";
};
/* UART_BT */
serial_1: uart@10830000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10830000 0x100>;
samsung,fifo-size = <256>;
interrupts = <0 389 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart1_bus>;
clocks = <&clock GATE_UART_BT>, <&clock UART_BT>;
clock-names = "gate_pclk1", "gate_uart1";
samsung,in-band-wakeup;
status = "disabled";
};
/* USI0_UART */
serial_2: uart@10440000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10440000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 366 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart2_bus_single>; /* or <&uart2_bus_dual> */
clocks = <&clock GATE_USI00>, <&clock USI00>;
clock-names = "gate_pclk2", "gate_uart2";
status = "disabled";
};
/* USI1_UART */
serial_3: uart@10460000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10460000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 370 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart3_bus_single>; /* or <&uart3_bus_dual> */
clocks = <&clock GATE_USI01>, <&clock USI01>;
clock-names = "gate_pclk3", "gate_uart3";
status = "disabled";
};
/* USI2_UART */
serial_4: uart@10480000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10480000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 374 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart4_bus_single>; /* or <&uart4_bus_dual> */
clocks = <&clock GATE_USI02>, <&clock USI02>;
clock-names = "gate_pclk4", "gate_uart4";
status = "disabled";
};
/* USI3_UART */
serial_5: uart@104A0000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x104A0000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 378 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart5_bus_single>; /* or <&uart5_bus_dual> */
clocks = <&clock GATE_USI03>, <&clock USI03>;
clock-names = "gate_pclk5", "gate_uart5";
status = "disabled";
};
/* USI4_UART */
serial_6: uart@10840000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10840000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 392 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart6_bus_single>; /* or <&uart6_bus_dual> */
clocks = <&clock GATE_USI04>, <&clock USI04>;
clock-names = "gate_pclk6", "gate_uart6";
status = "disabled";
};
/* USI5_UART */
serial_7: uart@10860000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10860000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 396 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart7_bus_single>; /* or <&uart7_bus_dual> */
clocks = <&clock GATE_USI05>, <&clock USI05>;
clock-names = "gate_pclk7", "gate_uart7";
status = "disabled";
};
/* USI6_UART */
serial_8: uart@10880000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10880000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 400 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart8_bus_single>; /* or <&uart8_bus_dual> */
clocks = <&clock GATE_USI06>, <&clock USI06>;
clock-names = "gate_pclk8", "gate_uart8";
status = "disabled";
};
/* USI7_UART */
serial_9: uart@108A0000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x108A0000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 404 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart9_bus_single>; /* or <&uart9_bus_dual> */
clocks = <&clock GATE_USI07>, <&clock USI07>;
clock-names = "gate_pclk9", "gate_uart9";
status = "disabled";
};
/* USI8_UART */
serial_10: uart@108C0000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x108C0000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 408 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart10_bus_single>; /* or <&uart10_bus_dual> */
clocks = <&clock GATE_USI08>, <&clock USI08>;
clock-names = "gate_pclk10", "gate_uart10";
status = "disabled";
};
/* USI9_UART */
serial_11: uart@108E0000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x108E0000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 412 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart11_bus_single>; /* or <&uart11_bus_dual> */
clocks = <&clock GATE_USI09>, <&clock USI09>;
clock-names = "gate_pclk11", "gate_uart11";
status = "disabled";
};
/* USI10_UART */
serial_12: uart@10900000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10900000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 416 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart12_bus_single>; /* or <&uart12_bus_dual> */
clocks = <&clock GATE_USI10>, <&clock USI10>;
clock-names = "gate_pclk12", "gate_uart12";
status = "disabled";
};
/* USI11_UART */
serial_13: uart@10920000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10920000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 420 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart13_bus_single>; /* or <&uart13_bus_dual> */
clocks = <&clock GATE_USI11>, <&clock USI11>;
clock-names = "gate_pclk13", "gate_uart13";
status = "disabled";
};
/* USI12_UART */
serial_14: uart@10940000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10940000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 424 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart14_bus_single>; /* or <&uart14_bus_dual> */
clocks = <&clock GATE_USI12>, <&clock USI12>;
clock-names = "gate_pclk14", "gate_uart14";
status = "disabled";
};
/* USI13_UART */
serial_15: uart@10960000 {
compatible = "samsung,exynos-uart";
samsung,separate-uart-clk;
reg = <0x0 0x10960000 0x100>;
samsung,fifo-size = <64>;
interrupts = <0 428 0>;
pinctrl-names = "default";
pinctrl-0 = <&uart15_bus_single>; /* or <&uart15_bus_dual> */
clocks = <&clock GATE_USI13>, <&clock USI13>;
clock-names = "gate_pclk15", "gate_uart15";
status = "disabled";
};
/* USI_0 */
usi_0: usi@10421000 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10421000 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_1 */
usi_1: usi@10421004 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10421004 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_2 */
usi_2: usi@10421008 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10421008 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_3 */
usi_3: usi@1042100C {
compatible = "samsung,exynos-usi";
reg = <0x0 0x1042100C 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_4 */
usi_4: usi@10821008 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10821008 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_5 */
usi_5: usi@1082100C {
compatible = "samsung,exynos-usi";
reg = <0x0 0x1082100C 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_6 */
usi_6: usi@10821010 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10821010 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_7 */
usi_7: usi@10821014 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10821014 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_8 */
usi_8: usi@10821018 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10821018 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_9 */
usi_9: usi@1082101C {
compatible = "samsung,exynos-usi";
reg = <0x0 0x1082101C 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_10 */
usi_10: usi@10821020 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10821020 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_11 */
usi_11: usi@10821024 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10821024 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_12 */
usi_12: usi@10821028 {
compatible = "samsung,exynos-usi";
reg = <0x0 0x10821028 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* USI_13 */
usi_13: usi@1082102C {
compatible = "samsung,exynos-usi";
reg = <0x0 0x1082102C 0x4>;
/* usi_mode = "hsi2c0" or "hsi2c1" or "spi" or "uart"
or "hsi2c0_hsi2c1" or "uart_hsi2c1" */
status = "disabled";
};
/* HSI2C_PMIC */
hsi2c_0: hsi2c@15BC0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x15BC0000 0x1000>;
interrupts = <0 113 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c0_bus>;
clocks = <&clock UMUX_CLKCMU_BUSC_BUSPHSI2C>, <&clock GATE_HSI2CDF>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpb2 0 0x1>;
gpio_scl= <&gpb2 1 0x1>;
status = "disabled";
};
/* HSI2C_CAM0 */
hsi2c_1: hsi2c@10990000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10990000 0x1000>;
interrupts = <0 431 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c1_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_HSI2C_CAM0>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpc2 0 0x1>;
gpio_scl= <&gpc2 1 0x1>;
status = "disabled";
};
/* HSI2C_CAM1 */
hsi2c_2: hsi2c@109A0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x109A0000 0x1000>;
interrupts = <0 432 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c2_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_HSI2C_CAM1>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpc2 2 0x1>;
gpio_scl= <&gpc2 3 0x1>;
status = "disabled";
};
/* HSI2C_CAM2 */
hsi2c_3: hsi2c@109B0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x109B0000 0x1000>;
interrupts = <0 433 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c3_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_HSI2C_CAM2>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpc2 4 0x1>;
gpio_scl= <&gpc2 5 0x1>;
status = "disabled";
};
/* HSI2C_CAM3 */
hsi2c_4: hsi2c@109C0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x109C0000 0x1000>;
interrupts = <0 434 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c4_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_HSI2C_CAM3>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpc2 6 0x1>;
gpio_scl= <&gpc2 7 0x1>;
status = "disabled";
};
/* HSI2C_USI0_0 */
hsi2c_5: hsi2c@10440000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10440000 0x1000>;
interrupts = <0 364 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c5_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>, <&clock GATE_USI00>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpd1 0 0x1>;
gpio_scl= <&gpd1 1 0x1>;
status = "disabled";
};
/* HSI2C_USI0_1 */
hsi2c_6: hsi2c@10450000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10450000 0x1000>;
interrupts = <0 365 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c6_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>, <&clock GATE_USI00>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpd1 2 0x1>;
gpio_scl= <&gpd1 3 0x1>;
status = "disabled";
};
/* HSI2C_USI1_0 */
hsi2c_7: hsi2c@10460000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10460000 0x1000>;
interrupts = <0 368 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c7_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>, <&clock GATE_USI01>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpd1 4 0x1>;
gpio_scl= <&gpd1 5 0x1>;
status = "disabled";
};
/* HSI2C_USI1_1 */
hsi2c_8: hsi2c@10470000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10470000 0x1000>;
interrupts = <0 369 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c8_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>, <&clock GATE_USI01>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpd1 6 0x1>;
gpio_scl= <&gpd1 7 0x1>;
status = "disabled";
};
/* HSI2C_USI2_0 */
hsi2c_9: hsi2c@10480000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10480000 0x1000>;
interrupts = <0 372 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c9_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>, <&clock GATE_USI02>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpd2 0 0x1>;
gpio_scl= <&gpd2 1 0x1>;
status = "disabled";
};
/* HSI2C_USI2_1 */
hsi2c_10: hsi2c@10490000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10490000 0x1000>;
interrupts = <0 373 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c10_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>, <&clock GATE_USI02>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpd2 2 0x1>;
gpio_scl= <&gpd2 3 0x1>;
status = "disabled";
};
/* HSI2C_USI3_0 */
hsi2c_11: hsi2c@104A0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x104A0000 0x1000>;
interrupts = <0 376 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c11_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>, <&clock GATE_USI03>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpd3 0 0x1>;
gpio_scl= <&gpd3 1 0x1>;
status = "disabled";
};
/* HSI2C_USI3_1 */
hsi2c_12: hsi2c@104B0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x104B0000 0x1000>;
interrupts = <0 377 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c12_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>, <&clock GATE_USI03>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpd3 2 0x1>;
gpio_scl= <&gpd3 3 0x1>;
status = "disabled";
};
/* HSI2C_USI4_0 */
hsi2c_13: hsi2c@10840000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10840000 0x1000>;
interrupts = <0 390 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c13_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI04>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe5 0 0x1>;
gpio_scl= <&gpe5 1 0x1>;
status = "disabled";
};
/* HSI2C_USI4_1 */
hsi2c_14: hsi2c@10850000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10850000 0x1000>;
interrupts = <0 391 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c14_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI04>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe5 2 0x1>;
gpio_scl= <&gpe5 3 0x1>;
status = "disabled";
};
/* HSI2C_USI5_0 */
hsi2c_15: hsi2c@10860000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10860000 0x1000>;
interrupts = <0 394 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c15_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI05>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe1 0 0x1>;
gpio_scl= <&gpe1 1 0x1>;
status = "disabled";
};
/* HSI2C_USI5_1 */
hsi2c_16: hsi2c@10870000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10870000 0x1000>;
interrupts = <0 395 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c16_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI05>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe1 2 0x1>;
gpio_scl= <&gpe1 3 0x1>;
status = "disabled";
};
/* HSI2C_USI6_0 */
hsi2c_17: hsi2c@10880000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10880000 0x1000>;
interrupts = <0 398 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c17_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI06>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe1 4 0x1>;
gpio_scl= <&gpe1 5 0x1>;
status = "disabled";
};
/* HSI2C_USI6_1 */
hsi2c_18: hsi2c@10890000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10890000 0x1000>;
interrupts = <0 399 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c18_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI06>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe1 6 0x1>;
gpio_scl= <&gpe1 7 0x1>;
status = "disabled";
};
/* HSI2C_USI7_0 */
hsi2c_19: hsi2c@108A0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x108A0000 0x1000>;
interrupts = <0 402 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c19_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI07>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe2 0 0x1>;
gpio_scl= <&gpe2 1 0x1>;
status = "disabled";
};
/* HSI2C_USI7_1 */
hsi2c_20: hsi2c@108B0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x108B0000 0x1000>;
interrupts = <0 403 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c20_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI07>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe2 2 0x1>;
gpio_scl= <&gpe2 3 0x1>;
status = "disabled";
};
/* HSI2C_USI8_0 */
hsi2c_21: hsi2c@108C0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x108C0000 0x1000>;
interrupts = <0 406 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c21_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI08>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe2 4 0x1>;
gpio_scl= <&gpe2 5 0x1>;
status = "disabled";
};
/* HSI2C_USI8_1 */
hsi2c_22: hsi2c@108D0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x108D0000 0x1000>;
interrupts = <0 407 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c22_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI08>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe2 6 0x1>;
gpio_scl= <&gpe2 7 0x1>;
status = "disabled";
};
/* HSI2C_USI9_0 */
hsi2c_23: hsi2c@108E0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x108E0000 0x1000>;
interrupts = <0 410 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c23_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI09>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe3 0 0x1>;
gpio_scl= <&gpe3 1 0x1>;
status = "disabled";
};
/* HSI2C_USI9_1 */
hsi2c_24: hsi2c@108F0000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x108F0000 0x1000>;
interrupts = <0 411 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c24_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI09>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe3 2 0x1>;
gpio_scl= <&gpe3 3 0x1>;
status = "disabled";
};
/* HSI2C_USI10_0 */
hsi2c_25: hsi2c@10900000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10900000 0x1000>;
interrupts = <0 414 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c25_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI10>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe3 4 0x1>;
gpio_scl= <&gpe3 5 0x1>;
status = "disabled";
};
/* HSI2C_USI10_1 */
hsi2c_26: hsi2c@10910000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10910000 0x1000>;
interrupts = <0 415 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c26_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI10>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe3 6 0x1>;
gpio_scl= <&gpe3 7 0x1>;
status = "disabled";
};
/* HSI2C_USI11_0 */
hsi2c_27: hsi2c@10920000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10920000 0x1000>;
interrupts = <0 418 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c27_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI11>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe4 0 0x1>;
gpio_scl= <&gpe4 1 0x1>;
status = "disabled";
};
/* HSI2C_USI11_1 */
hsi2c_28: hsi2c@10930000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10930000 0x1000>;
interrupts = <0 419 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c28_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI11>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe4 2 0x1>;
gpio_scl= <&gpe4 3 0x1>;
status = "disabled";
};
/* HSI2C_USI12_0 */
hsi2c_29: hsi2c@10940000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10940000 0x1000>;
interrupts = <0 422 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c29_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI12>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe4 4 0x1>;
gpio_scl= <&gpe4 5 0x1>;
status = "disabled";
};
/* HSI2C_USI12_1 */
hsi2c_30: hsi2c@10950000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10950000 0x1000>;
interrupts = <0 423 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c30_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI12>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe4 6 0x1>;
gpio_scl= <&gpe4 7 0x1>;
status = "disabled";
};
/* HSI2C_USI13_0 */
hsi2c_31: hsi2c@10960000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10960000 0x1000>;
interrupts = <0 426 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c31_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI13>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe5 4 0x1>;
gpio_scl= <&gpe5 5 0x1>;
status = "disabled";
};
/* HSI2C_USI13_1 */
hsi2c_32: hsi2c@10970000 {
compatible = "samsung,exynos5-hsi2c";
samsung,check-transdone-int;
reg = <0x0 0x10970000 0x1000>;
interrupts = <0 427 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&hsi2c32_bus>;
clocks = <&clock UMUX_CLKCMU_PERIC1_BUS>, <&clock GATE_USI13>;
clock-names = "rate_hsi2c", "gate_hsi2c";
samsung,scl-clk-stretching;
gpio_sda= <&gpe5 6 0x1>;
gpio_scl= <&gpe5 7 0x1>;
status = "disabled";
};
/* SPI CAM_0 */
spi_0: spi@109D0000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x109D0000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 435 0>;
/*
To use DMA in SPI CAM_0, do not use DMA in SPI USI_13.
dma-mode;
dmas = <&pdma0 31 1
&pdma0 30 1>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_SPI_CAM0>, <&clock DOUT_CLKCMU_PERIC1_SPI_CAM0>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi0_bus>;
status = "disabled";
};
/* SPI CAM_1 */
spi_1: spi@109E0000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x109E0000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 436 0>;
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_SPI_CAM1>, <&clock DOUT_CLKCMU_PERIC1_SPI_CAM1>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi1_bus>;
status = "disabled";
};
/* SPI USI_0 */
spi_2: spi@10440000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10440000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 367 0>;
/*
dma-mode;
dmas = <&pdma0 1 0
&pdma0 0 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI00>, <&clock USI00>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi2_bus>;
status = "disabled";
};
/* SPI USI_1 */
spi_3: spi@10460000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10460000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 371 0>;
/*
dma-mode;
dmas = <&pdma0 3 0
&pdma0 2 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI01>, <&clock USI01>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi3_bus>;
status = "disabled";
};
/* SPI USI_2 */
spi_4: spi@10480000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10480000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 375 0>;
/*
dma-mode;
dmas = <&pdma0 5 0
&pdma0 4 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI02>, <&clock USI02>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi4_bus>;
status = "disabled";
};
/* SPI USI_3 */
spi_5: spi@104A0000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x104A0000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 379 0>;
/*
dma-mode;
dmas = <&pdma0 7 0
&pdma0 6 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI03>, <&clock USI03>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi5_bus>;
status = "disabled";
};
/* SPI USI_4 */
spi_6: spi@10840000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10840000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 393 0>;
/*
dma-mode;
dmas = <&pdma0 13 0
&pdma0 12 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI04>, <&clock USI04>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi6_bus>;
status = "disabled";
};
/* SPI USI_5 */
spi_7: spi@10860000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10860000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 397 0>;
/*
dma-mode;
dmas = <&pdma0 15 0
&pdma0 14 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI05>, <&clock USI05>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi7_bus>;
status = "disabled";
};
/* SPI USI_6 */
spi_8: spi@10880000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10880000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 401 0>;
/*
dma-mode;
dmas = <&pdma0 17 0
&pdma0 16 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI06>, <&clock USI06>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi8_bus>;
status = "disabled";
};
/* SPI USI_7 */
spi_9: spi@108A0000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x108A0000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 405 0>;
/*
dma-mode;
dmas = <&pdma0 19 0
&pdma0 18 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI07>, <&clock USI07>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi9_bus>;
status = "disabled";
};
/* SPI USI_8 */
spi_10: spi@108C0000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x108C0000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 409 0>;
/*
dma-mode;
dmas = <&pdma0 21 0
&pdma0 20 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI08>, <&clock USI08>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi10_bus>;
status = "disabled";
};
/* SPI USI_9 */
spi_11: spi@108E0000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x108E0000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 413 0>;
/*
dma-mode;
dmas = <&pdma0 23 0
&pdma0 22 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI09>, <&clock USI09>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi11_bus>;
status = "disabled";
};
/* SPI USI_10 */
spi_12: spi@10900000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10900000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 417 0>;
/*
dma-mode;
dmas = <&pdma0 25 0
&pdma0 24 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI10>, <&clock USI10>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi12_bus>;
status = "disabled";
};
/* SPI USI_11 */
spi_13: spi@10920000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10920000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 421 0>;
/*
dma-mode;
dmas = <&pdma0 27 0
&pdma0 26 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI11>, <&clock USI11>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi13_bus>;
status = "disabled";
};
/* SPI USI_12 */
spi_14: spi@10940000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10940000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 425 0>;
/*
dma-mode;
dmas = <&pdma0 29 0
&pdma0 28 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI12>, <&clock USI12>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi14_bus>;
status = "disabled";
};
/* SPI USI_13 */
spi_15: spi@10960000 {
compatible = "samsung,exynos-spi";
reg = <0x0 0x10960000 0x100>;
samsung,spi-fifosize = <64>;
interrupts = <0 429 0>;
/*
To use DMA in SPI USI_13, do not use DMA in SPI CAM_0.
dma-mode;
dmas = <&pdma0 31 0
&pdma0 30 0>;
*/
dma-names = "tx", "rx";
swap-mode;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock GATE_USI13>, <&clock USI13>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi15_bus>;
status = "disabled";
};
acpm {
compatible = "samsung,exynos-acpm";
#address-cells = <2>;
#size-cells = <1>;
reg = <0x0 0x16488000 0x1000>; /* PMU_ALIVE */
acpm-ipc-channel = <4>;
};
acpm_ipc {
compatible = "samsung,exynos-acpm-ipc";
#address-cells = <2>;
#size-cells = <1>;
interrupts = <0 39 0>;
reg = <0x0 0x16440000 0x1000>, /* AP2APM MAILBOX */
<0x0 0x16500000 0xB400>; /* APM SRAM */
initdata-base = <0x2850>;
num-timestamps = <32>;
debug-log-level = <0>;
logging-period = <500>;
dump-base = <0x16500000>;
dump-size = <0xB400>;
};
acpm_dvfs {
compatible = "samsung,exynos-acpm-dvfs";
acpm-ipc-channel = <5>;
cpu_cold_temp_list = <ACPM_DVFS_MIF>, <ACPM_DVFS_INT>,
<ACPM_DVFS_CPUCL0>, <ACPM_DVFS_CPUCL1>,
<ACPM_DVFS_INTCAM>, <ACPM_DVFS_CAM>,
<ACPM_DVFS_DISP>;
gpu_cold_temp_list = <ACPM_DVFS_G3D>;
};
smc_info: mcinfo@160300000 {
compatible = "samsung,exynos-mcinfo";
reg = <0x0 0x1603004C 0x4>,
<0x0 0x1613004C 0x4>,
<0x0 0x1623004C 0x4>,
<0x0 0x1633004C 0x4>;
bit_field = <20 4>;
/* start bit, width */
basecnt = <4>;
irqcnt = <4>;
interrupts = <0 115 0>, <0 122 0>, <0 129 0>, <0 136 0>;
};
devfreq_0: devfreq_mif@17000010 {
compatible = "samsung,exynos-devfreq";
reg = <0x0 0x17000010 0x0>;
devfreq_type = "mif";
devfreq_domain_name = "dvfs_mif";
/* Delay time */
use_delay_time = "true";
delay_time_list = "20";
freq_info = <2093000 208000 1014000 208000 2093000 2093000>;
/* initial_freq, default_qos, suspend_freq, min_freq, max_freq reboot_freq */
/* Booting value */
boot_info = <40 1794000>;
/* boot_qos_timeout, boot_freq */
use_get_dev = "false";
polling_ms = <0>;
/* governor data */
gov_name = "interactive";
use_reg = "false";
use_tmu = "true";
use_cl_dvfs = "false";
use_sw_clk = "false";
dfs_id = <ACPM_DVFS_MIF>;
acpm-ipc-channel = <1>;
use_acpm = "true";
};
devfreq_1: devfreq_int@17000020 {
compatible = "samsung,exynos-devfreq";
reg = <0x0 0x17000020 0x0>;
devfreq_type = "int";
devfreq_domain_name = "dvfs_int";
/* Delay time */
use_delay_time = "false";
freq_info = <667000 178000 107000 107000 667000 667000>;
/* <initial_freq, default_qos, suspend_freq, min, max, reboot_freq> */
/* Booting value */
boot_info = <40 667000>;
/* boot_qos_timeout, boot_freq */
/* default_dev_profile */
use_get_dev = "false";
polling_ms = <0>;
/* governor data */
gov_name = "interactive";
use_reg = "false";
use_tmu = "true";
use_cl_dvfs = "false";
use_sw_clk = "false";
dfs_id = <ACPM_DVFS_INT>;
acpm-ipc-channel = <1>;
use_acpm = "true";
};
devfreq_2: devfreq_intcam@17000030 {
compatible = "samsung,exynos-devfreq";
reg = <0x0 0x17000030 0x0>;
devfreq_type = "intcam";
devfreq_domain_name = "dvfs_intcam";
/* Delay time */
use_delay_time = "false";
freq_info = <690000 640000 690000 640000 690000 690000>;
/* <initial_freq, default_qos, suspend_freq, min, max, reboot_freq> */
/* Booting value */
boot_info = <40 690000>;
/* boot_qos_timeout, boot_freq */
/* default_dev_profile */
use_get_dev = "false";
polling_ms = <0>;
/* governor data */
gov_name = "interactive";
use_reg = "false";
use_tmu = "true";
use_cl_dvfs = "false";
use_sw_clk = "false";
dfs_id = <ACPM_DVFS_INTCAM>;
};
devfreq_3: devfreq_disp@17000040 {
compatible = "samsung,exynos-devfreq";
reg = <0x0 0x17000040 0x0>;
devfreq_type = "disp";
devfreq_domain_name = "dvfs_disp";
/* Delay time */
use_delay_time = "false";
freq_info = <630000 134000 630000 134000 630000 630000>;
/* <initial_freq, default_qos, suspend_freq, min, max, reboot_freq> */
/* Booting value */
boot_info = <40 630000>;
/* boot_qos_timeout, boot_freq */
/* default dev profile */
use_get_dev = "false";
polling_ms = <0>;
/* governor data */
gov_name = "interactive";
use_reg = "false";
use_tmu = "true";
use_cl_dvfs = "false";
use_sw_clk = "false";
dfs_id = <ACPM_DVFS_DISP>;
};
devfreq_4: devfreq_cam@17000050 {
compatible = "samsung,exynos-devfreq";
reg = <0x0 0x17000050 0x0>;
devfreq_type = "cam";
devfreq_domain_name = "dvfs_cam";
/* Delay time */
use_delay_time = "false";
freq_info = <690000 630000 690000 630000 690000 690000>;
/* <initial, default_qos, suspend_freq, min, max, reboot_freq> */
/* Booting value */
boot_info = <40 690000>;
/* boot_qos_timeout, boot_freq */
/* default dev profile */
use_get_dev = "false";
polling_ms = <0>;
/* governor data */
gov_name = "interactive";
use_reg = "false";
use_tmu = "true";
use_cl_dvfs = "false";
use_sw_clk = "false";
dfs_id = <ACPM_DVFS_CAM>;
};
exynos_dm: exynos-dm@17000000 {
compatible = "samsung,exynos-dvfs-manager";
reg = <0x0 0x17000000 0x0>;
acpm-ipc-channel = <1>;
cpufreq_cl0 {
dm-index = <DM_CPU_CL0>;
available = "true";
cal_id = <ACPM_DVFS_CPUCL0>;
};
cpufreq_cl1 {
dm-index = <DM_CPU_CL1>;
available = "true";
cal_id = <ACPM_DVFS_CPUCL1>;
};
devfreq_mif {
dm-index = <DM_MIF>;
available = "true";
policy_use = "true";
cal_id = <ACPM_DVFS_MIF>;
};
devfreq_int {
dm-index = <DM_INT>;
available = "true";
policy_use = "true";
cal_id = <ACPM_DVFS_INT>;
};
devfreq_intcam {
dm-index = <DM_INTCAM>;
available = "true";
cal_id = <ACPM_DVFS_INTCAM>;
};
devfreq_disp {
dm-index = <DM_DISP>;
available = "true";
cal_id = <ACPM_DVFS_DISP>;
};
devfreq_cam {
dm-index = <DM_CAM>;
available = "true";
cal_id = <ACPM_DVFS_CAM>;
};
dvfs_gpu {
dm-index = <DM_GPU>;
available = "false";
cal_id = <ACPM_DVFS_G3D>;
};
};
fimg2d_0: fimg2d@15100000 {
compatible = "samsung,s5p-fimg2d";
reg = <0x0 0x13A30000 0x1000>;
interrupts = <0 224 0>;
clocks = <&clock GATE_G2D>;
clock-names="gate";
samsung,power-domain = <&pd_g2d>;
iommus = <&sysmmu_g2d_0>, <&sysmmu_g2d_1>;
num_qos_steps = <6>;
g2d_qos_table {
g2d_qos_variant_0 {
freq_mif = <1014000>;
freq_cpu = <0>;
freq_kfc = <0>;
};
g2d_qos_variant_1 {
freq_mif = <1014000>;
freq_cpu = <0>;
freq_kfc = <0>;
};
g2d_qos_variant_2 {
freq_mif = <845000>;
freq_cpu = <0>;
freq_kfc = <0>;
};
g2d_qos_variant_3 {
freq_mif = <845000>;
freq_cpu = <0>;
freq_kfc = <0>;
};
g2d_qos_variant_4 {
freq_mif = <676000>;
freq_cpu = <0>;
freq_kfc = <0>;
};
g2d_qos_variant_5 {
freq_mif = <0>;
freq_cpu = <0>;
freq_kfc = <0>;
};
};
};
sysmmu_g2d_0: sysmmu@13A60000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13A60000 0x3000>;
interrupts = <0 215 0>, <0 216 0>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_G2DD0>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x13A80000>;
#iommu-cells = <0>;
};
sysmmu_g2d_1: sysmmu@13A70000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13A70000 0x3000>;
interrupts = <0 218 0>, <0 219 0>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_G2DD1>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x13A90000>;
#iommu-cells = <0>;
};
/* SPEEDY IP_BATCHER_AP */
speedy@15B50000 {
compatible = "samsung,exynos-speedy";
reg = <0x0 0x15B50000 0x2000>;
interrupts = <0 109 0>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&speedy_bus>;
clocks = <&clock GATE_SPEEDY_BATCHER_WRAP_BATCHER_AP>;
clock-names = "gate_speedy";
status = "disabled";
};
vpu: vpu@13300000 {
compatible = "samsung,exynos-vpu";
#pb-id-cells = <4>;
reg = <0x0 0x133C0000 0x20000>, /* RAM0 */
<0x0 0x133E0000 0x20000>, /* RAM1 */
<0x0 0x13380000 0x20000>, /* CODE */
<0x0 0x13300000 0x50000>; /* APB */
interrupts = <0 190 0>, <0 191 0>;
samsung,power-domain = <&pd_vpu>;
clocks = <&clock GATE_VPU>;
clock-names = "vpu";
iommus = <&sysmmu_vpu>;
};
iommu-domain_vpu {
compatible = "samsung,exynos-iommu-bus";
#dma-address-cells = <1>;
#dma-size-cells = <1>;
/* start address, size */
dma-window = <0x30000000 0xA0000000>;
domain-clients = <&vpu>;
};
sysmmu_vpu: sysmmu@13250000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13250000 0x3000>;
interrupts = <0 194 0>, <0 195 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_VPU>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x13240000>;
sysmmu,tlb_property =
<(SYSMMU_PUBLIC_NO_PREFETCH | SYSMMU_BL8) SYSMMU_NOID>;
#iommu-cells = <0>;
};
iommu-domain_disp {
compatible = "samsung,exynos-iommu-bus";
#address-cells = <2>;
#size-cells = <1>;
ranges;
domain-clients = <&idma_g0>, <&idma_g1>, <&idma_vg0>, <&idma_vg1>,
<&idma_vgf0>, <&idma_vgf1>, <&odma_wb>;
};
sysmmu_dpu0: sysmmu@12900000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x12900000 0x3000>;
interrupts = <0 152 0>, <0 153 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_SYSMMU_DPUD0>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x12930000>;
sysmmu,tlb_property =
/* 0~1 : VGR */
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL16) SYSMMU_ID_MASK(0x100, 0x180)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL16) SYSMMU_ID_MASK(0x180, 0x180)>,
/* 2~3 : VGF */
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_READ | SYSMMU_BL8) SYSMMU_ID_MASK(0x0, 0x180)>,
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_READ | SYSMMU_BL8) SYSMMU_ID_MASK(0x80, 0x180)>;
#iommu-cells = <0>;
};
sysmmu_dpu1: sysmmu@12910000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x12910000 0x3000>;
interrupts = <0 155 0>, <0 156 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_SYSMMU_DPUD1>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x12940000>;
sysmmu,tlb_property =
/* 0 : G0 */
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_READ | SYSMMU_BL1) SYSMMU_ID_MASK(0x0, 0x600)>,
/* 1~2 : VG0 */
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_READ | SYSMMU_BL1) SYSMMU_ID_MASK(0x400, 0x600)>,
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_READ | SYSMMU_BL1) SYSMMU_ID_MASK(0x600, 0x600)>;
#iommu-cells = <0>;
};
sysmmu_dpu2: sysmmu@12920000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x12920000 0x3000>;
interrupts = <0 158 0>, <0 159 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_SYSMMU_DPUD2>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x12950000>;
sysmmu,tlb_property =
/* 0 : G1 */
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_READ | SYSMMU_BL1) SYSMMU_ID_MASK(0x0, 0x600)>,
/* 1~2 : VG1 */
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_READ | SYSMMU_BL1) SYSMMU_ID_MASK(0x400, 0x600)>,
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_READ | SYSMMU_BL1) SYSMMU_ID_MASK(0x600, 0x600)>,
/* 3~4 : WB */
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_WRITE | SYSMMU_BL1) SYSMMU_ID_MASK(0x0, 0x100)>,
<(SYSMMU_PRIV_ID_PREFETCH_PREDICTION_WRITE | SYSMMU_BL1) SYSMMU_ID_MASK(0x100, 0x100)>;
#iommu-cells = <0>;
};
idma_g0: dpp@0x12851000{
compatible = "samsung,exynos8-dpp";
#pb-id-cells = <3>;
reg = <0x0 0x12851000 0x1000>, <0x0 0x128B1000 0x1000>, <0x0 0x128B0000 0x100>;
interrupts = <0 183 0>, <0 179 0>;
iommus = <&sysmmu_dpu1>;
/* power domain */
samsung,power-domain = <&pd_dpu0>;
};
idma_g1: dpp@0x12852000{
compatible = "samsung,exynos8-dpp";
#pb-id-cells = <6>;
reg = <0x0 0x12852000 0x1000>, <0x0 0x128B2000 0x1000>, <0x0 0x128B0000 0x100>;
interrupts = <0 184 0>, <0 181 0>;
iommus = <&sysmmu_dpu2>;
/* power domain */
samsung,power-domain = <&pd_dpu0>;
};
idma_vg0: dpp@0x12853000{
compatible = "samsung,exynos8-dpp";
#pb-id-cells = <3>;
reg = <0x0 0x12853000 0x1000>, <0x0 0x128B3000 0x1000>, <0x0 0x128B0000 0x100>;
interrupts = <0 185 0>, <0 180 0>;
iommus = <&sysmmu_dpu1>;
/* power domain */
samsung,power-domain = <&pd_dpu0>;
};
idma_vg1: dpp@0x12854000{
compatible = "samsung,exynos8-dpp";
#pb-id-cells = <3>;
reg = <0x0 0x12854000 0x1000>, <0x0 0x128B4000 0x1000>, <0x0 0x128B0000 0x100>;
interrupts = <0 186 0>, <0 182 0>;
iommus = <&sysmmu_dpu2>;
/* power domain */
samsung,power-domain = <&pd_dpu0>;
};
idma_vgf0: dpp@0x12855000{
compatible = "samsung,exynos8-dpp";
#pb-id-cells = <3>;
reg = <0x0 0x12855000 0x1000>, <0x0 0x128B5000 0x1000>, <0x0 0x128B0000 0x100>;
interrupts = <0 188 0>, <0 177 0>;
iommus = <&sysmmu_dpu0>;
/* power domain */
samsung,power-domain = <&pd_dpu0>;
};
idma_vgf1: dpp@0x12856000{
compatible = "samsung,exynos8-dpp";
#pb-id-cells = <3>;
reg = <0x0 0x12856000 0x1000>, <0x0 0x128B6000 0x1000>, <0x0 0x128B0000 0x100>;
interrupts = <0 187 0>, <0 178 0>;
iommus = <&sysmmu_dpu0>;
/* power domain */
samsung,power-domain = <&pd_dpu0>;
};
odma_wb: dpp@0x12890000{
compatible = "samsung,exynos8-dpp";
#pb-id-cells = <3>;
reg = <0x0 0x12890000 0x1000>, <0x0 0x128B7000 0x1000>, <0x0 0x128B0000 0x100>;
interrupts = <0 189 0>;
iommus = <&sysmmu_dpu2>;
/* power domain */
samsung,power-domain = <&pd_dpu0>;
};
ion {
compatible = "samsung,exynos5430-ion";
};
disp_ss: disp_ss@0x12820000 {
compatible = "samsung,exynos8-disp_ss";
reg = <0x0 0x12821000 0x10>;
};
disp_ver: disp_ver@0x10000010 {
compatible = "samsung,exynos8-disp-ver";
reg = <0x0 0x10000010 0x4>;
};
mipi_phy_dsim: phy_m4s4_dsi@0x12821008 {
compatible = "samsung,mipi-phy-m4s4-mod";
samsung,pmu-syscon = <&pmu_system_controller>;
isolation = <0x710>;
/* PHY reset be controlled from DSIM */
/* reg = <0x0 0x12821008 0x4>; */
/* reset = <0 1>; */
/* init = <4 5>; */ /* PHY reset control path bit of SYSREG */
owner = <0>; /* 0: DSI, 1: CSI */
#phy-cells = <1>;
};
dsim_0: dsim@0x12870000 {
compatible = "samsung,exynos8-dsim";
reg = <0x0 0x12870000 0x100>;
interrupts = <0 150 0>;
phys = <&mipi_phy_dsim 0>;
phy-names = "dsim_dphy";
/* power domain */
samsung,power-domain = <&pd_dpu1>;
};
displayport_phy: displayport_phy@11090904 {
compatible = "samsung,displayport-phy";
samsung,pmu-syscon = <&pmu_system_controller>;
isolation = <0x072C>;
#phy-cells = <1>;
};
displayport: displayport@0x11090000 {
compatible = "samsung,exynos-displayport";
reg = <0x0 0x11090000 0xFFFF>;
interrupts = <0 340 0>;
phys = <&displayport_phy 1>;
phy-names = "displayport_phy";
};
displayport_adma: displayport_adma@0x15A40000 {
compatible = "samsung,displayport-adma";
reg = <0x0 0x15A40000 0x1000>;
interrupt = <0 107 0>;
clocks = <&clock GATE_PDMA0>;
clock-names = "apb_pclk";
/* dma-mode; */
dmas = <&pdma0 9 0>;
dma-names = "tx";
};
decon_f: decon_f@0x12860000 {
compatible = "samsung,exynos8-decon";
#pb-id-cells = <4>;
reg = <0x0 0x12860000 0x10000>;
/* interrupt num */
interrupts = <0 142 0>, <0 143 0>, <0 144 0>, <0 149 0>, <0 430 0>,
<0 145 0>, <0 146 0>, <0 147 0>, <0 148 0>;
/* clock */
clock-names = "aclk";
clocks = <&clock GATE_DECON0>;
/* pinctrl */
pinctrl-names = "hw_te_on", "hw_te_off";
pinctrl-0 = <&decon_f_te_on>;
pinctrl-1 = <&decon_f_te_off>;
/* power domain */
samsung,power-domain = <&pd_dpu0>;
max_win = <6>;
default_win = <5>;
default_idma = <0>;
psr_mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */
trig_mode = <0>; /* 0: hw trigger, 1: sw trigger */
dsi_mode = <0>; /* 0: single dsi, 1: dual dsi */
/* 0: DSI, 1: eDP, 2:HDMI, 3: WB */
out_type = <0>;
/* 0: DSI0, 1: DSI1, 2: DSI2 */
out_idx = <0>;
#address-cells = <2>;
#size-cells = <1>;
ranges;
/* EINT for TE */
gpios = <&gpb0 1 0xf>;
/* sw te pending register */
te_eint {
/* NWEINT_GPB0_PEND (GPB0_0:TE_T, GPB0_1:TE_F, GPB0_2:TE_S) */
reg = <0x0 0x10980a00 0x4>;
};
cam-stat {
reg = <0x0 0x16484024 0x4>;
};
};
decon_t: decon_t@0x12A40000 {
compatible = "samsung,exynos8-decon";
#pb-id-cells = <4>;
reg = <0x0 0x12A40000 0x1000>;
/* interrupt num */
interrupts = <0 171 0>, <0 172 0>, <0 173 0>, <0 174 0>, <0 175 0>;
/* clock */
clock-names = "aclk", "busd", "busp";
clocks = <&clock GATE_DECON0>, <&clock UMUX_CLKCMU_DPU1_BUSD>,
<&clock UMUX_CLKCMU_DPU1_BUSP>;
/* power domain */
samsung,power-domain = <&pd_dpu1>;
max_win = <5>;
default_win = <3>;
default_idma = <2>;
psr_mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */
trig_mode = <1>; /* 0: hw trigger, 1: sw trigger */
dsi_mode = <0>; /* 0: single dsi, 1: dual dsi */
/* 0: DSI, 1: eDP, 2:DP, 3: WB */
out_type = <3>;
/* 0: DSI0, 1: DSI1, 2: DSI2 */
out_idx = <0>;
#address-cells = <2>;
#size-cells = <1>;
ranges;
};
smfc: smfc@13B00000 {
compatible = "samsung,exynos8890-jpeg";
dma-coherent;
reg = <0x0 0x13B00000 0x1000>;
interrupts = <0 225 0>;
clocks = <&clock GATE_JPEG>;
clock-names = "gate";
iommus = <&sysmmu_g2d_2>;
samsung,power-domain = <&pd_g2d>;
};
exynos_adc: adc@15B70000 {
compatible = "samsung,exynos-adc-v3";
reg = <0x0 0x15B70000 0x100>;
interrupts = <0 104 0>;
#io-channel-cells = <1>;
io-channel-ranges;
clocks = <&clock GATE_ADCIF_BUSC_S0>;
clock-names = "gate_adcif";
};
scaler_0: scaler@0x13B10000 {
compatible = "samsung,exynos5-scaler";
dma-coherent;
reg = <0x0 0x13B10000 0x1300>;
interrupts = <0 226 0>;
clocks = <&clock GATE_M2MSCALER>;
clock-names = "gate";
iommus = <&sysmmu_g2d_2>;
samsung,power-domain = <&pd_g2d>;
};
ima: ima@0x1C000000 {
compatible = "samsung,exynos-ima";
reg = <0x0 0x13780000 0x80000>, /* CPU path */
<0x0 0x1C000000 0x80000>, /* DMA path */
<0x0 0x13520000 0x2000>, /* Sysreg */
<0x0 0x136D0000 0x1000>; /* Pre-register */
clocks = <&clock GATE_IVA_INTMEM>;
clock-names = "gate";
samsung,power-domain = <&pd_iva>;
};
iommu-domain_g2d {
compatible = "samsung,exynos-iommu-bus";
#address-cells = <2>;
#size-cells = <1>;
ranges;
domain-clients = <&fimg2d_0>;
};
iommu-domain_smfc_scaler {
compatible = "samsung,exynos-iommu-bus";
#address-cells = <2>;
#size-cells = <1>;
ranges;
domain-clients = <&smfc>, <&scaler_0>;
};
sysmmu_g2d_2: sysmmu@13B50000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13B50000 0x3000>;
interrupts = <0 221 0>, <0 222 0>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_G2DD2>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x13B60000>;
sysmmu,tlb_property =
/* 0~5 : M2MScaler */
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL32) SYSMMU_ID(0x1)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL32) SYSMMU_ID(0x3)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL32) SYSMMU_ID(0x5)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_WRITE | SYSMMU_BL32) SYSMMU_ID(0x11)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_WRITE | SYSMMU_BL32) SYSMMU_ID(0x13)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_WRITE | SYSMMU_BL32) SYSMMU_ID(0x15)>,
/* 6~9 : SMFC */
<(SYSMMU_PRIV_ADDR_NO_PREFETCH_READWRITE | SYSMMU_BL32) SYSMMU_NOID>,
<(SYSMMU_PRIV_ADDR_NO_PREFETCH_READWRITE | SYSMMU_BL32) SYSMMU_NOID>,
<(SYSMMU_PRIV_ADDR_NO_PREFETCH_READWRITE | SYSMMU_BL32) SYSMMU_NOID>,
<(SYSMMU_PRIV_ADDR_NO_PREFETCH_WRITE | SYSMMU_BL32) SYSMMU_NOID>;
#iommu-cells = <0>;
};
watchdog@10060000 {
compatible = "samsung,exynos8-wdt";
reg = <0x0 0x10060000 0x100>;
interrupts = <0 454 0>;
clocks = <&clock OSCCLK>, <&clock UMUX_CLKCMU_PERIS_BUS>;
clock-names = "rate_watchdog", "gate_watchdog";
timeout-sec = <30>;
samsung,syscon-phandle = <&pmu_system_controller>;
};
rtc@16490000 {
compatible = "samsung,exynos8-rtc";
reg = <0x0 0x10070000 0x100>;
interrupts = <0 79 0>, <0 78 0>;
};
dwmmc_2: dwmmc2@11500000 {
compatible = "samsung,exynos-dw-mshc";
reg = <0x0 0x11500000 0x2000>;
interrupts = <0 341 0>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clock MMC_CARD>, <&clock GATE_MMC_CARD>;
clock-names = "ciu", "ciu_gate";
status = "disabled";
};
sec_pwm: pwm@104c0000 {
compatible = "samsung,s3c6400-pwm";
reg = <0x0 0x104c0000 0x1000>;
samsung,pwm-outputs = <0>, <1>, <2>, <3>, <4>;
#pwm-cells = <3>;
clocks = <&clock UMUX_CLKCMU_PERIC0_BUS>,
<&clock_pwm 1>, <&clock_pwm 2>,
<&clock_pwm 5>, <&clock_pwm 6>,
<&clock_pwm 7>, <&clock_pwm 8>,
<&clock_pwm 10>, <&clock_pwm 11>,
<&clock_pwm 12>, <&clock_pwm 13>;
clock-names = "gate_timers",
"pwm-scaler0", "pwm-scaler1",
"pwm-tdiv0", "pwm-tdiv1",
"pwm-tdiv2", "pwm-tdiv3",
"pwm-tin0", "pwm-tin1",
"pwm-tin2", "pwm-tin3";
status = "ok";
};
clock_pwm: pwm-clock-controller@104c0000 {
compatible = "samsung,exynos-pwm-clock";
reg = <0x0 0x104c0000 0x50>;
#clock-cells = <1>;
};
coresight@17000000 {
compatible = "exynos,coresight";
base = <0x17000000>;
/* coresight component count */
funnel-num = <3>;
etf-num = <2>;
cl0_cpu0@400000 {
device_type = "cs";
etm-offset = <0x440000>;
funnel-port = <0 0>;
};
cl0_cpu1@500000 {
device_type = "cs";
etm-offset = <0x540000>;
funnel-port = <0 1>;
};
cl0_cpu2@600000 {
device_type = "cs";
etm-offset = <0x640000>;
funnel-port = <0 2>;
};
cl0_cpu3@700000 {
device_type = "cs";
etm-offset = <0x740000>;
funnel-port = <0 3>;
};
cl1_cpu0@800000 {
device_type = "cs";
etm-offset = <0x840000>;
funnel-port = <1 0>;
};
cl1_cpu1@900000 {
device_type = "cs";
etm-offset = <0x940000>;
funnel-port = <1 1>;
};
cl1_cpu2@A00000 {
device_type = "cs";
etm-offset = <0xA40000>;
funnel-port = <1 2>;
};
cl1_cpu3@B00000 {
device_type = "cs";
etm-offset = <0xB40000>;
funnel-port = <1 3>;
};
cs_etf0: cs_etf0@C000 {
device_type = "etf";
offset = <0x4000>;
funnel-port = <2 0>;
};
cs_etf1: cs_etf1@5000 {
device_type = "etf";
offset = <0x5000>;
funnel-port = <2 1>;
};
cs_funnel0@4000 {
device_type = "funnel";
offset = <0x7000>;
};
cs_funnel1@9000 {
device_type = "funnel";
offset = <0x8000>;
};
cs_funnelm2@9000 {
device_type = "funnel";
offset = <0x9000>;
};
cs_etr@B000 {
device_type = "etr";
offset = <0xA000>;
};
};
udc: usb@10C00000 {
compatible = "samsung,exynos8895-dwusb3";
clocks = <&clock GATE_USBTV_USB30DRD_LINK>, <&clock USBDRD30>;
clock-names = "aclk", "sclk";
reg = <0x0 0x10C00000 0x10000>;
#address-cells = <2>;
#size-cells = <1>;
ranges;
status = "disabled";
usbdrd_dwc3: dwc3 {
compatible = "synopsys,dwc3";
reg = <0x0 0x10C00000 0x10000>;
interrupts = <0 337 0>;
is_not_vbus_pad;
suspend_clk_freq = <66000000>;
enable_sprs_transfer;
phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
phy-names = "usb2-phy", "usb3-phy";
};
};
usbdrd_phy0: phy@10E00000 {
compatible = "samsung,exynos8895-usbdrd-phy";
reg = <0x0 0x10E00000 0x100>,
<0x0 0x10E10000 0x100>;
clocks = <&clock OSCCLK>, <&clock GATE_USBTV_USB30DRD_LINK>;
clock-names = "ext_xtal", "aclk";
samsung,pmu-syscon = <&pmu_system_controller>;
is_not_vbus_pad;
status = "disabled";
#phy-cells = <1>;
ranges;
};
iommu-domain_aud {
compatible = "samsung,exynos-iommu-bus";
#address-cells = <2>;
#size-cells = <1>;
ranges;
domain-clients = <&abox>;
};
sysmmu_aud0: sysmmu@13E30000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13E30000 0x3000>;
interrupts = <0 445 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_ABOX>;
sysmmu,no-suspend;
sysmmu,tlb_property =
<(SYSMMU_PUBLIC_NO_PREFETCH | SYSMMU_BL1) SYSMMU_NOID>;
#iommu-cells = <0>;
};
abox_gic: abox_gic@0x13EF0000 {
compatible = "samsung,abox_gic";
reg = <0x0 0x13EF1000 0x1000>, <0x0 0x13EF2000 0x1004>;
reg-names = "gicd", "gicc";
interrupts = <0 442 0>;
};
abox: abox@0x13E50000 {
compatible = "samsung,abox";
reg = <0x0 0x13E50000 0x10000>, <0x0 0x13E20000 0x10000>, <0x0 0x13F00000 0x31000>;
reg-names = "sfr", "sysreg", "sram";
#address-cells = <2>;
#size-cells = <1>;
ranges;
pinctrl-names = "default", "idle";
pinctrl-0 = <&aud_codec_mclk &aud_codec_bus &aud_spk_bus
&aud_fm_bus &aud_bt_bus &aud_cdma_bus>;
pinctrl-1 = <&aud_codec_mclk_idle &aud_codec_bus_idle &aud_spk_bus_idle
&aud_fm_bus_idle &aud_bt_bus_idle &aud_cdma_bus_idle>;
samsung,power-domain = <&pd_abox>;
ipc_tx_offset = <0x30000>;
ipc_rx_offset = <0x30300>;
ipc_tx_ack_offset = <0x302FC>;
ipc_rx_ack_offset = <0x305FC>;
mailbox_offset = <0x30600>;
abox_gic = <&abox_gic>;
vts = <&vts>;
clocks = <&clock PLL_OUT_AUD>, <&clock DFS_ABOX>, <&clock DOUT_CLK_ABOX_AUDIF>,
<&clock DOUT_CLK_ABOX_UAIF0>, <&clock DOUT_CLK_ABOX_UAIF1>,
<&clock DOUT_CLK_ABOX_UAIF2>, <&clock DOUT_CLK_ABOX_UAIF3>,
<&clock DOUT_CLK_ABOX_UAIF4>, <&clock DOUT_CLK_ABOX_DSIF>,
<&clock DOUT_CLK_ABOX_DMIC>, <&clock GATE_UAIF0>,
<&clock GATE_UAIF1>, <&clock GATE_UAIF2>,
<&clock GATE_UAIF3>, <&clock GATE_UAIF4>,
<&clock GATE_DSIF>;
clock-names = "pll", "ca7", "audif",
"bclk0", "bclk1",
"bclk2", "bclk3",
"bclk4", "bclk5",
"dmic", "bclk0_gate",
"bclk1_gate", "bclk2_gate",
"bclk3_gate", "bclk4_gate",
"bclk5_gate";
iommus = <&sysmmu_aud0>;
pm_qos_int = <533000 400000 0 0 0>;
abox_rdma_0: abox_rdma@0x13E51000 {
compatible = "samsung,abox-rdma";
reg = <0x0 0x13E51000 0x100>;
abox = <&abox>;
id = <0>;
type = "normal";
};
abox_rdma_1: abox_rdma@0x13E51100 {
compatible = "samsung,abox-rdma";
reg = <0x0 0x13E51100 0x100>;
abox = <&abox>;
id = <1>;
type = "normal";
};
abox_rdma_2: abox_rdma@0x13E51200 {
compatible = "samsung,abox-rdma";
reg = <0x0 0x13E51200 0x100>;
abox = <&abox>;
id = <2>;
type = "normal";
};
abox_rdma_3: abox_rdma@0x13E51300 {
compatible = "samsung,abox-rdma";
reg = <0x0 0x13E51300 0x100>;
abox = <&abox>;
id = <3>;
type = "normal";
};
abox_rdma_4: abox_rdma@0x13E51400 {
compatible = "samsung,abox-rdma";
reg = <0x0 0x13E51400 0x100>;
abox = <&abox>;
id = <4>;
type = "call";
};
abox_rdma_5: abox_rdma@0x13E51500 {
compatible = "samsung,abox-rdma";
reg = <0x0 0x13E51500 0x100>;
abox = <&abox>;
id = <5>;
type = "compress";
};
abox_rdma_6: abox_rdma@0x13E51600 {
compatible = "samsung,abox-rdma";
reg = <0x0 0x13E51600 0x100>;
abox = <&abox>;
id = <6>;
type = "realtime";
};
abox_rdma_7: abox_rdma@0x13E51700 {
compatible = "samsung,abox-rdma";
reg = <0x0 0x13E51700 0x100>;
abox = <&abox>;
id = <7>;
type = "realtime";
};
abox_wdma_0: abox_wdma@0x13E52000 {
compatible = "samsung,abox-wdma";
reg = <0x0 0x13E52000 0x100>;
abox = <&abox>;
id = <0>;
type = "normal";
};
abox_wdma_1: abox_wdma@0x13E52100 {
compatible = "samsung,abox-wdma";
reg = <0x0 0x13E52100 0x100>;
abox = <&abox>;
id = <1>;
type = "normal";
};
abox_wdma_2: abox_wdma@0x13E52200 {
compatible = "samsung,abox-wdma";
reg = <0x0 0x13E52200 0x100>;
abox = <&abox>;
id = <2>;
type = "call";
};
abox_wdma_3: abox_wdma@0x13E52300 {
compatible = "samsung,abox-wdma";
reg = <0x0 0x13E52300 0x100>;
abox = <&abox>;
id = <3>;
type = "realtime";
};
abox_wdma_4: abox_wdma@0x13E52400 {
compatible = "samsung,abox-wdma";
reg = <0x0 0x13E52400 0x100>;
abox = <&abox>;
id = <4>;
type = "vi-sensing";
};
abox_effect: abox_effect@0x13F2E000 {
compatible = "samsung,abox-effect";
reg = <0x0 0x13F2E000 0x1000>;
reg-names = "reg";
abox = <&abox>;
};
ext_bin_0: ext_bin@0 {
status = "okay";
samsung,name = "dsm.bin";
samsung,area = <1>; /* 0:SRAM, 1:DRAM, 2:VSS */
samsung,offset = <0x502000>;
};
ext_bin_1: ext_bin@1 {
status = "okay";
samsung,name = "AP_AUDIO_SLSI.bin";
samsung,area = <1>;
samsung,offset = <0x7F4000>;
};
ext_bin_2: ext_bin@2 {
status = "okay";
samsung,name = "APBargeIn_AUDIO_SLSI.bin";
samsung,area = <1>;
samsung,offset = <0x7F1000>;
};
ext_bin_3: ext_bin@3 {
status = "okay";
samsung,name = "SoundBoosterParam.bin";
samsung,area = <1>;
samsung,offset = <0x4FC000>;
};
ext_bin_4: ext_bin@4 {
status = "disabled";
samsung,name = "dummy.bin";
samsung,area = <1>;
samsung,offset = <0x800000>;
};
ext_bin_5: ext_bin@5 {
status = "disabled";
samsung,name = "dummy.bin";
samsung,area = <1>;
samsung,offset = <0x800000>;
};
ext_bin_6: ext_bin@6 {
status = "disabled";
samsung,name = "dummy.bin";
samsung,area = <1>;
samsung,offset = <0x800000>;
};
ext_bin_7: ext_bin@7 {
status = "disabled";
samsung,name = "dummy.bin";
samsung,area = <1>;
samsung,offset = <0x800000>;
};
};
mailbox_vts: mailbox@0x14040000 {
compatible = "samsung,mailbox-asoc";
reg = <0x0 0x14040000 0x10000>;
reg-names = "sfr";
interrupts = <0 23 0>;
interrupt-controller;
#interrupt-cells = <1>;
};
vts: vts@0x14020000 {
compatible = "samsung,vts";
reg = <0x0 0x14020000 0x10000>, <0x0 0x14100000 0x59800>, <0x0 0x14070000 0x8>;
reg-names = "sfr", "sram", "dmic";
pinctrl-names = "dmic_default", "amic_default", "idle";
pinctrl-0 = <&dmic_bus_clk &dmic_pdm>;
pinctrl-1 = <&amic_bus_clk &amic_pdm>;
pinctrl-2 = <&mic_bus_clk_idle &dmic_pdm_idle &amic_pdm_idle>;
samsung,power-domain = <&pd_vts>;
clocks = <&clock GATE_OSC_VTS>, <&clock DOUT_CLK_VTS_DMIC>,
<&clock DOUT_CLK_VTS_DMICIF>, <&clock DOUT_CLK_VTS_DMIC_DIV2>;
clock-names = "rco", "dmic", "dmic_if", "dmic_sync";
mailbox = <&mailbox_vts>;
interrupt-parent = <&mailbox_vts>;
interrupts = <0>, <1>, <2>, <3>, <4>, <5>;
interrupt-names = "error", "boot_completed", "ipc_received", "voice_triggered", "trigger_period_elapsed", "record_period_elapsed";
};
vts_dma0: vts_dma0 {
compatible = "samsung,vts-dma";
vts = <&vts>;
id = <0>;
type = "vts-trigger";
};
vts_dma1: vts_dma1 {
compatible = "samsung,vts-dma";
vts = <&vts>;
id = <1>;
type = "vts-record";
};
pcie0@116A0000 {
compatible = "samsung,exynos-pcie";
gpios = <&gpj1 2 0x1 /* PERST */>;
reg = <0x0 0x116A0000 0x1000 /* elbi base */
0x0 0x116D0000 0x1000 /* phy base */
0x0 0x11421044 0x30 /* sysreg base */
0x0 0x11700000 0x1000 /* DBI base */
0x0 0x116C0000 0x1FC /* phy pcs base */
0x0 0x11BFF000 0x1000>; /* configuration space */
reg-names = "elbi", "phy", "sysreg", "dbi", "pcs", "config";
interrupts = <0 345 0>; /* IRQ_PULSE */
samsung,syscon-phandle = <&pmu_system_controller>;
samsung,sysreg-phandle = <&sysreg_fsys1_controller>;
pinctrl-names = "default", "clkreq_output";
pinctrl-0 = <&pcie0_clkreq &pcie0_perst &cfg_wlanen>;
pinctrl-1 = <&pcie0_clkreq_output &pcie0_perst>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
ranges = <0x82000000 0 0x11800000 0 0x11800000 0 0x400000>; /* non-prefetchable memory */
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic 0 345 0x4>;
ip-ver = <0x889500>;
num-lanes = <1>;
msi-base = <200>;
ch-num = <0>;
pcie-clk-num = <0>;
phy-clk-num = <0>;
pcie-irq-toe-enable = <0>;
pcie-irq-toe-num = <10>;
pcie-irq-msi-cp-enable = <0>;
pcie-irq-msi-cp-base-bit = <16>;
pcie-irq-msi-cp-num = <4>;
pcie-pm-qos-int = <0>;
use-cache-coherency = "true";
use-msi = "false";
use-sicd = "true";
status = "disabled";
};
pcie1@116B0000 {
compatible = "samsung,exynos8895-pcie";
gpios = <&gpj1 6 0x1 /* PERST */>;
reg = <0x0 0x116B0000 0x1000 /* elbi base */
0x0 0x116D0000 0x1000 /* phy base */
0x0 0x15601044 0x30 /* sysreg base */
0x0 0x11710000 0x1000 /* DBI base */
0x0 0x116C0000 0x1FC /* phy pcs base */
0x0 0x11C00000 0x1000>; /* configuration space */
reg-names = "elbi", "phy", "sysreg", "dbi", "pcs", "config";
interrupts = <0 346 0>; /* IRQ_PULSE */
clocks = <&clock 770>;
clock-names = "gate_pciewifi1";
samsung,syscon-phandle = <&pmu_system_controller>;
pinctrl-names = "default", "clkreq_output";
pinctrl-0 = <&pcie1_clkreq &pcie1_perst>;
pinctrl-1 = <&pcie1_clkreq_output &pcie1_perst>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
ranges = <0x81000000 0 0 0 0x11C01000 0 0x00010000 /* downstream I/O */
0x82000000 0 0x11C11000 0 0x11C11000 0 0x3EEFFF>; /* non-prefetchable memory */
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic 0 346 0x4>;
ip-ver = <0x889500>;
num-lanes = <1>;
msi-base = <200>;
ch-num = <1>;
pcie-clk-num = <1>;
phy-clk-num = <0>;
pcie-pm-qos-int = <0>;
use-cache-coherency = "true";
use-msi = "false";
use-sicd = "true";
status = "disabled";
};
/* Secure log */
seclog {
compatible = "samsung,exynos-seclog";
interrupts = <0 68 0>;
};
/* Secure RPMB */
ufs-srpmb {
compatible = "samsung,ufs-srpmb";
interrupts = <0 69 0>;
};
/* tbase */
tee {
compatible = "samsung,exynos-tee";
interrupts = <0 233 0>;
};
fips-fmp {
compatible = "samsung,exynos-fips-fmp";
};
mfc_0: mfc0@13CE0000 {
compatible = "samsung,mfc-v6";
reg = <0x0 0x13CE0000 0x10000>;
interrupts = <0 208 0>;
clock-names = "aclk_mfc";
clocks = <&clock GATE_MFC>;
iommus = <&sysmmu_mfc0_0>, <&sysmmu_mfc0_1>;
samsung,power-domain = <&pd_mfc>;
status = "ok";
ip_ver = <15>;
clock_rate = <400000000>;
min_rate = <100000>;
num_qos_steps = <7>;
max_mb = <4757298>;
mfc_qos_table {
mfc_qos_variant_0 {
thrd_mb = <0>;
freq_mfc = <89000>;
freq_int = <107000>;
freq_mif = <286000>;
freq_cpu = <0>;
freq_kfc = <0>;
mo_value = <0>;
time_fw = <1064>;
};
mfc_qos_variant_1 {
thrd_mb = <260958>;
freq_mfc = <267000>;
freq_int = <267000>;
freq_mif = <421000>;
freq_cpu = <0>;
freq_kfc = <0>;
mo_value = <0>;
time_fw = <447>;
};
mfc_qos_variant_2 {
thrd_mb = <544847>;
freq_mfc = <267000>;
freq_int = <267000>;
freq_mif = <421000>;
freq_cpu = <0>;
freq_kfc = <0>;
mo_value = <0>;
time_fw = <447>;
};
mfc_qos_variant_3 {
thrd_mb = <1184955>;
freq_mfc = <400000>;
freq_int = <400000>;
freq_mif = <676000>;
freq_cpu = <0>;
freq_kfc = <0>;
mo_value = <0>;
time_fw = <304>;
};
mfc_qos_variant_4 {
thrd_mb = <1905849>;
freq_mfc = <667000>;
freq_int = <533000>;
freq_mif = <1014000>;
freq_cpu = <0>;
freq_kfc = <0>;
mo_value = <0>;
time_fw = <211>;
};
mfc_qos_variant_5 {
thrd_mb = <2733973>;
freq_mfc = <666000>;
freq_int = <533000>;
freq_mif = <1014000>;
freq_cpu = <0>;
freq_kfc = <0>;
mo_value = <1>;
time_fw = <211>;
};
mfc_qos_variant_6 {
thrd_mb = <3272690>;
freq_mfc = <666000>;
freq_int = <533000>;
freq_mif = <1794000>;
freq_cpu = <0>;
freq_kfc = <0>;
mo_value = <1>;
time_fw = <171>;
};
};
};
iommu-domain_mfc {
compatible = "samsung,exynos-iommu-bus";
#address-cells = <2>;
#size-cells = <1>;
domain-clients = <&mfc_0>;
};
sysmmu_mfc0_0: sysmmu@0x13c80000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13c80000 0x3000>;
interrupts = <0 198 0>, <0 199 0>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_MFCD0>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x13C90000>;
sysmmu,tlb_property =
<(SYSMMU_PUBLIC_NO_PREFETCH | SYSMMU_BL4) SYSMMU_NOID>;
#iommu-cells = <0>;
};
sysmmu_mfc0_1: sysmmu@0x13ca0000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13ca0000 0x3000>;
interrupts = <0 201 0>, <0 202 0>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_MFCD1>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x13CB0000>;
sysmmu,tlb_property =
<(SYSMMU_PUBLIC_NO_PREFETCH | SYSMMU_BL4) SYSMMU_NOID>;
#iommu-cells = <0>;
};
score: score@1394C0000 {
compatible = "samsung,score";
reg = <0x0 0x134C0000 0x20000>;
interrupts = <0 227 0>;
clocks = <&clock GATE_SCORE>;
clock-names = "dsp";
samsung,power-domain = <&pd_dsp>;
iommus = <&sysmmu_score0>;
};
iommu-domain_score {
compatible = "samsung,exynos-iommu-bus";
#address-cells = <2>;
#size-cells = <1>;
ranges;
domain-clients = <&score>;
};
sysmmu_score0: sysmmu@13430000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13430000 0x3000>;
interrupts = <0 230 0>, <0 231 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_SCORE>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x13450000>;
sysmmu,tlb_property =
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL1) SYSMMU_ID_MASK(0x0, 0x1)>,
<(SYSMMU_PUBLIC_NO_PREFETCH | SYSMMU_BL8) SYSMMU_NOID>;
#iommu-cells = <0>;
};
fimc_is: fimc_is@13140000 {
compatible = "samsung,exynos5-fimc-is";
#pb-id-cells = <6>;
reg = <0x0 0x12CE0000 0x10000>, /* CSIS-DMA */
<0x0 0x13030000 0x10000>, /* FIMC-3AAW */
<0x0 0x13130000 0x10000>, /* FIMC-3AA */
<0x0 0x13040000 0x10000>, /* FIMC_ISPLP */
<0x0 0x13140000 0x10000>, /* FIMC_ISPHQ */
<0x0 0x12C40000 0x10000>, /* FIMC_TPU0 */
<0x0 0x12C90000 0x10000>, /* FIMC_TPU1 */
<0x0 0x12C50000 0x10000>, /* MC_SCALER */
<0x0 0x12C60000 0x10000>, /* FIMC-VRA (Set A) */
<0x0 0x12C70000 0x10000>, /* FIMC-VRA (Set B) */
<0x0 0x12F00000 0x10000>, /* DCP */
<0x0 0x14300000 0x10000>; /* SRDZ */
interrupts = <0 294 0>, /* 3AAW_0 */
<0 295 0>, /* 3AAW_1 */
<0 301 0>, /* 3AA_0 */
<0 302 0>, /* 3AA_1 */
<0 296 0>, /* ISPLP_0 */
<0 297 0>, /* ISPLP_1 */
<0 303 0>, /* ISPHQ_0 */
<0 304 0>, /* ISPHQ_1 */
<0 272 0>, /* TPU0_0 */
<0 273 0>, /* TPU0_1 */
<0 284 0>, /* TPU1_0 */
<0 285 0>, /* TPU1_1 */
<0 274 0>, /* MC_SC_0 */
<0 275 0>, /* MC_SC_1 */
<0 276 0>, /* VRA_0 */
<0 277 0>, /* VRA_1 */
<0 242 0>, /* DCP_0 */
<0 243 0>, /* DCP_1 */
<0 85 0>; /* SRDZ */
samsung,power-domain = <&pd_dcam>;
clocks = <&clock GATE_ISP_EWGEN_ISPHQ>,
<&clock GATE_IS_ISPHQ_3AA>,
<&clock GATE_IS_ISPHQ_ISPHQ>,
<&clock GATE_IS_ISPHQ_QE_3AA>,
<&clock GATE_IS_ISPHQ_QE_ISPHQ>,
<&clock GATE_ISPHQ_CMU_ISPHQ>,
<&clock GATE_PMU_ISPHQ>,
<&clock GATE_SYSREG_ISPHQ>,
<&clock UMUX_CLKCMU_ISPHQ_BUS>,
<&clock GATE_ISP_EWGEN_ISPLP>,
<&clock GATE_IS_ISPLP_3AAW>,
<&clock GATE_IS_ISPLP_ISPLP>,
<&clock GATE_IS_ISPLP_QE_3AAW>,
<&clock GATE_IS_ISPLP_QE_ISPLP>,
<&clock GATE_IS_ISPLP_SMMU_ISPLP>,
<&clock GATE_IS_ISPLP_BCM_ISPLP>,
<&clock GATE_BTM_ISPLP>,
<&clock GATE_ISPLP_CMU_ISPLP>,
<&clock GATE_PMU_ISPLP>,
<&clock GATE_SYSREG_ISPLP>,
<&clock UMUX_CLKCMU_ISPLP_BUS>,
<&clock GATE_ISP_EWGEN_CAM>,
<&clock GATE_IS_CAM_CSIS0>,
<&clock GATE_IS_CAM_CSIS1>,
<&clock GATE_IS_CAM_CSIS2>,
<&clock GATE_IS_CAM_CSIS3>,
<&clock GATE_IS_CAM_MC_SCALER>,
<&clock GATE_IS_CAM_CSISX4_DMA>,
<&clock GATE_IS_CAM_SYSMMU_CAM0>,
<&clock GATE_IS_CAM_SYSMMU_CAM1>,
<&clock GATE_IS_CAM_BCM_CAM0>,
<&clock GATE_IS_CAM_BCM_CAM1>,
<&clock GATE_IS_CAM_TPU0>,
<&clock GATE_IS_CAM_VRA>,
<&clock GATE_IS_CAM_QE_TPU0>,
<&clock GATE_IS_CAM_QE_VRA>,
<&clock GATE_IS_CAM_BNS>,
<&clock GATE_IS_CAM_QE_CSISX4>,
<&clock GATE_IS_CAM_QE_TPU1>,
<&clock GATE_IS_CAM_TPU1>,
<&clock GATE_BTM_CAMD0>,
<&clock GATE_BTM_CAMD1>,
<&clock GATE_CAM_CMU_CAM>,
<&clock GATE_PMU_CAM>,
<&clock GATE_SYSREG_CAM>,
<&clock UMUX_CLKCMU_CAM_BUS>,
<&clock UMUX_CLKCMU_CAM_TPU0>,
<&clock UMUX_CLKCMU_CAM_VRA>,
<&clock UMUX_CLKCMU_CAM_TPU1>,
<&clock GATE_DCP>,
<&clock GATE_BTM_DCAM>,
<&clock GATE_DCAM_CMU_DCAM>,
<&clock GATE_PMU_DCAM>,
<&clock GATE_BCM_DCAM>,
<&clock GATE_SYSREG_DCAM>,
<&clock UMUX_CLKCMU_DCAM_BUS>,
<&clock UMUX_CLKCMU_DCAM_IMGD>,
<&clock GATE_SRDZ>,
<&clock GATE_BTM_SRDZ>,
<&clock GATE_PMU_SRDZ>,
<&clock GATE_BCM_SRDZ>,
<&clock GATE_SMMU_SRDZ>,
<&clock GATE_SRDZ_CMU_SRDZ>,
<&clock GATE_SYSREG_SRDZ>,
<&clock UMUX_CLKCMU_SRDZ_BUS>,
<&clock UMUX_CLKCMU_SRDZ_IMGD>,
<&clock CIS_CLK0>,
<&clock CIS_CLK1>,
<&clock CIS_CLK2>,
<&clock CIS_CLK3>,
<&clock GATE_DFTMUX_TOP_CIS_CLK0>,
<&clock GATE_DFTMUX_TOP_CIS_CLK1>,
<&clock GATE_DFTMUX_TOP_CIS_CLK2>,
<&clock GATE_DFTMUX_TOP_CIS_CLK3>;
clock-names = "GATE_ISP_EWGEN_ISPHQ",
"GATE_IS_ISPHQ_3AA",
"GATE_IS_ISPHQ_ISPHQ",
"GATE_IS_ISPHQ_QE_3AA",
"GATE_IS_ISPHQ_QE_ISPHQ",
"GATE_ISPHQ_CMU_ISPHQ",
"GATE_PMU_ISPHQ",
"GATE_SYSREG_ISPHQ",
"UMUX_CLKCMU_ISPHQ_BUS",
"GATE_ISP_EWGEN_ISPLP",
"GATE_IS_ISPLP_3AAW",
"GATE_IS_ISPLP_ISPLP",
"GATE_IS_ISPLP_QE_3AAW",
"GATE_IS_ISPLP_QE_ISPLP",
"GATE_IS_ISPLP_SMMU_ISPLP",
"GATE_IS_ISPLP_BCM_ISPLP",
"GATE_BTM_ISPLP",
"GATE_ISPLP_CMU_ISPLP",
"GATE_PMU_ISPLP",
"GATE_SYSREG_ISPLP",
"UMUX_CLKCMU_ISPLP_BUS",
"GATE_ISP_EWGEN_CAM",
"GATE_IS_CAM_CSIS0",
"GATE_IS_CAM_CSIS1",
"GATE_IS_CAM_CSIS2",
"GATE_IS_CAM_CSIS3",
"GATE_IS_CAM_MC_SCALER",
"GATE_IS_CAM_CSISX4_DMA",
"GATE_IS_CAM_SYSMMU_CAM0",
"GATE_IS_CAM_SYSMMU_CAM1",
"GATE_IS_CAM_BCM_CAM0",
"GATE_IS_CAM_BCM_CAM1",
"GATE_IS_CAM_TPU0",
"GATE_IS_CAM_VRA",
"GATE_IS_CAM_QE_TPU0",
"GATE_IS_CAM_QE_VRA",
"GATE_IS_CAM_BNS",
"GATE_IS_CAM_QE_CSISX4",
"GATE_IS_CAM_QE_TPU1",
"GATE_IS_CAM_TPU1",
"GATE_BTM_CAMD0",
"GATE_BTM_CAMD1",
"GATE_CAM_CMU_CAM",
"GATE_PMU_CAM",
"GATE_SYSREG_CAM",
"UMUX_CLKCMU_CAM_BUS",
"UMUX_CLKCMU_CAM_TPU0",
"UMUX_CLKCMU_CAM_VRA",
"UMUX_CLKCMU_CAM_TPU1",
"GATE_DCP",
"GATE_BTM_DCAM",
"GATE_DCAM_CMU_DCAM",
"GATE_PMU_DCAM",
"GATE_BCM_DCAM",
"GATE_SYSREG_DCAM",
"UMUX_CLKCMU_DCAM_BUS",
"UMUX_CLKCMU_DCAM_IMGD",
"GATE_SRDZ",
"GATE_BTM_SRDZ",
"GATE_PMU_SRDZ",
"GATE_BCM_SRDZ",
"GATE_SMMU_SRDZ",
"GATE_SRDZ_CMU_SRDZ",
"GATE_SYSREG_SRDZ",
"UMUX_CLKCMU_SRDZ_BUS",
"UMUX_CLKCMU_SRDZ_IMGD",
"CIS_CLK0",
"CIS_CLK1",
"CIS_CLK2",
"CIS_CLK3",
"MUX_CIS_CLK0",
"MUX_CIS_CLK1",
"MUX_CIS_CLK2",
"MUX_CIS_CLK3";
status = "ok";
iommus = <&sysmmu_cam0>, <&sysmmu_cam1>, <&sysmmu_isp>, <&sysmmu_dcam>;
#cooling-cells = <2>; /* min followed by max */
};
mipi_phy_csis0_m4s4_top: dphy_m4s4_csis0@0x12C21050 {
compatible = "samsung,mipi-phy-m4s4-top";
samsung,pmu-syscon = <&pmu_system_controller>;
isolation = <0x70C>; /* PMU address offset */
reg = <0x0 0x12C21050 0x4>; /* SYSREG address for reset */
reset = <0>; /* reset bit */
owner = <1>; /* 0: DSI, 1: CSI */
#phy-cells = <1>;
};
mipi_phy_csis2_m4s4_mod: dphy_m4s4_csis2@0x12C21050 {
compatible = "samsung,mipi-phy-m4s4-mod";
samsung,pmu-syscon = <&pmu_system_controller>;
isolation = <0x710>; /* PMU address offset */
reset = <1>; /* reset bit */
owner = <1>; /* 0: DSI, 1: CSI */
#phy-cells = <1>;
};
mipi_phy_csis1_m1s2s2: dphy_m1s2s2_csis1@0x12C21050 {
compatible = "samsung,mipi-phy-m1s2s2";
samsung,pmu-syscon = <&pmu_system_controller>;
isolation = <0x730>; /* PMU address offset */
reset = <2>; /* reset bit */
owner = <1>; /* 0: DSI, 1: CSI */
#phy-cells = <1>;
};
mipi_phy_csis3_m1s2s2: dphy_m1s2s2_csis3@0x12C21050 {
compatible = "samsung,mipi-phy-m1s2s2";
samsung,pmu-syscon = <&pmu_system_controller>;
isolation = <0x730>; /* PMU address offset */
reset = <3>; /* reset bit */
owner = <1>; /* 0: DSI, 1: CSI */
#phy-cells = <1>;
};
fimc_is_sensor0: fimc_is_sensor@12CA0000 {
/* BACK/CSIS0 */
compatible = "samsung,exynos5-fimc-is-sensor";
#pb-id-cells = <4>;
reg = <0x0 0x12CA0000 0x10000>, /* MIPI-CSI0 */
<0x0 0x12C80000 0x10000>; /* FIMC-BNS */
interrupts = <0 264 0>, /* MIPI-CSI0 */
<0 291 0>; /* FIMC-BNS */
samsung,power-domain = <&pd_cam>;
phys = <&mipi_phy_csis0_m4s4_top 0>;
phy-names = "csis_dphy";
clocks = <&clock CIS_CLK0>,
<&clock CIS_CLK1>,
<&clock CIS_CLK2>,
<&clock CIS_CLK3>,
<&clock GATE_DFTMUX_TOP_CIS_CLK0>,
<&clock GATE_DFTMUX_TOP_CIS_CLK1>,
<&clock GATE_DFTMUX_TOP_CIS_CLK2>,
<&clock GATE_DFTMUX_TOP_CIS_CLK3>,
<&clock GATE_IS_CAM_CSIS0>,
<&clock GATE_IS_CAM_CSIS1>,
<&clock GATE_IS_CAM_CSIS2>,
<&clock GATE_IS_CAM_CSIS3>;
clock-names = "CIS_CLK0",
"CIS_CLK1",
"CIS_CLK2",
"CIS_CLK3",
"MUX_CIS_CLK0",
"MUX_CIS_CLK1",
"MUX_CIS_CLK2",
"MUX_CIS_CLK3",
"GATE_IS_CAM_CSIS0",
"GATE_IS_CAM_CSIS1",
"GATE_IS_CAM_CSIS2",
"GATE_IS_CAM_CSIS3";
iommus = <&sysmmu_cam0>;
};
fimc_is_sensor1: fimc_is_sensor@12CB0000 {
compatible = "samsung,exynos5-fimc-is-sensor";
#pb-id-cells = <4>;
reg = <0x0 0x12CB0000 0x10000>, /* MIPI-CSI1 */
<0x0 0x12C80000 0x10000>; /* FIMC-BNS */
interrupts = <0 266 0>, /* MIPI-CSI1 */
<0 291 0>; /* FIMC-BNS */
samsung,power-domain = <&pd_cam>;
phys = <&mipi_phy_csis1_m1s2s2 0>;
phy-names = "csis_dphy";
clocks = <&clock CIS_CLK0>,
<&clock CIS_CLK1>,
<&clock CIS_CLK2>,
<&clock CIS_CLK3>,
<&clock GATE_DFTMUX_TOP_CIS_CLK0>,
<&clock GATE_DFTMUX_TOP_CIS_CLK1>,
<&clock GATE_DFTMUX_TOP_CIS_CLK2>,
<&clock GATE_DFTMUX_TOP_CIS_CLK3>,
<&clock GATE_IS_CAM_CSIS0>,
<&clock GATE_IS_CAM_CSIS1>,
<&clock GATE_IS_CAM_CSIS2>,
<&clock GATE_IS_CAM_CSIS3>;
clock-names = "CIS_CLK0",
"CIS_CLK1",
"CIS_CLK2",
"CIS_CLK3",
"MUX_CIS_CLK0",
"MUX_CIS_CLK1",
"MUX_CIS_CLK2",
"MUX_CIS_CLK3",
"GATE_IS_CAM_CSIS0",
"GATE_IS_CAM_CSIS1",
"GATE_IS_CAM_CSIS2",
"GATE_IS_CAM_CSIS3";
iommus = <&sysmmu_cam0>;
};
fimc_is_sensor2: fimc_is_sensor@12CC0000 {
/* DEPTH/CSIS2 */
compatible = "samsung,exynos5-fimc-is-sensor";
#pb-id-cells = <4>;
reg = <0x0 0x12CC0000 0x10000>, /* MIPI-CSI2 */
<0x0 0x12C80000 0x10000>; /* FIMC-BNS */
interrupts = <0 268 0>, /* MIPI-CSI2 */
<0 291 0>; /* FIMC-BNS */
samsung,power-domain = <&pd_cam>;
phys = <&mipi_phy_csis2_m4s4_mod 0>;
phy-names = "csis_dphy";
clocks = <&clock CIS_CLK0>,
<&clock CIS_CLK1>,
<&clock CIS_CLK2>,
<&clock CIS_CLK3>,
<&clock GATE_DFTMUX_TOP_CIS_CLK0>,
<&clock GATE_DFTMUX_TOP_CIS_CLK1>,
<&clock GATE_DFTMUX_TOP_CIS_CLK2>,
<&clock GATE_DFTMUX_TOP_CIS_CLK3>,
<&clock GATE_IS_CAM_CSIS0>,
<&clock GATE_IS_CAM_CSIS1>,
<&clock GATE_IS_CAM_CSIS2>,
<&clock GATE_IS_CAM_CSIS3>;
clock-names = "CIS_CLK0",
"CIS_CLK1",
"CIS_CLK2",
"CIS_CLK3",
"MUX_CIS_CLK0",
"MUX_CIS_CLK1",
"MUX_CIS_CLK2",
"MUX_CIS_CLK3",
"GATE_IS_CAM_CSIS0",
"GATE_IS_CAM_CSIS1",
"GATE_IS_CAM_CSIS2",
"GATE_IS_CAM_CSIS3";
iommus = <&sysmmu_cam0>;
};
fimc_is_sensor3: fimc_is_sensor@112CD000 {
/* IRIS/CSIS3 */
compatible = "samsung,exynos5-fimc-is-sensor";
#pb-id-cells = <4>;
reg = <0x0 0x12CD0000 0x10000>, /* MIPI-CSI3 */
<0x0 0x12C80000 0x10000>; /* FIMC-BNS */
interrupts = <0 270 0>, /* MIPI-CSI3 */
<0 291 0>; /* FIMC-BNS */
samsung,power-domain = <&pd_cam>;
phys = <&mipi_phy_csis3_m1s2s2 0>;
phy-names = "csis_dphy";
clocks = <&clock CIS_CLK0>,
<&clock CIS_CLK1>,
<&clock CIS_CLK2>,
<&clock CIS_CLK3>,
<&clock GATE_DFTMUX_TOP_CIS_CLK0>,
<&clock GATE_DFTMUX_TOP_CIS_CLK1>,
<&clock GATE_DFTMUX_TOP_CIS_CLK2>,
<&clock GATE_DFTMUX_TOP_CIS_CLK3>,
<&clock GATE_IS_CAM_CSIS0>,
<&clock GATE_IS_CAM_CSIS1>,
<&clock GATE_IS_CAM_CSIS2>,
<&clock GATE_IS_CAM_CSIS3>;
clock-names = "CIS_CLK0",
"CIS_CLK1",
"CIS_CLK2",
"CIS_CLK3",
"MUX_CIS_CLK0",
"MUX_CIS_CLK1",
"MUX_CIS_CLK2",
"MUX_CIS_CLK3",
"GATE_IS_CAM_CSIS0",
"GATE_IS_CAM_CSIS1",
"GATE_IS_CAM_CSIS2",
"GATE_IS_CAM_CSIS3";
iommus = <&sysmmu_cam0>;
};
iommu-domain_cam {
compatible = "samsung,exynos-iommu-bus";
#address-cells = <2>;
#size-cells = <1>;
ranges;
domain-clients = <&fimc_is>, <&fimc_is_sensor0>, <&fimc_is_sensor1>,
<&fimc_is_sensor2>, <&fimc_is_sensor3>;
};
sysmmu_cam0: sysmmu@12D10000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x12D10000 0x3000>;
interrupts = <0 279 0>, <0 280 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_IS_CAM_SYSMMU_CAM0>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x12D00000>;
/* Dual CAM scenario */
sysmmu,tlb_property =
/* 0~9 : CSIS0~3 */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x0)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x4)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x8)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x10)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x14)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x18)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x20)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x24)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x28)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x30)>,
/* 10~13 : TPU1_ID */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL4) SYSMMU_ID(0x7)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x3)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x7)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0xB)>,
/* 14~17 : TPU0_ID */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL4) SYSMMU_ID(0x5)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x1)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x5)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x9)>,
/* 18~19 : VRA Ch0 */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL4) SYSMMU_ID(0x6)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL4) SYSMMU_ID(0x6)>,
/* 20~21 : TPU1_ADDR */
<(SYSMMU_PRIV_ADDR_PREFETCH_ASCENDING_READ | SYSMMU_BL4) SYSMMU_NOID>,
<(SYSMMU_PRIV_ADDR_PREFETCH_ASCENDING_READ | SYSMMU_BL4) SYSMMU_NOID>,
/* 22~23 : TPU0_ADDR */
<(SYSMMU_PRIV_ADDR_PREFETCH_ASCENDING_READ | SYSMMU_BL4) SYSMMU_NOID>,
<(SYSMMU_PRIV_ADDR_PREFETCH_ASCENDING_READ | SYSMMU_BL4) SYSMMU_NOID>,
/* 24~27 : VRA Ch1 */
<(SYSMMU_PUBLIC_PREFETCH_ASCENDING | SYSMMU_BL1) SYSMMU_NOID>;
#iommu-cells = <0>;
};
sysmmu_cam1: sysmmu@12D20000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x12D20000 0x3000>;
interrupts = <0 282 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_IS_CAM_SYSMMU_CAM1>;
sysmmu,tlb_property =
/* 0~17 : MCScaler */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x0)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x1)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x2)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x0)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x1)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x2)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x3)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x4)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x5)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x6)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x7)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x8)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x9)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xA)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xB)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xC)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xD)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xE)>,
/* 18~19 : SBB */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x3)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xF)>;
#iommu-cells = <0>;
};
sysmmu_isp: sysmmu@13050000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x13050000 0x3000>;
interrupts = <0 298 0>, <0 299 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_IS_ISPLP_SMMU_ISPLP>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x13060000>;
sysmmu,tlb_property =
/* 0~11 : 3AAW */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x0)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_WRITE | SYSMMU_BL2) SYSMMU_ID(0x0)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_WRITE | SYSMMU_BL2) SYSMMU_ID(0x4)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x24)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xC)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x20)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x8)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x18)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL2) SYSMMU_ID(0x4)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x14)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x1C)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x10)>,
/* 12~14 : ISPLP */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x2)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x1)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x5)>,
/* 15~20 : 3AA */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x2)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x2)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xA)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x22)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x12)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x1A)>,
/* 21~28 : ISPHQ */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x6)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x1E)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL1) SYSMMU_ID(0x26)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x26)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x16)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x2E)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0x6)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL1) SYSMMU_ID(0xE)>,
/* 29 : 3AAW/ISPLP/ISPHQ */
<(SYSMMU_PUBLIC_NO_PREFETCH | SYSMMU_BL2) SYSMMU_NOID>;
#iommu-cells = <0>;
};
sysmmu_dcam: sysmmu@14230000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x0 0x14230000 0x3000>;
interrupts = <0 248 0>, <0 249 0>;
qos = <15>;
clock-names = "aclk";
clocks = <&clock GATE_SMMU_SRDZ>;
sysmmu,secure-irq;
sysmmu,secure_base = <0x14250000>;
sysmmu,tlb_property =
/* 0~10 : DCP */
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL16) SYSMMU_ID(0x1)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_READ | SYSMMU_BL16) SYSMMU_ID(0x3)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL8) SYSMMU_ID(0x5)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL8) SYSMMU_ID(0x7)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL8) SYSMMU_ID(0x9)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL8) SYSMMU_ID(0x1)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL8) SYSMMU_ID(0x3)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL8) SYSMMU_ID(0x5)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL8) SYSMMU_ID(0x7)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL8) SYSMMU_ID(0x9)>,
<(SYSMMU_PRIV_ID_NO_PREFETCH_WRITE | SYSMMU_BL16) SYSMMU_ID(0xB)>,
/* 11~15 : SRDZ */
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL8) SYSMMU_ID(0x0)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL16) SYSMMU_ID(0x2)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_READ | SYSMMU_BL16) SYSMMU_ID(0x6)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL16) SYSMMU_ID(0x0)>,
<(SYSMMU_PRIV_ID_PREFETCH_ASCENDING_WRITE | SYSMMU_BL16) SYSMMU_ID(0x2)>;
#iommu-cells = <0>;
};
tmuctrl_0: MNGS@10080000 {
compatible = "samsung,exynos8895-tmu";
reg = <0x0 0x10080000 0x400>;
interrupts = <0 451 0>;
tmu_name = "MNGS";
id = <0>;
sensors = <1>;
sensing_mode = "max";
hotplug_enable = <1>;
hotplug_in_threshold = <76>;
hotplug_out_threshold = <81>;
#include "exynos8895-tmu-sensor-conf.dtsi"
};
tmuctrl_1: APOLLO@10080000 {
compatible = "samsung,exynos8895-tmu";
reg = <0x0 0x10080000 0x400>;
interrupts = <0 451 0>;
tmu_name = "APOLLO";
id = <1>;
sensors = <2>;
sensing_mode = "max";
#include "exynos8895-tmu-sensor-conf.dtsi"
};
tmuctrl_2: GPU@10084000 {
compatible = "samsung,exynos8895-tmu";
reg = <0x0 0x10084000 0x400>;
interrupts = <0 452 0>;
tmu_name = "GPU";
id = <2>;
sensors = <1>;
sensing_mode = "max";
/* gpu cooling related table */
/* flags, driver_data(index), frequency */
gpu_idx_num = <6>;
gpu_cooling_table = < 0 0 546000
0 1 455000
0 2 338000
0 3 260000
0 4 260000
0 5 TABLE_END>;
#include "exynos8895-tmu-sensor-conf.dtsi"
};
tmuctrl_3: ISP@10084000 {
compatible = "samsung,exynos8895-tmu";
reg = <0x0 0x10084000 0x400>;
interrupts = <0 452 0>;
tmu_name = "ISP";
id = <3>;
sensors = <6>;
sensing_mode = "max";
#include "exynos8895-tmu-sensor-conf.dtsi"
};
thermal-zones {
mngs_thermal: mngs-thermal {
zone_name = "MNGS_THERMAL";
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&tmuctrl_0>;
governor = "power_allocator";
sustainable-power = <2000>;
k_po = <100>;
k_pu = <200>;
k_i = <100>;
i_max = <1500>;
integral_cutoff = <13>;
trips {
mngs_cold: mngs-cold {
temperature = <20000>;
hysteresis = <5000>; /* millicelsius */
type = "active";
};
mngs_alert0: mngs-alert0 {
temperature = <52000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
mngs_alert1: mngs-alert1 {
temperature = <65000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "passive";
};
mngs_crit: mngs-crit {
temperature = <115000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&mngs_alert0>;
cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
map1 {
trip = <&mngs_alert1>;
cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
apo_thermal: APOLLO {
zone_name = "APO_THERMAL";
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tmuctrl_1>;
trips {
apo_alert0: apo-alert0 {
temperature = <20000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
apo_alert1: apo-alert1 {
temperature = <76000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
apo_alert2: apo-alert2 {
temperature = <81000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
apo_alert3: apo-alert3 {
temperature = <86000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
apo_alert4: apo-alert4 {
temperature = <91000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
apo_alert5: apo-alert5 {
temperature = <96000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
apo_alert6: apo-alert6 {
temperature = <101000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
apo_crit: apo-crit {
temperature = <115000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&apo_alert0>;
/* Corresponds to 1586MHz at freq_table */
cooling-device = <&cpu0 0 0>;
};
map1 {
trip = <&apo_alert1>;
/* Corresponds to 1482MHz at freq_table */
cooling-device = <&cpu0 0 0>;
};
map2 {
trip = <&apo_alert2>;
/* Corresponds to 1378MHz at freq_table */
cooling-device = <&cpu0 0 0>;
};
map3 {
trip = <&apo_alert3>;
/* Corresponds to 1170MHz at freq_table */
cooling-device = <&cpu0 0 0>;
};
map4 {
trip = <&apo_alert4>;
/* Corresponds to 1066MHz at freq_table */
cooling-device = <&cpu0 0 0>;
};
map5 {
trip = <&apo_alert5>;
/* Corresponds to 442MHz at freq_table */
cooling-device = <&cpu0 0 0>;
};
map6 {
trip = <&apo_alert6>;
/* Corresponds to 442MHz at freq_table */
cooling-device = <&cpu0 0 0>;
};
map7 {
trip = <&apo_crit>;
/* Corresponds to 442MHz at freq_table */
cooling-device = <&cpu0 0 0>;
};
};
};
gpu_thermal: GPU {
zone_name = "GPU_THERMAL";
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&tmuctrl_2>;
governor = "power_allocator";
sustainable-power = <2000>;
k_po = <125>;
k_pu = <250>;
k_i = <50>;
i_max = <400>;
integral_cutoff = <10>;
trips {
gpu_cold: gpu-cold {
temperature = <20000>;
hysteresis = <5000>; /* millicelsius */
type = "active";
};
gpu_alert0: gpu-alert0 {
temperature = <65000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
gpu_alert1: gpu-alert1 {
temperature = <75000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "passive";
};
gpu_crit: gpu-crit {
temperature = <115000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&gpu_alert0>;
cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
map1 {
trip = <&gpu_alert1>;
cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
isp_thermal: ISP {
zone_name = "ISP_THERMAL";
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tmuctrl_3>;
trips {
isp_alert0: isp-alert0 {
temperature = <20000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
isp_alert1: isp-alert1 {
temperature = <91000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
isp_alert2: isp-alert2 {
temperature = <96000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
isp_alert3: isp-alert3 {
temperature = <101000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "active";
};
isp_crit: isp-crit {
temperature = <115000>; /* millicelsius */
hysteresis = <5000>; /* millicelsius */
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&isp_alert0>;
/* Corresponds to No limit */
cooling-device = <&fimc_is 0 0>;
};
map1 {
trip = <&isp_alert1>;
/* Corresponds to No limit */
cooling-device = <&fimc_is 0 0>;
};
map2 {
trip = <&isp_alert2>;
/* Corresponds to 15fps at freq_table */
cooling-device = <&fimc_is 0 0>;
};
map3 {
trip = <&isp_alert3>;
/* Corresponds to 5fps at freq_table */
cooling-device = <&fimc_is 0 0>;
};
map4 {
trip = <&isp_crit>;
/* Corresponds to HW trip */
cooling-device = <&fimc_is 0 0>;
};
};
};
};
};