code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Samsung SMDK5420 board device tree source
 *
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

/dts-v1/;
#include "exynos5420.dtsi"
#include "exynos5420-cpus.dtsi"
#include <dt-bindings/clock/samsung,s2mps11.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Samsung SMDK5420 board based on Exynos5420";
	compatible = "samsung,smdk5420", "samsung,exynos5420", "samsung,exynos5";

	memory@20000000 {
		device_type = "memory";
		reg = <0x20000000 0x80000000>;
	};

	chosen {
		bootargs = "init=/linuxrc";
		stdout-path = "serial2:115200n8";
	};

	fixed-rate-clocks {
		oscclk {
			compatible = "samsung,exynos5420-oscclk";
			clock-frequency = <24000000>;
		};
	};

	vdd: regulator-0 {
		compatible = "regulator-fixed";
		regulator-name = "vdd-supply";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};

	dbvdd: regulator-1 {
		compatible = "regulator-fixed";
		regulator-name = "dbvdd-supply";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	spkvdd: regulator-2 {
		compatible = "regulator-fixed";
		regulator-name = "spkvdd-supply";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};

	usb300_vbus_reg: regulator-3 {
		compatible = "regulator-fixed";
		regulator-name = "VBUS0";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpg0 5 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb300_vbus_en>;
		enable-active-high;
	};

	usb301_vbus_reg: regulator-4 {
		compatible = "regulator-fixed";
		regulator-name = "VBUS1";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpg1 4 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb301_vbus_en>;
		enable-active-high;
	};

};

&cpu0 {
	cpu-supply = <&buck2_reg>;
};

&cpu4 {
	cpu-supply = <&buck6_reg>;
};

&dp {
	pinctrl-names = "default";
	pinctrl-0 = <&dp_hpd>;
	samsung,color-space = <0>;
	samsung,color-depth = <1>;
	samsung,link-rate = <0x0a>;
	samsung,lane-count = <4>;
	status = "okay";

	display-timings {
		native-mode = <&timing0>;
		timing0: timing {
			clock-frequency = <50000>;
			hactive = <2560>;
			vactive = <1600>;
			hfront-porch = <48>;
			hback-porch = <80>;
			hsync-len = <32>;
			vback-porch = <16>;
			vfront-porch = <8>;
			vsync-len = <6>;
		};
	};
};

&fimd {
	status = "okay";
};

&hdmi {
	status = "okay";
	ddc = <&i2c_2>;
	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&hdmi_hpd_irq>;
	vdd-supply = <&ldo6_reg>;
	vdd_osc-supply = <&ldo7_reg>;
	vdd_pll-supply = <&ldo6_reg>;
};

&hsi2c_4 {
	status = "okay";

	pmic@66 {
		compatible = "samsung,s2mps11-pmic";
		reg = <0x66>;
		wakeup-source;

		s2mps11_osc: clocks {
			compatible = "samsung,s2mps11-clk";
			#clock-cells = <1>;
			clock-output-names = "s2mps11_ap",
					"s2mps11_cp", "s2mps11_bt";
		};

		regulators {
			ldo1_reg: LDO1 {
				regulator-name = "vdd_ldo1";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
			};

			ldo3_reg: LDO3 {
				regulator-name = "vdd_ldo3";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo5_reg: LDO5 {
				regulator-name = "vdd_ldo5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo6_reg: LDO6 {
				regulator-name = "vdd_ldo6";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
			};

			ldo7_reg: LDO7 {
				regulator-name = "vdd_ldo7";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo8_reg: LDO8 {
				regulator-name = "vdd_ldo8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo9_reg: LDO9 {
				regulator-name = "vdd_ldo9";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
			};

			ldo10_reg: LDO10 {
				regulator-name = "vdd_ldo10";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo11_reg: LDO11 {
				regulator-name = "vdd_ldo11";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
			};

			ldo12_reg: LDO12 {
				regulator-name = "vdd_ldo12";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo13_reg: LDO13 {
				regulator-name = "vdd_ldo13";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-always-on;
			};

			ldo15_reg: LDO15 {
				regulator-name = "vdd_ldo15";
				regulator-min-microvolt = <3100000>;
				regulator-max-microvolt = <3100000>;
				regulator-always-on;
			};

			ldo16_reg: LDO16 {
				regulator-name = "vdd_ldo16";
				regulator-min-microvolt = <2200000>;
				regulator-max-microvolt = <2200000>;
				regulator-always-on;
			};

			ldo17_reg: LDO17 {
				regulator-name = "tsp_avdd";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			ldo19_reg: LDO19 {
				regulator-name = "vdd_sd";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-always-on;
			};

			ldo24_reg: LDO24 {
				regulator-name = "tsp_io";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-always-on;
			};

			buck1_reg: BUCK1 {
				regulator-name = "vdd_mif";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1300000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck2_reg: BUCK2 {
				regulator-name = "vdd_arm";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck3_reg: BUCK3 {
				regulator-name = "vdd_int";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1400000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck4_reg: BUCK4 {
				regulator-name = "vdd_g3d";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1400000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck5_reg: BUCK5 {
				regulator-name = "vdd_mem";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1400000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck6_reg: BUCK6 {
				regulator-name = "vdd_kfc";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck7_reg: BUCK7 {
				regulator-name = "vdd_1.0v_ldo";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck8_reg: BUCK8 {
				regulator-name = "vdd_1.8v_ldo";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck9_reg: BUCK9 {
				regulator-name = "vdd_2.8v_ldo";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3750000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck10_reg: BUCK10 {
				regulator-name = "vdd_vmem";
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <2850000>;
				regulator-always-on;
				regulator-boot-on;
			};
		};
	};
};

&i2c_2 {
	samsung,i2c-sda-delay = <100>;
	samsung,i2c-max-bus-freq = <66000>;
	/* used by HDMI DDC */
	status = "okay";
};

&mixer {
	status = "okay";
};

&mmc_0 {
	status = "okay";
	broken-cd;
	card-detect-delay = <200>;
	samsung,dw-mshc-ciu-div = <3>;
	samsung,dw-mshc-sdr-timing = <0 4>;
	samsung,dw-mshc-ddr-timing = <0 2>;
	samsung,dw-mshc-hs400-timing = <0 2>;
	samsung,read-strobe-delay = <90>;
	pinctrl-names = "default";
	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8
		     &sd0_rclk>;
	bus-width = <8>;
	cap-mmc-highspeed;
};

&mmc_2 {
	status = "okay";
	card-detect-delay = <200>;
	samsung,dw-mshc-ciu-div = <3>;
	samsung,dw-mshc-sdr-timing = <2 3>;
	samsung,dw-mshc-ddr-timing = <1 2>;
	pinctrl-names = "default";
	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
	bus-width = <4>;
	cap-sd-highspeed;
};

&pinctrl_0 {
	hdmi_hpd_irq: hdmi-hpd-irq-pins {
		samsung,pins = "gpx3-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&pinctrl_2 {
	usb300_vbus_en: usb300-vbus-en-pins {
		samsung,pins = "gpg0-5";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	usb301_vbus_en: usb301-vbus-en-pins {
		samsung,pins = "gpg1-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&rtc {
	status = "okay";
	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
	clock-names = "rtc", "rtc_src";
};

&usbdrd3_0 {
	vdd10-supply = <&ldo11_reg>;
	vdd33-supply = <&ldo9_reg>;
};

&usbdrd3_1 {
	vdd10-supply = <&ldo11_reg>;
	vdd33-supply = <&ldo9_reg>;
};

&usbdrd_phy0 {
	vbus-supply = <&usb300_vbus_reg>;
};

&usbdrd_phy1 {
	vbus-supply = <&usb301_vbus_reg>;
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Device tree sources for default Exynos5420 thermal zone definition
 *
 * Copyright (c) 2014 Lukasz Majewski <l.majewski@samsung.com>
 */

polling-delay-passive = <0>;
polling-delay = <0>;
trips {
	cpu-alert-0 {
		temperature = <85000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "active";
	};
	cpu-alert-1 {
		temperature = <103000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "active";
	};
	cpu-alert-2 {
		temperature = <110000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "active";
	};
	cpu-crit-0 {
		temperature = <120000>; /* millicelsius */
		hysteresis = <0>; /* millicelsius */
		type = "critical";
	};
};

repo_name: angery/linux


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Samsung Exynos5420 SoC device tree source
 *
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * Samsung Exynos5420 SoC device nodes are listed in this file.
 * Exynos5420 based board files can include this file and provide
 * values for board specfic bindings.
 */

#include "exynos54xx.dtsi"
#include <dt-bindings/clock/exynos5420.h>
#include <dt-bindings/clock/exynos-audss-clk.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>

/ {
	compatible = "samsung,exynos5420", "samsung,exynos5";

	aliases {
		mshc0 = &mmc_0;
		mshc1 = &mmc_1;
		mshc2 = &mmc_2;
		pinctrl0 = &pinctrl_0;
		pinctrl1 = &pinctrl_1;
		pinctrl2 = &pinctrl_2;
		pinctrl3 = &pinctrl_3;
		pinctrl4 = &pinctrl_4;
		i2c8 = &hsi2c_8;
		i2c9 = &hsi2c_9;
		i2c10 = &hsi2c_10;
		gsc0 = &gsc_0;
		gsc1 = &gsc_1;
		spi0 = &spi_0;
		spi1 = &spi_1;
		spi2 = &spi_2;
	};

	/*
	 * The 'cpus' node is not present here but instead it is provided
	 * by exynos5420-cpus.dtsi or exynos5422-cpus.dtsi.
	 */

	cluster_a15_opp_table: opp-table0 {
		compatible = "operating-points-v2";
		opp-shared;

		opp-1800000000 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <1250000 1250000 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-1700000000 {
			opp-hz = /bits/ 64 <1700000000>;
			opp-microvolt = <1212500 1212500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-1600000000 {
			opp-hz = /bits/ 64 <1600000000>;
			opp-microvolt = <1175000 1175000 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-1500000000 {
			opp-hz = /bits/ 64 <1500000000>;
			opp-microvolt = <1137500 1137500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-1400000000 {
			opp-hz = /bits/ 64 <1400000000>;
			opp-microvolt = <1112500 1112500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-1300000000 {
			opp-hz = /bits/ 64 <1300000000>;
			opp-microvolt = <1062500 1062500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <1037500 1037500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-1100000000 {
			opp-hz = /bits/ 64 <1100000000>;
			opp-microvolt = <1012500 1012500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = < 987500 987500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-900000000 {
			opp-hz = /bits/ 64 <900000000>;
			opp-microvolt = < 962500 962500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-800000000 {
			opp-hz = /bits/ 64 <800000000>;
			opp-microvolt = < 937500 937500 1500000>;
			clock-latency-ns = <140000>;
		};
		opp-700000000 {
			opp-hz = /bits/ 64 <700000000>;
			opp-microvolt = < 912500 912500 1500000>;
			clock-latency-ns = <140000>;
		};
	};

	cluster_a7_opp_table: opp-table1 {
		compatible = "operating-points-v2";
		opp-shared;

		opp-1300000000 {
			opp-hz = /bits/ 64 <1300000000>;
			opp-microvolt = <1275000>;
			clock-latency-ns = <140000>;
		};
		opp-1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <1212500>;
			clock-latency-ns = <140000>;
		};
		opp-1100000000 {
			opp-hz = /bits/ 64 <1100000000>;
			opp-microvolt = <1162500>;
			clock-latency-ns = <140000>;
		};
		opp-1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <1112500>;
			clock-latency-ns = <140000>;
		};
		opp-900000000 {
			opp-hz = /bits/ 64 <900000000>;
			opp-microvolt = <1062500>;
			clock-latency-ns = <140000>;
		};
		opp-800000000 {
			opp-hz = /bits/ 64 <800000000>;
			opp-microvolt = <1025000>;
			clock-latency-ns = <140000>;
		};
		opp-700000000 {
			opp-hz = /bits/ 64 <700000000>;
			opp-microvolt = <975000>;
			clock-latency-ns = <140000>;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <937500>;
			clock-latency-ns = <140000>;
		};
	};

	soc: soc {
		cci: cci@10d20000 {
			compatible = "arm,cci-400";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x10d20000 0x1000>;
			ranges = <0x0 0x10d20000 0x6000>;

			cci_control0: slave-if@4000 {
				compatible = "arm,cci-400-ctrl-if";
				interface-type = "ace";
				reg = <0x4000 0x1000>;
			};
			cci_control1: slave-if@5000 {
				compatible = "arm,cci-400-ctrl-if";
				interface-type = "ace";
				reg = <0x5000 0x1000>;
			};
		};

		clock: clock-controller@10010000 {
			compatible = "samsung,exynos5420-clock", "syscon";
			reg = <0x10010000 0x30000>;
			#clock-cells = <1>;
		};

		clock_audss: audss-clock-controller@3810000 {
			compatible = "samsung,exynos5420-audss-clock";
			reg = <0x03810000 0x0C>;
			#clock-cells = <1>;
			clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MAU_EPLL>,
				 <&clock CLK_SCLK_MAUDIO0>, <&clock CLK_SCLK_MAUPCM0>;
			clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in";
			power-domains = <&mau_pd>;
		};

		mfc: codec@11000000 {
			compatible = "samsung,mfc-v7";
			reg = <0x11000000 0x10000>;
			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_MFC>;
			clock-names = "mfc";
			power-domains = <&mfc_pd>;
			iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
			iommu-names = "left", "right";
		};

		mmc_0: mmc@12200000 {
			compatible = "samsung,exynos5420-dw-mshc-smu";
			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x12200000 0x2000>;
			clocks = <&clock CLK_MMC0>, <&clock CLK_SCLK_MMC0>;
			clock-names = "biu", "ciu";
			fifo-depth = <0x40>;
			status = "disabled";
		};

		mmc_1: mmc@12210000 {
			compatible = "samsung,exynos5420-dw-mshc-smu";
			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x12210000 0x2000>;
			clocks = <&clock CLK_MMC1>, <&clock CLK_SCLK_MMC1>;
			clock-names = "biu", "ciu";
			fifo-depth = <0x40>;
			status = "disabled";
		};

		mmc_2: mmc@12220000 {
			compatible = "samsung,exynos5420-dw-mshc";
			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x12220000 0x1000>;
			clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>;
			clock-names = "biu", "ciu";
			fifo-depth = <0x40>;
			status = "disabled";
		};

		dmc: memory-controller@10c20000 {
			compatible = "samsung,exynos5422-dmc";
			reg = <0x10c20000 0x10000>, <0x10c30000 0x10000>;
			clocks = <&clock CLK_FOUT_SPLL>,
				 <&clock CLK_MOUT_SCLK_SPLL>,
				 <&clock CLK_FF_DOUT_SPLL2>,
				 <&clock CLK_FOUT_BPLL>,
				 <&clock CLK_MOUT_BPLL>,
				 <&clock CLK_SCLK_BPLL>,
				 <&clock CLK_MOUT_MX_MSPLL_CCORE>,
				 <&clock CLK_MOUT_MCLK_CDREX>;
			clock-names = "fout_spll",
				      "mout_sclk_spll",
				      "ff_dout_spll2",
				      "fout_bpll",
				      "mout_bpll",
				      "sclk_bpll",
				      "mout_mx_mspll_ccore",
				      "mout_mclk_cdrex";
			samsung,syscon-clk = <&clock>;
			status = "disabled";
		};

		nocp_mem0_0: nocp@10ca1000 {
			compatible = "samsung,exynos5420-nocp";
			reg = <0x10CA1000 0x200>;
			status = "disabled";
		};

		nocp_mem0_1: nocp@10ca1400 {
			compatible = "samsung,exynos5420-nocp";
			reg = <0x10CA1400 0x200>;
			status = "disabled";
		};

		nocp_mem1_0: nocp@10ca1800 {
			compatible = "samsung,exynos5420-nocp";
			reg = <0x10CA1800 0x200>;
			status = "disabled";
		};

		nocp_mem1_1: nocp@10ca1c00 {
			compatible = "samsung,exynos5420-nocp";
			reg = <0x10CA1C00 0x200>;
			status = "disabled";
		};

		nocp_g3d_0: nocp@11a51000 {
			compatible = "samsung,exynos5420-nocp";
			reg = <0x11A51000 0x200>;
			status = "disabled";
		};

		nocp_g3d_1: nocp@11a51400 {
			compatible = "samsung,exynos5420-nocp";
			reg = <0x11A51400 0x200>;
			status = "disabled";
		};

		ppmu_dmc0_0: ppmu@10d00000 {
			compatible = "samsung,exynos-ppmu";
			reg = <0x10d00000 0x2000>;
			clocks = <&clock CLK_PCLK_PPMU_DREX0_0>;
			clock-names = "ppmu";
			events {
				ppmu_event3_dmc0_0: ppmu-event3-dmc0-0 {
					event-name = "ppmu-event3-dmc0-0";
				};
			};
		};

		ppmu_dmc0_1: ppmu@10d10000 {
			compatible = "samsung,exynos-ppmu";
			reg = <0x10d10000 0x2000>;
			clocks = <&clock CLK_PCLK_PPMU_DREX0_1>;
			clock-names = "ppmu";
			events {
				ppmu_event3_dmc0_1: ppmu-event3-dmc0-1 {
					event-name = "ppmu-event3-dmc0-1";
				};
			};
		};

		ppmu_dmc1_0: ppmu@10d60000 {
			compatible = "samsung,exynos-ppmu";
			reg = <0x10d60000 0x2000>;
			clocks = <&clock CLK_PCLK_PPMU_DREX1_0>;
			clock-names = "ppmu";
			events {
				ppmu_event3_dmc1_0: ppmu-event3-dmc1-0 {
					event-name = "ppmu-event3-dmc1-0";
				};
			};
		};

		ppmu_dmc1_1: ppmu@10d70000 {
			compatible = "samsung,exynos-ppmu";
			reg = <0x10d70000 0x2000>;
			clocks = <&clock CLK_PCLK_PPMU_DREX1_1>;
			clock-names = "ppmu";
			events {
				ppmu_event3_dmc1_1: ppmu-event3-dmc1-1 {
					event-name = "ppmu-event3-dmc1-1";
				};
			};
		};

		gsc_pd: power-domain@10044000 {
			compatible = "samsung,exynos4210-pd";
			reg = <0x10044000 0x20>;
			#power-domain-cells = <0>;
			label = "GSC";
		};

		isp_pd: power-domain@10044020 {
			compatible = "samsung,exynos4210-pd";
			reg = <0x10044020 0x20>;
			#power-domain-cells = <0>;
			label = "ISP";
		};

		mfc_pd: power-domain@10044060 {
			compatible = "samsung,exynos4210-pd";
			reg = <0x10044060 0x20>;
			#power-domain-cells = <0>;
			label = "MFC";
		};

		g3d_pd: power-domain@10044080 {
			compatible = "samsung,exynos4210-pd";
			reg = <0x10044080 0x20>;
			#power-domain-cells = <0>;
			label = "G3D";
		};

		disp_pd: power-domain@100440c0 {
			compatible = "samsung,exynos4210-pd";
			reg = <0x100440C0 0x20>;
			#power-domain-cells = <0>;
			label = "DISP";
		};

		mau_pd: power-domain@100440e0 {
			compatible = "samsung,exynos4210-pd";
			reg = <0x100440E0 0x20>;
			#power-domain-cells = <0>;
			label = "MAU";
		};

		msc_pd: power-domain@10044120 {
			compatible = "samsung,exynos4210-pd";
			reg = <0x10044120 0x20>;
			#power-domain-cells = <0>;
			label = "MSC";
		};

		pinctrl_0: pinctrl@13400000 {
			compatible = "samsung,exynos5420-pinctrl";
			reg = <0x13400000 0x1000>;
			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;

			wakeup-interrupt-controller {
				compatible = "samsung,exynos4210-wakeup-eint";
				interrupt-parent = <&gic>;
				interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
			};
		};

		pinctrl_1: pinctrl@13410000 {
			compatible = "samsung,exynos5420-pinctrl";
			reg = <0x13410000 0x1000>;
			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
		};

		pinctrl_2: pinctrl@14000000 {
			compatible = "samsung,exynos5420-pinctrl";
			reg = <0x14000000 0x1000>;
			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
		};

		pinctrl_3: pinctrl@14010000 {
			compatible = "samsung,exynos5420-pinctrl";
			reg = <0x14010000 0x1000>;
			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
		};

		pinctrl_4: pinctrl@3860000 {
			compatible = "samsung,exynos5420-pinctrl";
			reg = <0x03860000 0x1000>;
			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
			power-domains = <&mau_pd>;
		};

		adma: dma-controller@3880000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x03880000 0x1000>;
			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock_audss EXYNOS_ADMA>;
			clock-names = "apb_pclk";
			#dma-cells = <1>;
			power-domains = <&mau_pd>;
		};

		pdma0: dma-controller@121a0000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x121A0000 0x1000>;
			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_PDMA0>;
			clock-names = "apb_pclk";
			#dma-cells = <1>;
		};

		pdma1: dma-controller@121b0000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x121B0000 0x1000>;
			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_PDMA1>;
			clock-names = "apb_pclk";
			#dma-cells = <1>;
		};

		mdma0: dma-controller@10800000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x10800000 0x1000>;
			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_MDMA0>;
			clock-names = "apb_pclk";
			#dma-cells = <1>;
		};

		mdma1: dma-controller@11c10000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0x11C10000 0x1000>;
			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_MDMA1>;
			clock-names = "apb_pclk";
			#dma-cells = <1>;
			/*
			 * MDMA1 can support both secure and non-secure
			 * AXI transactions. When this is enabled in
			 * the kernel for boards that run in secure
			 * mode, we are getting imprecise external
			 * aborts causing the kernel to oops.
			 */
			status = "disabled";
		};

		i2s0: i2s@3830000 {
			compatible = "samsung,exynos5420-i2s";
			reg = <0x03830000 0x100>;
			dmas = <&adma 0>,
				<&adma 2>,
				<&adma 1>;
			dma-names = "tx", "rx", "tx-sec";
			clocks = <&clock_audss EXYNOS_I2S_BUS>,
				<&clock_audss EXYNOS_I2S_BUS>,
				<&clock_audss EXYNOS_SCLK_I2S>;
			clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
			#clock-cells = <1>;
			clock-output-names = "i2s_cdclk0";
			#sound-dai-cells = <1>;
			samsung,idma-addr = <0x03000000>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2s0_bus>;
			power-domains = <&mau_pd>;
			status = "disabled";
		};

		i2s1: i2s@12d60000 {
			compatible = "samsung,exynos5420-i2s";
			reg = <0x12D60000 0x100>;
			dmas = <&pdma1 12>,
				<&pdma1 11>;
			dma-names = "tx", "rx";
			clocks = <&clock CLK_I2S1>, <&clock CLK_SCLK_I2S1>;
			clock-names = "iis", "i2s_opclk0";
			#clock-cells = <1>;
			clock-output-names = "i2s_cdclk1";
			#sound-dai-cells = <1>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2s1_bus>;
			status = "disabled";
		};

		i2s2: i2s@12d70000 {
			compatible = "samsung,exynos5420-i2s";
			reg = <0x12D70000 0x100>;
			dmas = <&pdma0 12>,
				<&pdma0 11>;
			dma-names = "tx", "rx";
			clocks = <&clock CLK_I2S2>, <&clock CLK_SCLK_I2S2>;
			clock-names = "iis", "i2s_opclk0";
			#clock-cells = <1>;
			clock-output-names = "i2s_cdclk2";
			#sound-dai-cells = <1>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2s2_bus>;
			status = "disabled";
		};

		spi_0: spi@12d20000 {
			compatible = "samsung,exynos4210-spi";
			reg = <0x12d20000 0x100>;
			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
			dmas = <&pdma0 5
				&pdma0 4>;
			dma-names = "tx", "rx";
			#address-cells = <1>;
			#size-cells = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&spi0_bus>;
			clocks = <&clock CLK_SPI0>, <&clock CLK_SCLK_SPI0>;
			clock-names = "spi", "spi_busclk0";
			status = "disabled";
		};

		spi_1: spi@12d30000 {
			compatible = "samsung,exynos4210-spi";
			reg = <0x12d30000 0x100>;
			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
			dmas = <&pdma1 5
				&pdma1 4>;
			dma-names = "tx", "rx";
			#address-cells = <1>;
			#size-cells = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&spi1_bus>;
			clocks = <&clock CLK_SPI1>, <&clock CLK_SCLK_SPI1>;
			clock-names = "spi", "spi_busclk0";
			status = "disabled";
		};

		spi_2: spi@12d40000 {
			compatible = "samsung,exynos4210-spi";
			reg = <0x12d40000 0x100>;
			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
			dmas = <&pdma0 7
				&pdma0 6>;
			dma-names = "tx", "rx";
			#address-cells = <1>;
			#size-cells = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&spi2_bus>;
			clocks = <&clock CLK_SPI2>, <&clock CLK_SCLK_SPI2>;
			clock-names = "spi", "spi_busclk0";
			status = "disabled";
		};

		dp_phy: dp-video-phy {
			compatible = "samsung,exynos5420-dp-video-phy";
			samsung,pmu-syscon = <&pmu_system_controller>;
			#phy-cells = <0>;
		};

		mipi_phy: mipi-video-phy {
			compatible = "samsung,s5pv210-mipi-video-phy";
			syscon = <&pmu_system_controller>;
			#phy-cells = <1>;
		};

		dsi@14500000 {
			compatible = "samsung,exynos5410-mipi-dsi";
			reg = <0x14500000 0x10000>;
			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
			phys = <&mipi_phy 1>;
			phy-names = "dsim";
			clocks = <&clock CLK_DSIM1>, <&clock CLK_SCLK_MIPI1>;
			clock-names = "bus_clk", "pll_clk";
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		hsi2c_8: i2c@12e00000 {
			compatible = "samsung,exynos5250-hsi2c";
			reg = <0x12E00000 0x1000>;
			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
			#address-cells = <1>;
			#size-cells = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2c8_hs_bus>;
			clocks = <&clock CLK_USI4>;
			clock-names = "hsi2c";
			status = "disabled";
		};

		hsi2c_9: i2c@12e10000 {
			compatible = "samsung,exynos5250-hsi2c";
			reg = <0x12E10000 0x1000>;
			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
			#address-cells = <1>;
			#size-cells = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2c9_hs_bus>;
			clocks = <&clock CLK_USI5>;
			clock-names = "hsi2c";
			status = "disabled";
		};

		hsi2c_10: i2c@12e20000 {
			compatible = "samsung,exynos5250-hsi2c";
			reg = <0x12E20000 0x1000>;
			interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
			#address-cells = <1>;
			#size-cells = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2c10_hs_bus>;
			clocks = <&clock CLK_USI6>;
			clock-names = "hsi2c";
			status = "disabled";
		};

		hdmi: hdmi@14530000 {
			compatible = "samsung,exynos5420-hdmi";
			reg = <0x14530000 0x70000>;
			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
				 <&clock CLK_DOUT_PIXEL>, <&clock CLK_SCLK_HDMIPHY>,
				 <&clock CLK_MOUT_HDMI>;
			clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
				"sclk_hdmiphy", "mout_hdmi";
			phy = <&hdmiphy>;
			samsung,syscon-phandle = <&pmu_system_controller>;
			status = "disabled";
			power-domains = <&disp_pd>;
			#sound-dai-cells = <0>;
		};

		hdmiphy: hdmiphy@145d0000 {
			reg = <0x145D0000 0x20>;
		};

		hdmicec: cec@101b0000 {
			compatible = "samsung,s5p-cec";
			reg = <0x101B0000 0x200>;
			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_HDMI_CEC>;
			clock-names = "hdmicec";
			samsung,syscon-phandle = <&pmu_system_controller>;
			hdmi-phandle = <&hdmi>;
			pinctrl-names = "default";
			pinctrl-0 = <&hdmi_cec>;
			status = "disabled";
		};

		mixer: mixer@14450000 {
			compatible = "samsung,exynos5420-mixer";
			reg = <0x14450000 0x10000>;
			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
				 <&clock CLK_SCLK_HDMI>;
			clock-names = "mixer", "hdmi", "sclk_hdmi";
			power-domains = <&disp_pd>;
			iommus = <&sysmmu_tv>;
			status = "disabled";
		};

		rotator: rotator@11c00000 {
			compatible = "samsung,exynos5250-rotator";
			reg = <0x11C00000 0x64>;
			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_ROTATOR>;
			clock-names = "rotator";
			iommus = <&sysmmu_rotator>;
		};

		gsc_0: video-scaler@13e00000 {
			compatible = "samsung,exynos5420-gsc", "samsung,exynos5-gsc";
			reg = <0x13e00000 0x1000>;
			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_GSCL0>;
			clock-names = "gscl";
			power-domains = <&gsc_pd>;
			iommus = <&sysmmu_gscl0>;
		};

		gsc_1: video-scaler@13e10000 {
			compatible = "samsung,exynos5420-gsc", "samsung,exynos5-gsc";
			reg = <0x13e10000 0x1000>;
			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_GSCL1>;
			clock-names = "gscl";
			power-domains = <&gsc_pd>;
			iommus = <&sysmmu_gscl1>;
		};

		gpu: gpu@11800000 {
			compatible = "samsung,exynos5420-mali", "arm,mali-t628";
			reg = <0x11800000 0x5000>;
			interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "job", "mmu", "gpu";

			clocks = <&clock CLK_G3D>;
			clock-names = "core";
			power-domains = <&g3d_pd>;
			operating-points-v2 = <&gpu_opp_table>;

			status = "disabled";
			#cooling-cells = <2>;

			gpu_opp_table: opp-table {
				compatible = "operating-points-v2";

				opp-177000000 {
					opp-hz = /bits/ 64 <177000000>;
					opp-microvolt = <812500>;
				};
				opp-266000000 {
					opp-hz = /bits/ 64 <266000000>;
					opp-microvolt = <862500>;
				};
				opp-350000000 {
					opp-hz = /bits/ 64 <350000000>;
					opp-microvolt = <912500>;
				};
				opp-420000000 {
					opp-hz = /bits/ 64 <420000000>;
					opp-microvolt = <962500>;
				};
				opp-480000000 {
					opp-hz = /bits/ 64 <480000000>;
					opp-microvolt = <1000000>;
				};
				opp-543000000 {
					opp-hz = /bits/ 64 <543000000>;
					opp-microvolt = <1037500>;
				};
				opp-600000000 {
					opp-hz = /bits/ 64 <600000000>;
					opp-microvolt = <1150000>;
				};
			};
		};

		scaler_0: scaler@12800000 {
			compatible = "samsung,exynos5420-scaler";
			reg = <0x12800000 0x1294>;
			interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_MSCL0>;
			clock-names = "mscl";
			power-domains = <&msc_pd>;
			iommus = <&sysmmu_scaler0r>, <&sysmmu_scaler0w>;
		};

		scaler_1: scaler@12810000 {
			compatible = "samsung,exynos5420-scaler";
			reg = <0x12810000 0x1294>;
			interrupts = <0 221 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_MSCL1>;
			clock-names = "mscl";
			power-domains = <&msc_pd>;
			iommus = <&sysmmu_scaler1r>, <&sysmmu_scaler1w>;
		};

		scaler_2: scaler@12820000 {
			compatible = "samsung,exynos5420-scaler";
			reg = <0x12820000 0x1294>;
			interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_MSCL2>;
			clock-names = "mscl";
			power-domains = <&msc_pd>;
			iommus = <&sysmmu_scaler2r>, <&sysmmu_scaler2w>;
		};

		jpeg_0: jpeg@11f50000 {
			compatible = "samsung,exynos5420-jpeg";
			reg = <0x11F50000 0x1000>;
			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
			clock-names = "jpeg";
			clocks = <&clock CLK_JPEG>;
			iommus = <&sysmmu_jpeg0>;
		};

		jpeg_1: jpeg@11f60000 {
			compatible = "samsung,exynos5420-jpeg";
			reg = <0x11F60000 0x1000>;
			interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
			clock-names = "jpeg";
			clocks = <&clock CLK_JPEG2>;
			iommus = <&sysmmu_jpeg1>;
		};

		pmu_system_controller: system-controller@10040000 {
			compatible = "samsung,exynos5420-pmu", "syscon";
			reg = <0x10040000 0x5000>;
			clock-names = "clkout16";
			clocks = <&clock CLK_FIN_PLL>;
			#clock-cells = <1>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupt-parent = <&gic>;
		};

		tmu_cpu0: tmu@10060000 {
			compatible = "samsung,exynos5420-tmu";
			reg = <0x10060000 0x100>;
			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_TMU>;
			clock-names = "tmu_apbif";
			#thermal-sensor-cells = <0>;
		};

		tmu_cpu1: tmu@10064000 {
			compatible = "samsung,exynos5420-tmu";
			reg = <0x10064000 0x100>;
			interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_TMU>;
			clock-names = "tmu_apbif";
			#thermal-sensor-cells = <0>;
		};

		tmu_cpu2: tmu@10068000 {
			compatible = "samsung,exynos5420-tmu-ext-triminfo";
			reg = <0x10068000 0x100>, <0x1006c000 0x4>;
			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_TMU>, <&clock CLK_TMU>;
			clock-names = "tmu_apbif", "tmu_triminfo_apbif";
			#thermal-sensor-cells = <0>;
		};

		tmu_cpu3: tmu@1006c000 {
			compatible = "samsung,exynos5420-tmu-ext-triminfo";
			reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
			interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_TMU>, <&clock CLK_TMU_GPU>;
			clock-names = "tmu_apbif", "tmu_triminfo_apbif";
			#thermal-sensor-cells = <0>;
		};

		tmu_gpu: tmu@100a0000 {
			compatible = "samsung,exynos5420-tmu-ext-triminfo";
			reg = <0x100a0000 0x100>, <0x10068000 0x4>;
			interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_TMU_GPU>, <&clock CLK_TMU>;
			clock-names = "tmu_apbif", "tmu_triminfo_apbif";
			#thermal-sensor-cells = <0>;
		};

		sysmmu_g2dr: sysmmu@10a60000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x10A60000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <24 5>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
			#iommu-cells = <0>;
		};

		sysmmu_g2dw: sysmmu@10a70000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x10A70000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <22 2>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
			#iommu-cells = <0>;
		};

		sysmmu_tv: sysmmu@14650000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x14650000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <7 4>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MIXER>, <&clock CLK_MIXER>;
			power-domains = <&disp_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_gscl0: sysmmu@13e80000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x13E80000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <2 0>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_GSCL0>, <&clock CLK_GSCL0>;
			power-domains = <&gsc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_gscl1: sysmmu@13e90000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x13E90000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <2 2>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_GSCL1>, <&clock CLK_GSCL1>;
			power-domains = <&gsc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_scaler0r: sysmmu@12880000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x12880000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <22 4>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MSCL0>, <&clock CLK_MSCL0>;
			power-domains = <&msc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_scaler1r: sysmmu@12890000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x12890000 0x1000>;
			interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MSCL1>, <&clock CLK_MSCL1>;
			power-domains = <&msc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_scaler2r: sysmmu@128a0000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x128A0000 0x1000>;
			interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MSCL2>, <&clock CLK_MSCL2>;
			power-domains = <&msc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_scaler0w: sysmmu@128c0000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x128C0000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <27 2>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MSCL0>, <&clock CLK_MSCL0>;
			power-domains = <&msc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_scaler1w: sysmmu@128d0000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x128D0000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <22 6>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MSCL1>, <&clock CLK_MSCL1>;
			power-domains = <&msc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_scaler2w: sysmmu@128e0000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x128E0000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <19 6>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MSCL2>, <&clock CLK_MSCL2>;
			power-domains = <&msc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_rotator: sysmmu@11d40000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x11D40000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <4 0>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_ROTATOR>, <&clock CLK_ROTATOR>;
			#iommu-cells = <0>;
		};

		sysmmu_jpeg0: sysmmu@11f10000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x11F10000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <4 2>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_JPEG>, <&clock CLK_JPEG>;
			#iommu-cells = <0>;
		};

		sysmmu_jpeg1: sysmmu@11f20000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x11F20000 0x1000>;
			interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_JPEG2>, <&clock CLK_JPEG2>;
			#iommu-cells = <0>;
		};

		sysmmu_mfc_l: sysmmu@11200000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x11200000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <6 2>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MFCL>, <&clock CLK_MFC>;
			power-domains = <&mfc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_mfc_r: sysmmu@11210000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x11210000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <8 5>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_MFCR>, <&clock CLK_MFC>;
			power-domains = <&mfc_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_fimd1_0: sysmmu@14640000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x14640000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <3 2>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_FIMD1M0>, <&clock CLK_FIMD1>;
			power-domains = <&disp_pd>;
			#iommu-cells = <0>;
		};

		sysmmu_fimd1_1: sysmmu@14680000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x14680000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <3 0>;
			clock-names = "sysmmu", "master";
			clocks = <&clock CLK_SMMU_FIMD1M1>, <&clock CLK_FIMD1>;
			power-domains = <&disp_pd>;
			#iommu-cells = <0>;
		};

		bus_wcore: bus-wcore {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK400_WCORE>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_noc: bus-noc {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK100_NOC>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_fsys_apb: bus-fsys-apb {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_PCLK200_FSYS>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_fsys: bus-fsys {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK200_FSYS>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_fsys2: bus-fsys2 {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK200_FSYS2>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_mfc: bus-mfc {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK333>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_gen: bus-gen {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK266>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_peri: bus-peri {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK66>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_g2d: bus-g2d {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK333_G2D>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_g2d_acp: bus-g2d-acp {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK266_G2D>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_jpeg: bus-jpeg {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK300_JPEG>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_jpeg_apb: bus-jpeg-apb {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK166>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_disp1_fimd: bus-disp1-fimd {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK300_DISP1>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_disp1: bus-disp1 {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK400_DISP1>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_gscl_scaler: bus-gscl-scaler {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK300_GSCL>;
			clock-names = "bus";
			status = "disabled";
		};

		bus_mscl: bus-mscl {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DOUT_ACLK400_MSCL>;
			clock-names = "bus";
			status = "disabled";
		};
	};

	thermal-zones {
		cpu0_thermal: cpu0-thermal {
			thermal-sensors = <&tmu_cpu0>;
			#include "exynos5420-trip-points.dtsi"
		};
		cpu1_thermal: cpu1-thermal {
			thermal-sensors = <&tmu_cpu1>;
			#include "exynos5420-trip-points.dtsi"
		};
		cpu2_thermal: cpu2-thermal {
			thermal-sensors = <&tmu_cpu2>;
			#include "exynos5420-trip-points.dtsi"
		};
		cpu3_thermal: cpu3-thermal {
			thermal-sensors = <&tmu_cpu3>;
			#include "exynos5420-trip-points.dtsi"
		};
		gpu_thermal: gpu-thermal {
			thermal-sensors = <&tmu_gpu>;
			#include "exynos5420-trip-points.dtsi"
		};
	};
};

&adc {
	clocks = <&clock CLK_TSADC>;
	clock-names = "adc";
	samsung,syscon-phandle = <&pmu_system_controller>;
};

&dp {
	clocks = <&clock CLK_DP1>;
	clock-names = "dp";
	phys = <&dp_phy>;
	phy-names = "dp";
	power-domains = <&disp_pd>;
};

&fimd {
	compatible = "samsung,exynos5420-fimd";
	clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>;
	clock-names = "sclk_fimd", "fimd";
	power-domains = <&disp_pd>;
	iommus = <&sysmmu_fimd1_0>, <&sysmmu_fimd1_1>;
	iommu-names = "m0", "m1";
};

&g2d {
	iommus = <&sysmmu_g2dr>, <&sysmmu_g2dw>;
	clocks = <&clock CLK_G2D>;
	clock-names = "fimg2d";
	status = "okay";
};

&i2c_0 {
	clocks = <&clock CLK_I2C0>;
	clock-names = "i2c";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_bus>;
};

&i2c_1 {
	clocks = <&clock CLK_I2C1>;
	clock-names = "i2c";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_bus>;
};

&i2c_2 {
	clocks = <&clock CLK_I2C2>;
	clock-names = "i2c";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_bus>;
};

&i2c_3 {
	clocks = <&clock CLK_I2C3>;
	clock-names = "i2c";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c3_bus>;
};

&hsi2c_4 {
	clocks = <&clock CLK_USI0>;
	clock-names = "hsi2c";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c4_hs_bus>;
};

&hsi2c_5 {
	clocks = <&clock CLK_USI1>;
	clock-names = "hsi2c";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c5_hs_bus>;
};

&hsi2c_6 {
	clocks = <&clock CLK_USI2>;
	clock-names = "hsi2c";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c6_hs_bus>;
};

&hsi2c_7 {
	clocks = <&clock CLK_USI3>;
	clock-names = "hsi2c";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c7_hs_bus>;
};

&mct {
	clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
	clock-names = "fin_pll", "mct";
};

&prng {
	clocks = <&clock CLK_SSS>;
	clock-names = "secss";
};

&pwm {
	clocks = <&clock CLK_PWM>;
	clock-names = "timers";
};

&rtc {
	clocks = <&clock CLK_RTC>;
	clock-names = "rtc";
	interrupt-parent = <&pmu_system_controller>;
	status = "disabled";
};

&serial_0 {
	clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
	clock-names = "uart", "clk_uart_baud0";
	dmas = <&pdma0 13>, <&pdma0 14>;
	dma-names = "rx", "tx";
};

&serial_1 {
	clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
	clock-names = "uart", "clk_uart_baud0";
	dmas = <&pdma1 15>, <&pdma1 16>;
	dma-names = "rx", "tx";
};

&serial_2 {
	clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
	clock-names = "uart", "clk_uart_baud0";
	dmas = <&pdma0 15>, <&pdma0 16>;
	dma-names = "rx", "tx";
};

&serial_3 {
	clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
	clock-names = "uart", "clk_uart_baud0";
	dmas = <&pdma1 17>, <&pdma1 18>;
	dma-names = "rx", "tx";
};

&sss {
	clocks = <&clock CLK_SSS>;
	clock-names = "secss";
};

&trng {
	clocks = <&clock CLK_SSS>;
	clock-names = "secss";
};

&usbdrd3_0 {
	clocks = <&clock CLK_USBD300>;
	clock-names = "usbdrd30";
};

&usbdrd_phy0 {
	clocks = <&clock CLK_USBD300>, <&clock CLK_SCLK_USBPHY300>;
	clock-names = "phy", "ref";
	samsung,pmu-syscon = <&pmu_system_controller>;
};

&usbdrd3_1 {
	clocks = <&clock CLK_USBD301>;
	clock-names = "usbdrd30";
};

&usbdrd_dwc3_1 {
	interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
};

&usbdrd_phy1 {
	clocks = <&clock CLK_USBD301>, <&clock CLK_SCLK_USBPHY301>;
	clock-names = "phy", "ref";
	samsung,pmu-syscon = <&pmu_system_controller>;
};

&usbhost1 {
	clocks = <&clock CLK_USBH20>;
	clock-names = "usbhost";
};

&usbhost2 {
	clocks = <&clock CLK_USBH20>;
	clock-names = "usbhost";
};

&usb2_phy {
	clocks = <&clock CLK_USBH20>, <&clock CLK_SCLK_USBPHY300>;
	clock-names = "phy", "ref";
	samsung,sysreg-phandle = <&sysreg_system_controller>;
	samsung,pmureg-phandle = <&pmu_system_controller>;
};

&watchdog {
	clocks = <&clock CLK_WDT>;
	clock-names = "watchdog";
	samsung,syscon-phandle = <&pmu_system_controller>;
};

#include "exynos5420-pinctrl.dtsi"
#include "exynos-syscon-restart.dtsi"


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Samsung Exynos5422 SoC cpu device tree source
 *
 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * This file provides desired ordering for Exynos5422: CPU[0123] being the A7.
 *
 * The Exynos5420, 5422 and 5800 actually share the same CPU configuration
 * but particular boards choose different booting order.
 *
 * Exynos5420 and Exynos5800 always boot from Cortex-A15. On Exynos5422
 * booting cluster (big or LITTLE) is chosen by IROM code by reading
 * the gpg2-1 GPIO. By default all Exynos5422 based boards choose booting
 * from the LITTLE: Cortex-A7.
 */

/ {
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu-map {
			cluster0 {
				core0 {
					cpu = <&cpu0>;
				};
				core1 {
					cpu = <&cpu1>;
				};
				core2 {
					cpu = <&cpu2>;
				};
				core3 {
					cpu = <&cpu3>;
				};
			};

			cluster1 {
				core0 {
					cpu = <&cpu4>;
				};
				core1 {
					cpu = <&cpu5>;
				};
				core2 {
					cpu = <&cpu6>;
				};
				core3 {
					cpu = <&cpu7>;
				};
			};
		};

		cpu0: cpu@100 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x100>;
			clocks = <&clock CLK_KFC_CLK>;
			clock-frequency = <1000000000>;
			cci-control-port = <&cci_control0>;
			operating-points-v2 = <&cluster_a7_opp_table>;
			#cooling-cells = <2>; /* min followed by max */
			capacity-dmips-mhz = <539>;
			dynamic-power-coefficient = <90>;
		};

		cpu1: cpu@101 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x101>;
			clocks = <&clock CLK_KFC_CLK>;
			clock-frequency = <1000000000>;
			cci-control-port = <&cci_control0>;
			operating-points-v2 = <&cluster_a7_opp_table>;
			#cooling-cells = <2>; /* min followed by max */
			capacity-dmips-mhz = <539>;
			dynamic-power-coefficient = <90>;
		};

		cpu2: cpu@102 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x102>;
			clocks = <&clock CLK_KFC_CLK>;
			clock-frequency = <1000000000>;
			cci-control-port = <&cci_control0>;
			operating-points-v2 = <&cluster_a7_opp_table>;
			#cooling-cells = <2>; /* min followed by max */
			capacity-dmips-mhz = <539>;
			dynamic-power-coefficient = <90>;
		};

		cpu3: cpu@103 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x103>;
			clocks = <&clock CLK_KFC_CLK>;
			clock-frequency = <1000000000>;
			cci-control-port = <&cci_control0>;
			operating-points-v2 = <&cluster_a7_opp_table>;
			#cooling-cells = <2>; /* min followed by max */
			capacity-dmips-mhz = <539>;
			dynamic-power-coefficient = <90>;
		};

		cpu4: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0x0>;
			clocks = <&clock CLK_ARM_CLK>;
			clock-frequency = <1800000000>;
			cci-control-port = <&cci_control1>;
			operating-points-v2 = <&cluster_a15_opp_table>;
			#cooling-cells = <2>; /* min followed by max */
			capacity-dmips-mhz = <1024>;
			dynamic-power-coefficient = <310>;
		};

		cpu5: cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0x1>;
			clocks = <&clock CLK_ARM_CLK>;
			clock-frequency = <1800000000>;
			cci-control-port = <&cci_control1>;
			operating-points-v2 = <&cluster_a15_opp_table>;
			#cooling-cells = <2>; /* min followed by max */
			capacity-dmips-mhz = <1024>;
			dynamic-power-coefficient = <310>;
		};

		cpu6: cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0x2>;
			clocks = <&clock CLK_ARM_CLK>;
			clock-frequency = <1800000000>;
			cci-control-port = <&cci_control1>;
			operating-points-v2 = <&cluster_a15_opp_table>;
			#cooling-cells = <2>; /* min followed by max */
			capacity-dmips-mhz = <1024>;
			dynamic-power-coefficient = <310>;
		};

		cpu7: cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0x3>;
			clocks = <&clock CLK_ARM_CLK>;
			clock-frequency = <1800000000>;
			cci-control-port = <&cci_control1>;
			operating-points-v2 = <&cluster_a15_opp_table>;
			#cooling-cells = <2>; /* min followed by max */
			capacity-dmips-mhz = <1024>;
			dynamic-power-coefficient = <310>;
		};
	};
};

&arm_a7_pmu {
	interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
	status = "okay";
};

&arm_a15_pmu {
	interrupt-affinity = <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid XU3/XU3-Lite/XU4/HC1 boards core device tree source
 *
 * Copyright (c) 2017 Marek Szyprowski
 * Copyright (c) 2013-2017 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

#include <dt-bindings/clock/samsung,s2mps11.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>
#include "exynos5800.dtsi"
#include "exynos5422-cpus.dtsi"

/ {
	memory@40000000 {
		device_type = "memory";
		reg = <0x40000000 0x7EA00000>;
	};

	chosen {
		stdout-path = "serial2:115200n8";
	};

	firmware@2073000 {
		compatible = "samsung,secure-firmware";
		reg = <0x02073000 0x1000>;
	};

	fixed-rate-clocks {
		oscclk {
			compatible = "samsung,exynos5420-oscclk";
			clock-frequency = <24000000>;
		};
	};

	bus_wcore_opp_table: opp-table2 {
		compatible = "operating-points-v2";

		/* derived from 532MHz MPLL */
		opp00 {
			opp-hz = /bits/ 64 <88700000>;
			opp-microvolt = <925000 925000 1400000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <133000000>;
			opp-microvolt = <950000 950000 1400000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <177400000>;
			opp-microvolt = <950000 950000 1400000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <266000000>;
			opp-microvolt = <950000 950000 1400000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <532000000>;
			opp-microvolt = <1000000 1000000 1400000>;
		};
	};

	bus_noc_opp_table: opp-table3 {
		compatible = "operating-points-v2";

		/* derived from 666MHz CPLL */
		opp00 {
			opp-hz = /bits/ 64 <66600000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <74000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <83250000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <111000000>;
		};
	};

	bus_fsys_apb_opp_table: opp-table4 {
		compatible = "operating-points-v2";

		/* derived from 666MHz CPLL */
		opp00 {
			opp-hz = /bits/ 64 <111000000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <222000000>;
		};
	};

	bus_fsys2_opp_table: opp-table5 {
		compatible = "operating-points-v2";

		/* derived from 600MHz DPLL */
		opp00 {
			opp-hz = /bits/ 64 <75000000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <120000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <200000000>;
		};
	};

	bus_mfc_opp_table: opp-table6 {
		compatible = "operating-points-v2";

		/* derived from 666MHz CPLL */
		opp00 {
			opp-hz = /bits/ 64 <83250000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <111000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <166500000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <222000000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <333000000>;
		};
	};

	bus_gen_opp_table: opp-table7 {
		compatible = "operating-points-v2";

		/* derived from 532MHz MPLL */
		opp00 {
			opp-hz = /bits/ 64 <88700000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <133000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <178000000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <266000000>;
		};
	};

	bus_peri_opp_table: opp-table8 {
		compatible = "operating-points-v2";

		/* derived from 666MHz CPLL */
		opp00 {
			opp-hz = /bits/ 64 <66600000>;
		};
	};

	bus_g2d_opp_table: opp-table9 {
		compatible = "operating-points-v2";

		/* derived from 666MHz CPLL */
		opp00 {
			opp-hz = /bits/ 64 <83250000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <111000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <166500000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <222000000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <333000000>;
		};
	};

	bus_g2d_acp_opp_table: opp-table10 {
		compatible = "operating-points-v2";

		/* derived from 532MHz MPLL */
		opp00 {
			opp-hz = /bits/ 64 <66500000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <133000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <178000000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <266000000>;
		};
	};

	bus_jpeg_opp_table: opp-table11 {
		compatible = "operating-points-v2";

		/* derived from 600MHz DPLL */
		opp00 {
			opp-hz = /bits/ 64 <75000000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <150000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <200000000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <300000000>;
		};
	};

	bus_jpeg_apb_opp_table: opp-table12 {
		compatible = "operating-points-v2";

		/* derived from 666MHz CPLL */
		opp00 {
			opp-hz = /bits/ 64 <83250000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <111000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <133000000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <166500000>;
		};
	};

	bus_disp1_fimd_opp_table: opp-table13 {
		compatible = "operating-points-v2";

		/* derived from 600MHz DPLL */
		opp00 {
			opp-hz = /bits/ 64 <120000000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <200000000>;
		};
	};

	bus_disp1_opp_table: opp-table14 {
		compatible = "operating-points-v2";

		/* derived from 600MHz DPLL */
		opp00 {
			opp-hz = /bits/ 64 <120000000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <200000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <300000000>;
		};
	};

	bus_gscl_opp_table: opp-table15 {
		compatible = "operating-points-v2";

		/* derived from 600MHz DPLL */
		opp00 {
			opp-hz = /bits/ 64 <150000000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <200000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <300000000>;
		};
	};

	bus_mscl_opp_table: opp-table16 {
		compatible = "operating-points-v2";

		/* derived from 666MHz CPLL */
		opp00 {
			opp-hz = /bits/ 64 <84000000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <167000000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <222000000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <333000000>;
		};
		opp04 {
			opp-hz = /bits/ 64 <666000000>;
		};
	};

	dmc_opp_table: opp-table17 {
		compatible = "operating-points-v2";

		opp00 {
			opp-hz = /bits/ 64 <165000000>;
			opp-microvolt = <875000>;
		};
		opp01 {
			opp-hz = /bits/ 64 <206000000>;
			opp-microvolt = <875000>;
		};
		opp02 {
			opp-hz = /bits/ 64 <275000000>;
			opp-microvolt = <875000>;
		};
		opp03 {
			opp-hz = /bits/ 64 <413000000>;
			opp-microvolt = <887500>;
		};
		opp04 {
			opp-hz = /bits/ 64 <543000000>;
			opp-microvolt = <937500>;
		};
		opp05 {
			opp-hz = /bits/ 64 <633000000>;
			opp-microvolt = <1012500>;
		};
		opp06 {
			opp-hz = /bits/ 64 <728000000>;
			opp-microvolt = <1037500>;
		};
		opp07 {
			opp-hz = /bits/ 64 <825000000>;
			opp-microvolt = <1050000>;
		};
	};

	samsung_K3QF2F20DB: lpddr3 {
		compatible	= "samsung,K3QF2F20DB", "jedec,lpddr3";
		density		= <16384>;
		io-width	= <32>;

		tRFC-min-tck		= <17>;
		tRRD-min-tck		= <2>;
		tRPab-min-tck		= <2>;
		tRPpb-min-tck		= <2>;
		tRCD-min-tck		= <3>;
		tRC-min-tck		= <6>;
		tRAS-min-tck		= <5>;
		tWTR-min-tck		= <2>;
		tWR-min-tck		= <7>;
		tRTP-min-tck		= <2>;
		tW2W-C2C-min-tck	= <0>;
		tR2R-C2C-min-tck	= <0>;
		tWL-min-tck		= <8>;
		tDQSCK-min-tck		= <5>;
		tRL-min-tck		= <14>;
		tFAW-min-tck		= <5>;
		tXSR-min-tck		= <12>;
		tXP-min-tck		= <2>;
		tCKE-min-tck		= <2>;
		tCKESR-min-tck		= <2>;
		tMRD-min-tck		= <5>;

		timings_samsung_K3QF2F20DB_800mhz: timings {
			compatible	= "jedec,lpddr3-timings";
			max-freq	= <800000000>;
			min-freq	= <100000000>;
			tRFC		= <65000>;
			tRRD		= <6000>;
			tRPab		= <12000>;
			tRPpb		= <12000>;
			tRCD		= <10000>;
			tRC		= <33750>;
			tRAS		= <23000>;
			tWTR		= <3750>;
			tWR		= <7500>;
			tRTP		= <3750>;
			tW2W-C2C	= <0>;
			tR2R-C2C	= <0>;
			tFAW		= <25000>;
			tXSR		= <70000>;
			tXP		= <3750>;
			tCKE		= <3750>;
			tCKESR		= <3750>;
			tMRD		= <7000>;
		};
	};
};

&adc {
	vdd-supply = <&ldo4_reg>;
	status = "okay";
};

&bus_wcore {
	operating-points-v2 = <&bus_wcore_opp_table>;
	devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
			<&nocp_mem1_0>, <&nocp_mem1_1>;
	vdd-supply = <&buck3_reg>;
	exynos,saturation-ratio = <100>;
	status = "okay";
};

&bus_noc {
	operating-points-v2 = <&bus_noc_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_fsys_apb {
	operating-points-v2 = <&bus_fsys_apb_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_fsys2 {
	operating-points-v2 = <&bus_fsys2_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_mfc {
	operating-points-v2 = <&bus_mfc_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_gen {
	operating-points-v2 = <&bus_gen_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_peri {
	operating-points-v2 = <&bus_peri_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_g2d {
	operating-points-v2 = <&bus_g2d_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_g2d_acp {
	operating-points-v2 = <&bus_g2d_acp_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_jpeg {
	operating-points-v2 = <&bus_jpeg_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_jpeg_apb {
	operating-points-v2 = <&bus_jpeg_apb_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_disp1_fimd {
	operating-points-v2 = <&bus_disp1_fimd_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_disp1 {
	operating-points-v2 = <&bus_disp1_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_gscl_scaler {
	operating-points-v2 = <&bus_gscl_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&bus_mscl {
	operating-points-v2 = <&bus_mscl_opp_table>;
	devfreq = <&bus_wcore>;
	status = "okay";
};

&cpu0 {
	cpu-supply = <&buck6_reg>;
};

&cpu4 {
	cpu-supply = <&buck2_reg>;
};

&dmc {
	devfreq-events = <&ppmu_event3_dmc0_0>,	<&ppmu_event3_dmc0_1>,
			<&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>;
	device-handle = <&samsung_K3QF2F20DB>;
	operating-points-v2 = <&dmc_opp_table>;
	vdd-supply = <&buck1_reg>;
	status = "okay";
};

&hsi2c_4 {
	status = "okay";

	pmic@66 {
		compatible = "samsung,s2mps11-pmic";
		reg = <0x66>;
		samsung,s2mps11-acokb-ground;

		interrupt-parent = <&gpx0>;
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&s2mps11_irq>;
		wakeup-source;

		s2mps11_osc: clocks {
			compatible = "samsung,s2mps11-clk";
			#clock-cells = <1>;
			clock-output-names = "s2mps11_ap",
					"s2mps11_cp", "s2mps11_bt";
		};

		regulators {
			ldo1_reg: LDO1 {
				regulator-name = "vdd_ldo1";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
			};

			ldo2_reg: LDO2 {
				regulator-name = "vdd_ldo2";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo3_reg: LDO3 {
				regulator-name = "vddq_mmc0";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo4_reg: LDO4 {
				regulator-name = "vdd_adc";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo5_reg: LDO5 {
				regulator-name = "vdd_ldo5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo6_reg: LDO6 {
				regulator-name = "vdd_ldo6";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo7_reg: LDO7 {
				regulator-name = "vdd_ldo7";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo8_reg: LDO8 {
				regulator-name = "vdd_ldo8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo9_reg: LDO9 {
				regulator-name = "vdd_ldo9";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo10_reg: LDO10 {
				regulator-name = "vdd_ldo10";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo11_reg: LDO11 {
				regulator-name = "vdd_ldo11";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo12_reg: LDO12 {
				/* Unused */
				regulator-name = "vdd_ldo12";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <2375000>;
			};

			ldo13_reg: LDO13 {
				regulator-name = "vddq_mmc2";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <2800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo14_reg: LDO14 {
				/* Unused */
				regulator-name = "vdd_ldo14";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo15_reg: LDO15 {
				regulator-name = "vdd_ldo15";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo16_reg: LDO16 {
				/* Unused */
				regulator-name = "vdd_ldo16";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo17_reg: LDO17 {
				regulator-name = "vdd_ldo17";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo18_reg: LDO18 {
				regulator-name = "vdd_emmc_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo19_reg: LDO19 {
				regulator-name = "vdd_sd";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo20_reg: LDO20 {
				/* Unused */
				regulator-name = "vdd_ldo20";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo21_reg: LDO21 {
				/* Unused */
				regulator-name = "vdd_ldo21";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo22_reg: LDO22 {
				/* Unused */
				regulator-name = "vdd_ldo22";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <2375000>;
			};

			ldo23_reg: LDO23 {
				regulator-name = "vdd_mifs";
				regulator-min-microvolt = <1100000>;
				regulator-max-microvolt = <1100000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo24_reg: LDO24 {
				/* Unused */
				regulator-name = "vdd_ldo24";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo25_reg: LDO25 {
				/* Unused */
				regulator-name = "vdd_ldo25";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo26_reg: LDO26 {
				/* Used on XU3, XU3-Lite and XU4 */
				regulator-name = "vdd_ldo26";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo27_reg: LDO27 {
				regulator-name = "vdd_g3ds";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo28_reg: LDO28 {
				/* Used on XU3 */
				regulator-name = "vdd_ldo28";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo29_reg: LDO29 {
				/* Unused */
				regulator-name = "vdd_ldo29";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo30_reg: LDO30 {
				/* Unused */
				regulator-name = "vdd_ldo30";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo31_reg: LDO31 {
				/* Unused */
				regulator-name = "vdd_ldo31";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo32_reg: LDO32 {
				/* Unused */
				regulator-name = "vdd_ldo32";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo33_reg: LDO33 {
				/* Unused */
				regulator-name = "vdd_ldo33";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo34_reg: LDO34 {
				/* Unused */
				regulator-name = "vdd_ldo34";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo35_reg: LDO35 {
				/* Unused */
				regulator-name = "vdd_ldo35";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <2375000>;
			};

			ldo36_reg: LDO36 {
				/* Unused */
				regulator-name = "vdd_ldo36";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo37_reg: LDO37 {
				/* Unused */
				regulator-name = "vdd_ldo37";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo38_reg: LDO38 {
				/* Unused */
				regulator-name = "vdd_ldo38";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			buck1_reg: BUCK1 {
				regulator-name = "vdd_mif";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1300000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck2_reg: BUCK2 {
				regulator-name = "vdd_arm";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-coupled-with = <&buck3_reg>;
				regulator-coupled-max-spread = <300000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck3_reg: BUCK3 {
				regulator-name = "vdd_int";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1400000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-coupled-with = <&buck2_reg>;
				regulator-coupled-max-spread = <300000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck4_reg: BUCK4 {
				regulator-name = "vdd_g3d";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1400000>;
				regulator-boot-on;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck5_reg: BUCK5 {
				regulator-name = "vdd_mem";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1400000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck6_reg: BUCK6 {
				regulator-name = "vdd_kfc";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck7_reg: BUCK7 {
				regulator-name = "vdd_1.35v_ldo";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck8_reg: BUCK8 {
				regulator-name = "vdd_2.0v_ldo";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <2100000>;
				regulator-always-on;
				regulator-boot-on;
			};

			buck9_reg: BUCK9 {
				regulator-name = "vdd_2.8v_ldo";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3750000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck10_reg: BUCK10 {
				regulator-name = "vdd_vmem";
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <2850000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};
		};
	};
};

&mmc_2 {
	status = "okay";
	card-detect-delay = <200>;
	samsung,dw-mshc-ciu-div = <3>;
	samsung,dw-mshc-sdr-timing = <0 4>;
	samsung,dw-mshc-ddr-timing = <0 2>;
	pinctrl-names = "default";
	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_wp &sd2_bus1 &sd2_bus4>;
	bus-width = <4>;
	cap-sd-highspeed;
	max-frequency = <200000000>;
	vmmc-supply = <&ldo19_reg>;
	vqmmc-supply = <&ldo13_reg>;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	sd-uhs-ddr50;
};

&nocp_mem0_0 {
	status = "okay";
};

&nocp_mem0_1 {
	status = "okay";
};

&nocp_mem1_0 {
	status = "okay";
};

&nocp_mem1_1 {
	status = "okay";
};

&pinctrl_0 {
	s2mps11_irq: s2mps11-irq-pins {
		samsung,pins = "gpx0-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&ppmu_dmc0_0 {
	status = "okay";
};

&ppmu_dmc0_1 {
	status = "okay";
};

&ppmu_dmc1_0 {
	status = "okay";
};

&ppmu_dmc1_1 {
	status = "okay";
};

&tmu_cpu0 {
	vtmu-supply = <&ldo7_reg>;
};

&tmu_cpu1 {
	vtmu-supply = <&ldo7_reg>;
};

&tmu_cpu2 {
	vtmu-supply = <&ldo7_reg>;
};

&tmu_cpu3 {
	vtmu-supply = <&ldo7_reg>;
};

&tmu_gpu {
	vtmu-supply = <&ldo7_reg>;
};

&gpu {
	mali-supply = <&buck4_reg>;
	status = "okay";
};

&rtc {
	status = "okay";
	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
	clock-names = "rtc", "rtc_src";
};

&usbdrd_dwc3_0 {
	dr_mode = "host";
};

/* usbdrd_dwc3_1 mode customized in each board */

&usbdrd3_0 {
	vdd33-supply = <&ldo9_reg>;
	vdd10-supply = <&ldo11_reg>;
};

&usbdrd3_1 {
	vdd33-supply = <&ldo9_reg>;
	vdd10-supply = <&ldo11_reg>;
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid HC1 board device tree source
 *
 * Copyright (c) 2017 Marek Szyprowski
 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

/dts-v1/;
#include <dt-bindings/leds/common.h>
#include "exynos5422-odroid-core.dtsi"

/ {
	model = "Hardkernel Odroid HC1";
	compatible = "hardkernel,odroid-hc1", "samsung,exynos5800", \
		     "samsung,exynos5";

	led-controller {
		compatible = "pwm-leds";

		led-1 {
			function = LED_FUNCTION_HEARTBEAT;
			color = <LED_COLOR_ID_BLUE>;
			pwms = <&pwm 2 2000000 0>;
			pwm-names = "pwm2";
			max-brightness = <255>;
			linux,default-trigger = "heartbeat";
		};
	};

	thermal-zones {
		cpu0_thermal: cpu0-thermal {
			thermal-sensors = <&tmu_cpu0 0>;
			trips {
				cpu0_alert0: cpu-alert-0 {
					temperature = <70000>; /* millicelsius */
					hysteresis = <10000>; /* millicelsius */
					type = "active";
				};
				cpu0_alert1: cpu-alert-1 {
					temperature = <85000>; /* millicelsius */
					hysteresis = <10000>; /* millicelsius */
					type = "active";
				};
				cpu0_crit0: cpu-crit-0 {
					temperature = <120000>; /* millicelsius */
					hysteresis = <0>; /* millicelsius */
					type = "critical";
				};
			};

			cooling-maps {
				/*
				 * When reaching cpu0_alert0, reduce CPU
				 * by 2 steps. On Exynos5422/5800 that would
				 * be: 1600 MHz and 1100 MHz.
				 */
				map0 {
					trip = <&cpu0_alert0>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				/*
				 * When reaching cpu0_alert1, reduce CPU
				 * further, down to 600 MHz (12 steps for big,
				 * 7 steps for LITTLE).
				 */
				map1 {
					trip = <&cpu0_alert1>;
					cooling-device = <&cpu0 3 8>,
							 <&cpu1 3 8>,
							 <&cpu2 3 8>,
							 <&cpu3 3 8>,
							 <&cpu4 3 14>,
							 <&cpu5 3 14>,
							 <&cpu6 3 14>,
							 <&cpu7 3 14>;
				};
			};
		};
		cpu1_thermal: cpu1-thermal {
			thermal-sensors = <&tmu_cpu1 0>;
			trips {
				cpu1_alert0: cpu-alert-0 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "active";
				};
				cpu1_alert1: cpu-alert-1 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "active";
				};
				cpu1_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu1_alert0>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				map1 {
					trip = <&cpu1_alert1>;
					cooling-device = <&cpu0 3 8>,
							 <&cpu1 3 8>,
							 <&cpu2 3 8>,
							 <&cpu3 3 8>,
							 <&cpu4 3 14>,
							 <&cpu5 3 14>,
							 <&cpu6 3 14>,
							 <&cpu7 3 14>;
				};
			};
		};
		cpu2_thermal: cpu2-thermal {
			thermal-sensors = <&tmu_cpu2 0>;
			trips {
				cpu2_alert0: cpu-alert-0 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "active";
				};
				cpu2_alert1: cpu-alert-1 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "active";
				};
				cpu2_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu2_alert0>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				map1 {
					trip = <&cpu2_alert1>;
					cooling-device = <&cpu0 3 8>,
							 <&cpu1 3 8>,
							 <&cpu2 3 8>,
							 <&cpu3 3 8>,
							 <&cpu4 3 14>,
							 <&cpu5 3 14>,
							 <&cpu6 3 14>,
							 <&cpu7 3 14>;
				};
			};
		};
		cpu3_thermal: cpu3-thermal {
			thermal-sensors = <&tmu_cpu3 0>;
			trips {
				cpu3_alert0: cpu-alert-0 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "active";
				};
				cpu3_alert1: cpu-alert-1 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "active";
				};
				cpu3_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu3_alert0>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				map1 {
					trip = <&cpu3_alert1>;
					cooling-device = <&cpu0 3 8>,
							 <&cpu1 3 8>,
							 <&cpu2 3 8>,
							 <&cpu3 3 8>,
							 <&cpu4 3 14>,
							 <&cpu5 3 14>,
							 <&cpu6 3 14>,
							 <&cpu7 3 14>;
				};
			};
		};
		gpu_thermal: gpu-thermal {
			thermal-sensors = <&tmu_gpu 0>;
			trips {
				gpu_alert0: gpu-alert-0 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "active";
				};
				gpu_alert1: gpu-alert-1 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "active";
				};
				gpu_crit0: gpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&gpu_alert0>;
					cooling-device = <&gpu 0 2>;
				};
				map1 {
					trip = <&gpu_alert1>;
					cooling-device = <&gpu 3 6>;
				};
			};
		};
	};

};

&pwm {
	/*
	 * PWM 2 -- Blue LED
	 */
	pinctrl-0 = <&pwm2_out>;
	pinctrl-names = "default";
	samsung,pwm-outputs = <2>;
	status = "okay";
};

&usbdrd_dwc3_1 {
	dr_mode = "host";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid XU3 audio subsystem device tree source
 *
 * Copyright (c) 2015 Krzysztof Kozlowski
 * Copyright (c) 2014 Collabora Ltd.
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

#include <dt-bindings/sound/samsung-i2s.h>

/ {
	sound: sound {
		compatible = "samsung,odroid-xu3-audio";
		model = "Odroid-XU3";

		samsung,audio-widgets =
			"Headphone", "Headphone Jack",
			"Speakers", "Speakers";
		samsung,audio-routing =
			"Headphone Jack", "HPL",
			"Headphone Jack", "HPR",
			"Headphone Jack", "MICBIAS",
			"IN12", "Headphone Jack",
			"Speakers", "SPKL",
			"Speakers", "SPKR",
			"I2S Playback", "Mixer DAI TX",
			"HiFi Playback", "Mixer DAI TX",
			"Mixer DAI RX", "HiFi Capture";

		cpu {
			sound-dai = <&i2s0 0>, <&i2s0 1>;
		};
		codec {
			sound-dai = <&hdmi>, <&max98090>;
		};
	};
};

&hsi2c_5 {
	status = "okay";
	max98090: audio-codec@10 {
		compatible = "maxim,max98090";
		reg = <0x10>;
		interrupt-parent = <&gpx3>;
		interrupts = <2 IRQ_TYPE_NONE>;
		clocks = <&i2s0 CLK_I2S_CDCLK>;
		clock-names = "mclk";
		#sound-dai-cells = <0>;
	};
};

&i2s0 {
	status = "okay";
	assigned-clocks = <&clock CLK_MOUT_EPLL>,
			<&clock CLK_MOUT_MAU_EPLL>,
			<&clock CLK_MOUT_USER_MAU_EPLL>,
			<&clock_audss EXYNOS_MOUT_AUDSS>,
			<&clock_audss EXYNOS_MOUT_I2S>,
			<&i2s0 CLK_I2S_RCLK_SRC>,
			<&clock_audss EXYNOS_DOUT_SRP>,
			<&clock_audss EXYNOS_DOUT_AUD_BUS>,
			<&clock_audss EXYNOS_DOUT_I2S>;

	assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
			<&clock CLK_MOUT_EPLL>,
			<&clock CLK_MOUT_MAU_EPLL>,
			<&clock CLK_MAU_EPLL>,
			<&clock_audss EXYNOS_MOUT_AUDSS>,
			<&clock_audss EXYNOS_SCLK_I2S>;

	assigned-clock-rates = <0>,
			<0>,
			<0>,
			<0>,
			<0>,
			<0>,
			<196608001>,
			<(196608002 / 2)>,
			<196608000>;

};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid XU3/XU3-Lite/XU4 boards common device tree source
 *
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 * Copyright (c) 2014 Collabora Ltd.
 * Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
 *                    Anand Moon <linux.amoon@gmail.com>
 */

#include <dt-bindings/input/input.h>
#include "exynos5422-odroid-core.dtsi"

/ {
	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&power_key>;

		power-key {
			/*
			 * The power button (SW2) is connected to the PWRON
			 * pin (active high) of the S2MPS11 PMIC, which acts
			 * as a 16ms debouce filter and signal inverter with
			 * output on ONOB pin (active low). ONOB PMIC pin is
			 * then connected to XEINT3 SoC pin.
			 */
			gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
			label = "power key";
			debounce-interval = <0>;
			wakeup-source;
		};
	};

	emmc_pwrseq: pwrseq {
		pinctrl-0 = <&emmc_nrst_pin>;
		pinctrl-names = "default";
		compatible = "mmc-pwrseq-emmc";
		reset-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>;
	};

	fan0: pwm-fan {
		compatible = "pwm-fan";
		pwms = <&pwm 0 20972 0>;
		#cooling-cells = <2>;
		cooling-levels = <0 130 170 230>;
	};

	thermal-zones {
		cpu0_thermal: cpu0-thermal {
			thermal-sensors = <&tmu_cpu0 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu0_alert0: cpu-alert-0 {
					temperature = <50000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu0_alert1: cpu-alert-1 {
					temperature = <60000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu0_alert2: cpu-alert-2 {
					temperature = <70000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu0_crit0: cpu-crit-0 {
					temperature = <120000>; /* millicelsius */
					hysteresis = <0>; /* millicelsius */
					type = "critical";
				};
				/*
				 * Exynos542x supports only 4 trip-points
				 * so for these polling mode is required.
				 * Start polling at temperature level of last
				 * interrupt-driven trip: cpu0_alert2
				 */
				cpu0_alert3: cpu-alert-3 {
					temperature = <70000>; /* millicelsius */
					hysteresis = <10000>; /* millicelsius */
					type = "passive";
				};
				cpu0_alert4: cpu-alert-4 {
					temperature = <85000>; /* millicelsius */
					hysteresis = <10000>; /* millicelsius */
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu0_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&cpu0_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&cpu0_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				/*
				 * When reaching cpu0_alert3, reduce CPU
				 * by 2 steps. On Exynos5422/5800 that would
				 * (usually) be: 1800 MHz and 1200 MHz.
				 */
				map3 {
					trip = <&cpu0_alert3>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				/*
				 * When reaching cpu0_alert4, reduce CPU
				 * further, down to 600 MHz (14 steps for big,
				 * 8 steps for LITTLE).
				 */
				cpu0_cooling_map4: map4 {
					trip = <&cpu0_alert4>;
					cooling-device = <&cpu0 3 8>,
							 <&cpu1 3 8>,
							 <&cpu2 3 8>,
							 <&cpu3 3 8>,
							 <&cpu4 3 14>,
							 <&cpu5 3 14>,
							 <&cpu6 3 14>,
							 <&cpu7 3 14>;
				};
			};
		};
		cpu1_thermal: cpu1-thermal {
			thermal-sensors = <&tmu_cpu1 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu1_alert0: cpu-alert-0 {
					temperature = <50000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu1_alert1: cpu-alert-1 {
					temperature = <60000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu1_alert2: cpu-alert-2 {
					temperature = <70000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu1_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
				cpu1_alert3: cpu-alert-3 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "passive";
				};
				cpu1_alert4: cpu-alert-4 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu1_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&cpu1_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&cpu1_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				map3 {
					trip = <&cpu1_alert3>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				cpu1_cooling_map4: map4 {
					trip = <&cpu1_alert4>;
					cooling-device = <&cpu0 3 8>,
							 <&cpu1 3 8>,
							 <&cpu2 3 8>,
							 <&cpu3 3 8>,
							 <&cpu4 3 14>,
							 <&cpu5 3 14>,
							 <&cpu6 3 14>,
							 <&cpu7 3 14>;
				};
			};
		};
		cpu2_thermal: cpu2-thermal {
			thermal-sensors = <&tmu_cpu2 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu2_alert0: cpu-alert-0 {
					temperature = <50000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu2_alert1: cpu-alert-1 {
					temperature = <60000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu2_alert2: cpu-alert-2 {
					temperature = <70000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu2_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
				cpu2_alert3: cpu-alert-3 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "passive";
				};
				cpu2_alert4: cpu-alert-4 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu2_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&cpu2_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&cpu2_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				map3 {
					trip = <&cpu2_alert3>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				cpu2_cooling_map4: map4 {
					trip = <&cpu2_alert4>;
					cooling-device = <&cpu0 3 8>,
							 <&cpu1 3 8>,
							 <&cpu2 3 8>,
							 <&cpu3 3 8>,
							 <&cpu4 3 14>,
							 <&cpu5 3 14>,
							 <&cpu6 3 14>,
							 <&cpu7 3 14>;
				};
			};
		};
		cpu3_thermal: cpu3-thermal {
			thermal-sensors = <&tmu_cpu3 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu3_alert0: cpu-alert-0 {
					temperature = <50000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu3_alert1: cpu-alert-1 {
					temperature = <60000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu3_alert2: cpu-alert-2 {
					temperature = <70000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu3_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
				cpu3_alert3: cpu-alert-3 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "passive";
				};
				cpu3_alert4: cpu-alert-4 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu3_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&cpu3_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&cpu3_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				map3 {
					trip = <&cpu3_alert3>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				cpu3_cooling_map4: map4 {
					trip = <&cpu3_alert4>;
					cooling-device = <&cpu0 3 8>,
							 <&cpu1 3 8>,
							 <&cpu2 3 8>,
							 <&cpu3 3 8>,
							 <&cpu4 3 14>,
							 <&cpu5 3 14>,
							 <&cpu6 3 14>,
							 <&cpu7 3 14>;
				};
			};
		};
		gpu_thermal: gpu-thermal {
			thermal-sensors = <&tmu_gpu 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				gpu_alert0: gpu-alert-0 {
					temperature = <50000>;
					hysteresis = <5000>;
					type = "active";
				};
				gpu_alert1: gpu-alert-1 {
					temperature = <60000>;
					hysteresis = <5000>;
					type = "active";
				};
				gpu_alert2: gpu-alert-2 {
					temperature = <70000>;
					hysteresis = <5000>;
					type = "active";
				};
				gpu_crit0: gpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
				gpu_alert3: gpu-alert-3 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "passive";
				};
				gpu_alert4: gpu-alert-4 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&gpu_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&gpu_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&gpu_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				map3 {
					trip = <&gpu_alert3>;
					cooling-device = <&gpu 0 2>;
				};
				map4 {
					trip = <&gpu_alert4>;
					cooling-device = <&gpu 3 6>;
				};
			};
		};
	};
};

&buck10_reg {
	/* Supplies vmmc-supply of mmc_0 */
	regulator-always-on;
	regulator-boot-on;
};

&hdmi {
	status = "okay";
	ddc = <&i2c_2>;
	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&hdmi_hpd_irq>;

	vdd_osc-supply = <&ldo7_reg>;
	vdd_pll-supply = <&ldo6_reg>;
	vdd-supply = <&ldo6_reg>;
};

&hdmicec {
	status = "okay";
	needs-hpd;
};

&i2c_2 {
	samsung,i2c-sda-delay = <100>;
	samsung,i2c-max-bus-freq = <66000>;
	/* used by HDMI DDC */
	status = "okay";
};

&ldo26_reg {
	regulator-min-microvolt = <3000000>;
	regulator-max-microvolt = <3000000>;
	regulator-always-on;
};

&mixer {
	status = "okay";
};

&mmc_0 {
	status = "okay";
	mmc-pwrseq = <&emmc_pwrseq>;
	card-detect-delay = <200>;
	samsung,dw-mshc-ciu-div = <3>;
	samsung,dw-mshc-sdr-timing = <0 4>;
	samsung,dw-mshc-ddr-timing = <0 2>;
	samsung,dw-mshc-hs400-timing = <0 2>;
	samsung,read-strobe-delay = <90>;
	pinctrl-names = "default";
	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd &sd0_rclk>;
	bus-width = <8>;
	cap-mmc-highspeed;
	mmc-hs200-1_8v;
	mmc-hs400-1_8v;
	max-frequency = <200000000>;
	vmmc-supply = <&ldo18_reg>;
	vqmmc-supply = <&ldo3_reg>;
};

&pinctrl_0 {
	power_key: power-key-pins {
		samsung,pins = "gpx0-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	hdmi_hpd_irq: hdmi-hpd-irq-pins {
		samsung,pins = "gpx3-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&pinctrl_1 {
	emmc_nrst_pin: emmc-nrst-pins {
		samsung,pins = "gpd1-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid XU3-Lite board device tree source
 *
 * Copyright (c) 2015 Krzysztof Kozlowski
 * Copyright (c) 2014 Collabora Ltd.
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

/dts-v1/;
#include "exynos5422-odroidxu3-common.dtsi"
#include "exynos5422-odroidxu3-audio.dtsi"
#include "exynos54xx-odroidxu-leds.dtsi"

/ {
	model = "Hardkernel Odroid XU3 Lite";
	compatible = "hardkernel,odroid-xu3-lite", "samsung,exynos5800", "samsung,exynos5";

	aliases {
		ethernet = &ethernet;
	};
};

&arm_a7_pmu {
	status = "disabled";
};

&arm_a15_pmu {
	status = "disabled";
};

&chipid {
	samsung,asv-bin = <2>;
};

/*
 * Odroid XU3-Lite board uses SoC revision with lower maximum frequencies
 * than Odroid XU3/XU4 boards: 1.8 GHz for A15 cores & 1.3 GHz for A7 cores.
 * Therefore we need to update OPPs tables and thermal maps accordingly.
 */
&cluster_a15_opp_table {
	/delete-node/opp-2000000000;
	/delete-node/opp-1900000000;
};

&cluster_a7_opp_table {
	/delete-node/opp-1400000000;
};

&cpu0_cooling_map4 {
	cooling-device = <&cpu0 3 7>,
			 <&cpu1 3 7>,
			 <&cpu2 3 7>,
			 <&cpu3 3 7>,
			 <&cpu4 3 12>,
			 <&cpu5 3 12>,
			 <&cpu6 3 12>,
			 <&cpu7 3 12>;
};

&cpu1_cooling_map4 {
	cooling-device = <&cpu0 3 7>,
			 <&cpu1 3 7>,
			 <&cpu2 3 7>,
			 <&cpu3 3 7>,
			 <&cpu4 3 12>,
			 <&cpu5 3 12>,
			 <&cpu6 3 12>,
			 <&cpu7 3 12>;
};

&cpu2_cooling_map4 {
	cooling-device = <&cpu0 3 7>,
			 <&cpu1 3 7>,
			 <&cpu2 3 7>,
			 <&cpu3 3 7>,
			 <&cpu4 3 12>,
			 <&cpu5 3 12>,
			 <&cpu6 3 12>,
			 <&cpu7 3 12>;
};

&cpu3_cooling_map4 {
	cooling-device = <&cpu0 3 7>,
			 <&cpu1 3 7>,
			 <&cpu2 3 7>,
			 <&cpu3 3 7>,
			 <&cpu4 3 12>,
			 <&cpu5 3 12>,
			 <&cpu6 3 12>,
			 <&cpu7 3 12>;
};

&pwm {
	/*
	 * PWM 0 -- fan
	 * PWM 1 -- Green LED
	 * PWM 2 -- Blue LED
	 * PWM 3 -- on MIPI connector for backlight
	 */
	pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
	pinctrl-names = "default";
	status = "okay";
};

&usbdrd_dwc3_1 {
	dr_mode = "peripheral";
};

&usbhost2 {
	#address-cells = <1>;
	#size-cells = <0>;

	hub@1 {
		compatible = "usb424,9514";
		reg = <1>;
		#address-cells = <1>;
		#size-cells = <0>;

		ethernet: ethernet@1 {
			compatible = "usb424,ec00";
			reg = <1>;
			local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid XU3 board device tree source
 *
 * Copyright (c) 2014 Collabora Ltd.
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

/dts-v1/;
#include "exynos5422-odroidxu3-common.dtsi"
#include "exynos5422-odroidxu3-audio.dtsi"
#include "exynos54xx-odroidxu-leds.dtsi"

/ {
	model = "Hardkernel Odroid XU3";
	compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5";

	aliases {
		ethernet = &ethernet;
	};
};

&i2c_0 {
	status = "okay";

	/* A15 cluster: VDD_ARM */
	power-sensor@40 {
		compatible = "ti,ina231";
		reg = <0x40>;
		shunt-resistor = <10000>;
	};

	/* memory: VDD_MEM */
	power-sensor@41 {
		compatible = "ti,ina231";
		reg = <0x41>;
		shunt-resistor = <10000>;
	};

	/* GPU: VDD_G3D */
	power-sensor@44 {
		compatible = "ti,ina231";
		reg = <0x44>;
		shunt-resistor = <10000>;
	};

	/* A7 cluster: VDD_KFC */
	power-sensor@45 {
		compatible = "ti,ina231";
		reg = <0x45>;
		shunt-resistor = <10000>;
	};
};

&ldo28_reg {
	regulator-name = "dp_p3v3";
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
};

&pwm {
	/*
	 * PWM 0 -- fan
	 * PWM 1 -- Green LED
	 * PWM 2 -- Blue LED
	 * PWM 3 -- on MIPI connector for backlight
	 */
	pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
	pinctrl-names = "default";
	status = "okay";
};

&usbdrd_dwc3_1 {
	dr_mode = "peripheral";
};

&usbhost2 {
	#address-cells = <1>;
	#size-cells = <0>;

	hub@1 {
		compatible = "usb424,9514";
		reg = <1>;
		#address-cells = <1>;
		#size-cells = <0>;

		ethernet: ethernet@1 {
			compatible = "usb424,ec00";
			reg = <1>;
			local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid XU4 board device tree source
 *
 * Copyright (c) 2015 Krzysztof Kozlowski
 * Copyright (c) 2014 Collabora Ltd.
 * Copyright (c) 2013-2015 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

/dts-v1/;
#include <dt-bindings/leds/common.h>
#include <dt-bindings/sound/samsung-i2s.h>
#include "exynos5422-odroidxu3-common.dtsi"

/ {
	model = "Hardkernel Odroid XU4";
	compatible = "hardkernel,odroid-xu4", "samsung,exynos5800", \
		     "samsung,exynos5";

	led-controller {
		compatible = "pwm-leds";

		led-1 {
			function = LED_FUNCTION_HEARTBEAT;
			color = <LED_COLOR_ID_BLUE>;
			pwms = <&pwm 2 2000000 0>;
			pwm-names = "pwm2";
			max-brightness = <255>;
			linux,default-trigger = "heartbeat";
		};
	};

	sound: sound {
		compatible = "samsung,odroid-xu3-audio";
		model = "Odroid-XU4";

		samsung,audio-routing = "I2S Playback", "Mixer DAI TX";

		cpu {
			sound-dai = <&i2s0 0>, <&i2s0 1>;
		};

		codec {
			sound-dai = <&hdmi>;
		};
	};
};

&i2s0 {
	status = "okay";

	assigned-clocks = <&clock CLK_MOUT_EPLL>,
			  <&clock CLK_MOUT_MAU_EPLL>,
			  <&clock CLK_MOUT_USER_MAU_EPLL>,
			  <&clock_audss EXYNOS_MOUT_AUDSS>,
			  <&clock_audss EXYNOS_MOUT_I2S>,
			  <&i2s0 CLK_I2S_RCLK_SRC>,
			  <&clock_audss EXYNOS_DOUT_SRP>,
			  <&clock_audss EXYNOS_DOUT_AUD_BUS>,
			  <&clock_audss EXYNOS_DOUT_I2S>;

	assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
				 <&clock CLK_MOUT_EPLL>,
				 <&clock CLK_MOUT_MAU_EPLL>,
				 <&clock CLK_MAU_EPLL>,
				 <&clock_audss EXYNOS_MOUT_AUDSS>,
				 <&clock_audss EXYNOS_SCLK_I2S>;

	assigned-clock-rates = <0>,
			       <0>,
			       <0>,
			       <0>,
			       <0>,
			       <0>,
			       <196608001>,
			       <(196608002 / 2)>,
			       <196608000>;
};

&pwm {
	/*
	 * PWM 0 -- fan
	 * PWM 2 -- Blue LED
	 */
	pinctrl-0 = <&pwm0_out &pwm2_out>;
	pinctrl-names = "default";
	samsung,pwm-outputs = <0>, <2>;
	status = "okay";
};

&usbdrd_dwc3_1 {
	dr_mode = "host";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid XU/XU3 LED device tree source
 *
 * Copyright (c) 2015,2016 Krzysztof Kozlowski
 * Copyright (c) 2014 Collabora Ltd.
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>

/ {
	led-controller-1 {
		compatible = "pwm-leds";

		led-1 {
			label = "green:mmc0";
			function = LED_FUNCTION_DISK_ACTIVITY;
			color = <LED_COLOR_ID_GREEN>;
			pwms = <&pwm 1 2000000 0>;
			pwm-names = "pwm1";
			/*
			 * Green LED is much brighter than the others
			 * so limit its max brightness
			 */
			max-brightness = <127>;
			linux,default-trigger = "mmc0";
		};

		led-2 {
			function = LED_FUNCTION_HEARTBEAT;
			color = <LED_COLOR_ID_BLUE>;
			pwms = <&pwm 2 2000000 0>;
			pwm-names = "pwm2";
			max-brightness = <255>;
			linux,default-trigger = "heartbeat";
		};
	};

	led-controller-2 {
		compatible = "gpio-leds";

		led-3 {
			label = "red:microSD";
			function = LED_FUNCTION_DISK_ACTIVITY;
			color = <LED_COLOR_ID_RED>;
			gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			linux,default-trigger = "mmc1";
		};
	};
};