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

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

/ {
	compatible = "samsung,exynos5410", "samsung,exynos5";
	interrupt-parent = <&gic>;

	aliases {
		pinctrl0 = &pinctrl_0;
		pinctrl1 = &pinctrl_1;
		pinctrl2 = &pinctrl_2;
		pinctrl3 = &pinctrl_3;
	};

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

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0x0>;
			clock-frequency = <1600000000>;
		};

		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0x1>;
			clock-frequency = <1600000000>;
		};

		cpu2: cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0x2>;
			clock-frequency = <1600000000>;
		};

		cpu3: cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0x3>;
			clock-frequency = <1600000000>;
		};
	};

	soc: soc {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		pmu_system_controller: system-controller@10040000 {
			compatible = "samsung,exynos5410-pmu", "syscon";
			reg = <0x10040000 0x5000>;
			clock-names = "clkout16";
			clocks = <&fin_pll>;
			#clock-cells = <1>;
		};

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

		clock_audss: audss-clock-controller@3810000 {
			compatible = "samsung,exynos5410-audss-clock";
			reg = <0x03810000 0x0C>;
			#clock-cells = <1>;
			clocks = <&fin_pll>, <&clock CLK_FOUT_EPLL>;
			clock-names = "pll_ref", "pll_in";
		};

		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";
			reg = <0x10068000 0x100>;
			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clock CLK_TMU>;
			clock-names = "tmu_apbif";
			#thermal-sensor-cells = <0>;
		};

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

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

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

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

		pinctrl_0: pinctrl@13400000 {
			compatible = "samsung,exynos5410-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@14000000 {
			compatible = "samsung,exynos5410-pinctrl";
			reg = <0x14000000 0x1000>;
			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
		};

		pinctrl_2: pinctrl@10d10000 {
			compatible = "samsung,exynos5410-pinctrl";
			reg = <0x10d10000 0x1000>;
			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
		};

		pinctrl_3: pinctrl@3860000 {
			compatible = "samsung,exynos5410-pinctrl";
			reg = <0x03860000 0x1000>;
			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
		};

		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>;
		};

		audi2s0: i2s@3830000 {
			compatible = "samsung,exynos5420-i2s";
			reg = <0x03830000 0x100>;
			dmas = <&pdma0 10>,
				<&pdma0 9>,
				<&pdma0 8>;
			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 = <&audi2s0_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"
		};
	};
};

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

&arm_a15_pmu {
	interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
	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 = <&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";
	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";
};

&sromc {
	#address-cells = <2>;
	#size-cells = <1>;
	ranges = <0 0 0x04000000 0x20000
		  1 0 0x05000000 0x20000
		  2 0 0x06000000 0x20000
		  3 0 0x07000000 0x20000>;
};

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

&usbdrd3_0 {
	clocks = <&clock CLK_USBD300>;
	clock-names = "usbdrd30";
	pinctrl-names = "default";
	pinctrl-0 = <&usb3_0_oc>, <&usb3_0_vbusctrl>;
};

&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";
	pinctrl-names = "default";
	pinctrl-0 = <&usb3_1_oc>, <&usb3_1_vbusctrl>;
};

&usbdrd_dwc3_1 {
	interrupts = <GIC_SPI 200 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 "exynos5410-pinctrl.dtsi"
#include "exynos-syscon-restart.dtsi"


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Samsung's Exynos5420 based Arndale Octa 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/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/clock/samsung,s2mps11.h>

/ {
	model = "Insignal Arndale Octa evaluation board based on Exynos5420";
	compatible = "insignal,arndale-octa", "samsung,exynos5420", "samsung,exynos5";

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

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

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

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

	gpio-keys {
		compatible = "gpio-keys";

		key-wakeup {
			label = "SW-TACT1";
			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_WAKEUP>;
			wakeup-source;
		};
	};
};

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

&cci {
	status = "disabled";
};

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

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

&cpu0_thermal {
	trips {
		cpu0_alert0: cpu-alert-0 {
			temperature = <60000>; /* millicelsius */
			hysteresis = <5000>; /* millicelsius */
			type = "passive";
		};
		cpu0_alert1: cpu-alert-1 {
			temperature = <80000>; /* millicelsius */
			hysteresis = <10000>; /* millicelsius */
			type = "passive";
		};
		cpu0_alert2: cpu-alert-2 {
			temperature = <110000>; /* millicelsius */
			hysteresis = <10000>; /* millicelsius */
			type = "passive";
		};
		cpu0_crit0: cpu-crit-0 {
			temperature = <120000>; /* millicelsius */
			hysteresis = <0>; /* millicelsius */
			type = "critical";
		};
	};

	cooling-maps {
		/*
		 * Reduce the CPU speed by 2 steps, down to: 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>;
		};

		/*
		 * Reduce the CPU speed down to 1200 MHz big (6 steps)
		 * and 800 MHz LITTLE (5 steps).
		 */
		map1 {
			trip = <&cpu0_alert1>;
			cooling-device = <&cpu0 3 6>,
					 <&cpu1 3 6>,
					 <&cpu2 3 6>,
					 <&cpu3 3 6>,
					 <&cpu4 3 5>,
					 <&cpu5 3 5>,
					 <&cpu6 3 5>,
					 <&cpu7 3 5>;
		};

		/*
		 * Reduce the CPU speed as much as possible, down to 700 MHz
		 * big (11 steps) and 600 MHz LITTLE (7 steps).
		 */
		map2 {
			trip = <&cpu0_alert2>;
			cooling-device = <&cpu0 6 11>,
					 <&cpu1 6 11>,
					 <&cpu2 6 11>,
					 <&cpu3 6 11>,
					 <&cpu4 5 7>,
					 <&cpu5 5 7>,
					 <&cpu6 5 7>,
					 <&cpu7 5 7>;
		};
	};
};

&cpu1_thermal {
	trips {
		cpu1_alert0: cpu-alert-0 {
			temperature = <60000>; /* millicelsius */
			hysteresis = <5000>; /* millicelsius */
			type = "passive";
		};
		cpu1_alert1: cpu-alert-1 {
			temperature = <80000>; /* millicelsius */
			hysteresis = <10000>; /* millicelsius */
			type = "passive";
		};
		cpu1_alert2: cpu-alert-2 {
			temperature = <110000>; /* millicelsius */
			hysteresis = <10000>; /* millicelsius */
			type = "passive";
		};
		cpu1_crit0: cpu-crit-0 {
			temperature = <120000>; /* millicelsius */
			hysteresis = <0>; /* millicelsius */
			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 6>,
					 <&cpu1 3 6>,
					 <&cpu2 3 6>,
					 <&cpu3 3 6>,
					 <&cpu4 3 5>,
					 <&cpu5 3 5>,
					 <&cpu6 3 5>,
					 <&cpu7 3 5>;
		};

		map2 {
			trip = <&cpu1_alert2>;
			cooling-device = <&cpu0 6 11>,
					 <&cpu1 6 11>,
					 <&cpu2 6 11>,
					 <&cpu3 6 11>,
					 <&cpu4 5 7>,
					 <&cpu5 5 7>,
					 <&cpu6 5 7>,
					 <&cpu7 5 7>;
		};
	};
};

&cpu2_thermal {
	trips {
		cpu2_alert0: cpu-alert-0 {
			temperature = <60000>; /* millicelsius */
			hysteresis = <5000>; /* millicelsius */
			type = "passive";
		};
		cpu2_alert1: cpu-alert-1 {
			temperature = <80000>; /* millicelsius */
			hysteresis = <10000>; /* millicelsius */
			type = "passive";
		};
		cpu2_alert2: cpu-alert-2 {
			temperature = <110000>; /* millicelsius */
			hysteresis = <10000>; /* millicelsius */
			type = "passive";
		};
		cpu2_crit0: cpu-crit-0 {
			temperature = <120000>; /* millicelsius */
			hysteresis = <0>; /* millicelsius */
			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 6>,
					 <&cpu1 3 6>,
					 <&cpu2 3 6>,
					 <&cpu3 3 6>,
					 <&cpu4 3 5>,
					 <&cpu5 3 5>,
					 <&cpu6 3 5>,
					 <&cpu7 3 5>;
		};

		map2 {
			trip = <&cpu2_alert2>;
			cooling-device = <&cpu0 6 11>,
					 <&cpu1 6 11>,
					 <&cpu2 6 11>,
					 <&cpu3 6 11>,
					 <&cpu4 6 7>,
					 <&cpu5 6 7>,
					 <&cpu6 6 7>,
					 <&cpu7 6 7>;
		};
	};
};

&cpu3_thermal {
	trips {
		cpu3_alert0: cpu-alert-0 {
			temperature = <60000>; /* millicelsius */
			hysteresis = <5000>; /* millicelsius */
			type = "passive";
		};
		cpu3_alert1: cpu-alert-1 {
			temperature = <80000>; /* millicelsius */
			hysteresis = <10000>; /* millicelsius */
			type = "passive";
		};
		cpu3_alert2: cpu-alert-2 {
			temperature = <110000>; /* millicelsius */
			hysteresis = <10000>; /* millicelsius */
			type = "passive";
		};
		cpu3_crit0: cpu-crit-0 {
			temperature = <120000>; /* millicelsius */
			hysteresis = <0>; /* millicelsius */
			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 6>,
					 <&cpu1 3 6>,
					 <&cpu2 3 6>,
					 <&cpu3 3 6>,
					 <&cpu4 3 5>,
					 <&cpu5 3 5>,
					 <&cpu6 3 5>,
					 <&cpu7 3 5>;
		};

		map2 {
			trip = <&cpu3_alert2>;
			cooling-device = <&cpu0 6 11>,
					 <&cpu1 6 11>,
					 <&cpu2 6 11>,
					 <&cpu3 6 11>,
					 <&cpu4 5 7>,
					 <&cpu5 5 7>,
					 <&cpu6 5 7>,
					 <&cpu7 5 7>;
		};
	};
};

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

&hsi2c_4 {
	status = "okay";

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

		interrupt-parent = <&gpx3>;
		interrupts = <2 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 = "PVDD_ALIVE_1V0";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
			};

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

			ldo3_reg: LDO3 {
				regulator-name = "PVDD_APIO_MMCON_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				/*
				 * Must be always on, even though there is
				 * a consumer (mmc_0).  Otherwise the board
				 * does not reboot with vendor U-Boot
				 * (Linaro for Arndale Octa, v2012.07).
				 */
				regulator-always-on;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

			ldo16_reg: LDO16 {
				regulator-name = "PVDD_PERI_3V3";
				regulator-min-microvolt = <2200000>;
				regulator-max-microvolt = <2200000>;

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

			ldo17_reg: LDO17 {
				/* Unused */
				regulator-name = "PVDD_LDO17";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3950000>;
			};

			ldo18_reg: LDO18 {
				regulator-name = "PVDD_EMMC_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				/*
				 * Must stay in "off" mode during shutdown for
				 * proper eMMC reset.  The "off" mode is in
				 * fact controlled by LDO18EN.  The eMMC does
				 * not have reset pin connected so the reset
				 * will be triggered by falling edge of
				 * LDO18EN.
				 */

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

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

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

			ldo20_reg: LDO20 {
				regulator-name = "PVDD_BTWIFI_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo21_reg: LDO21 {
				regulator-name = "PVDD_CAM1IO_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

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

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

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

			ldo24_reg: LDO24 {
				regulator-name = "PVDD_CAM1_AVDD_2V8";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;

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

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

			ldo26_reg: LDO26 {
				regulator-name = "PVDD_CAM0_AF_2V8";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
			};

			ldo27_reg: LDO27 {
				regulator-name = "PVDD_G3DS_1V0";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1100000>;
				regulator-always-on;

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

			ldo28_reg: LDO28 {
				regulator-name = "PVDD_TSP_3V3";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo29_reg: LDO29 {
				regulator-name = "PVDD_AUDIO_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

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

			ldo31_reg: LDO31 {
				regulator-name = "PVDD_PERI_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo32_reg: LDO32 {
				regulator-name = "PVDD_LCD_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo33_reg: LDO33 {
				regulator-name = "PVDD_CAM0IO_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

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

			ldo35_reg: LDO35 {
				regulator-name = "PVDD_CAM0_DVDD_1V2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
			};

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

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

			ldo38_reg: LDO38 {
				regulator-name = "PVDD_CAM0_AVDD_2V8";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
			};

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

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

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

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

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

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

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

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

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

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

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

			buck7_reg: BUCK7 {
				regulator-name = "VIN_LLDO_1V4";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
			};

			buck8_reg: BUCK8 {
				regulator-name = "VIN_MLDO_2V0";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <2100000>;
				regulator-always-on;
			};

			buck9_reg: BUCK9 {
				regulator-name = "VIN_HLDO_3V5";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3500000>;
				regulator-always-on;
			};

			buck10_reg: BUCK10 {
				regulator-name = "PVDD_EMMCF_2V8";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				/*
				 * Must stay in "off" mode during shutdown for
				 * proper eMMC reset.  The "off" mode is in
				 * fact controlled by BUCK10EN.  The eMMC does
				 * not have reset pin connected so the reset
				 * will be triggered by falling edge of
				 * BUCK10EN.
				 */

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

&i2c_2 {
	status = "okay";
};

&mixer {
	status = "okay";
};

&mmc_0 {
	status = "okay";
	non-removable;
	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 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
	vmmc-supply = <&ldo18_reg>;
	vqmmc-supply = <&ldo3_reg>;
	bus-width = <8>;
	cap-mmc-highspeed;
	mmc-hs200-1_8v;
};

&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_bus1 &sd2_bus4>;
	vmmc-supply = <&ldo19_reg>;
	vqmmc-supply = <&ldo13_reg>;
	bus-width = <4>;
	cap-sd-highspeed;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	sd-uhs-ddr50;
};

&pinctrl_0 {
	s2mps11_irq: s2mps11-irq-pins {
		samsung,pins = "gpx3-2";
		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
		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";
};

&usbdrd_dwc3_1 {
	dr_mode = "host";
};

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

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

repo_name: angery/linux


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Samsung's Exynos5420 Chagall WiFi board device tree source
 *
 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 * Copyright (c) 2022 Henrik Grimler
 */

/dts-v1/;
#include "exynos5420-galaxy-tab-common.dtsi"

/ {
	model = "Samsung Chagall WiFi based on Exynos5420";
	compatible = "samsung,chagall-wifi", "samsung,exynos5420", \
		     "samsung,exynos5";
};

&ldo15_reg {
	/* Unused */
	regulator-name = "VDD_LDO15";
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
};

&ldo17_reg {
	regulator-name = "VDD_IRLED_3V3";
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3350000>;
	regulator-always-on;
	regulator-boot-on;

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

&ldo28_reg {
	/* Unused */
	regulator-name = "VDD_LDO28";
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
};

&ldo29_reg {
	regulator-name = "VDD_TCON_1V8";
	regulator-min-microvolt = <1900000>;
	regulator-max-microvolt = <1900000>;

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

&ldo31_reg {
	regulator-name = "VDD_GRIP_1V8";
	regulator-min-microvolt = <1800000>;
	regulator-max-microvolt = <1800000>;
	regulator-always-on;
	regulator-boot-on;

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

&ldo32_reg {
	regulator-name = "VDD_TSP_1V8";
	regulator-min-microvolt = <1900000>;
	regulator-max-microvolt = <1900000>;

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


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Samsung Exynos5420 SoC cpu device tree source
 *
 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * This file provides desired ordering for Exynos5420 and Exynos5800
 * boards: CPU[0123] being the A15.
 *
 * 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@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>;
		};

		cpu1: 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>;
		};

		cpu2: 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>;
		};

		cpu3: 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>;
		};

		cpu4: 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>;
		};

		cpu5: 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>;
		};

		cpu6: 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>;
		};

		cpu7: 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>;
		};
	};
};

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

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


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Base DT for Samsung's family of tablets based on Exynos5420.
 *
 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 * Copyright (c) 2022 Henrik Grimler
 */

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

/ {
	chassis-type = "tablet";

	/*
	 * To successfully boot the mainline kernel with the stock
	 * bootloader (SBOOT), the tlb needs to be flushed after the
	 * page table pointer has been updated in __common_mmu_cache_on.
	 * The same hack is also needed to boot exynos4412-i9300 with
	 * stock bootloader, and probably other Samsung devices of
	 * similar age.  See
	 * https://lore.kernel.org/all/1355276466-18295-1-git-send-email-arve@android.com
	 * for more details.
	 */

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

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

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

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

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";

		key-power {
			debounce-interval = <10>;
			gpios = <&gpx2 2 GPIO_ACTIVE_LOW>;
			label = "Power";
			linux,code = <KEY_POWER>;
			wakeup-source;
		};

		key-home {
			debounce-interval = <10>;
			gpios = <&gpx0 5 GPIO_ACTIVE_LOW>;
			label = "Home";
			linux,code = <KEY_HOME>;
			wakeup-source;
		};

		key-volume-up {
			debounce-interval = <10>;
			gpios = <&gpx0 2 GPIO_ACTIVE_LOW>;
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
		};

		key-volume-down {
			debounce-interval = <10>;
			gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
			label = "Volume Down";
			linux,code = <KEY_VOLUMEDOWN>;
		};
	};
};

&cci {
	/* CCI is disabled in hardware */
	status = "disabled";
};

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

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

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

&hsi2c_7 {
	status = "okay";

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

		interrupt-parent = <&gpx3>;
		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&s2mps11_irq>;

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

		regulators {
			buck1_reg: BUCK1 {
				regulator-name = "VDD_MIF_1V1";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1300000>;
				regulator-always-on;
				regulator-boot-on;

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

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

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

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

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

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

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

			buck5_reg: BUCK5 {
				regulator-name = "VDD_MEM_1V2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-always-on;
				regulator-boot-on;

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

			};

			buck6_reg: BUCK6 {
				regulator-name = "VDD_KFC_1V0";
				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 = "VIN_LLDO_1V4";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
			};

			buck8_reg: BUCK8 {
				regulator-name = "VIN_MLDO_2V0";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <2100000>;
				regulator-always-on;
			};

			buck9_reg: BUCK9 {
				regulator-name = "VIN_HLDO_3V5";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3500000>;
				regulator-always-on;
			};

			buck10_reg: BUCK10 {
				regulator-name = "VDD_CAM_ISP_1V0";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <3550000>;
			};

			ldo1_reg: LDO1 {
				regulator-name = "VDD_ALIVE_1.0V";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
			};

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

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

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

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

			ldo4_reg: LDO4 {
				regulator-name = "VDD_ADC_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;

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

			ldo5_reg: LDO5 {
				/* Unused */
				regulator-name = "VDD_LDO5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

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

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

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

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

			ldo8_reg: LDO8 {
				/* Unused */
				regulator-name = "VDD_LDO8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

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

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

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

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

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

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

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

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

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

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

			ldo14_reg: LDO14 {
				regulator-name = "VDD_MOTOR_3V0";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;

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

			ldo15_reg: LDO15 {
				regulator-name = "VDD_LDO15";
				/*
				 * LDO15 varies between devices and is
				 * specified in the device dts
				 */
			};

			ldo16_reg: LDO16 {
				regulator-name = "VDD_AP_2V8";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-always-on;
				regulator-boot-on;

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

			ldo17_reg: LDO17 {
				regulator-name = "VDD_LDO17";
				/*
				 * LDO17 varies between devices and is
				 * specified in the device dts
				 */
			};

			ldo18_reg: LDO18 {
				/* Unused */
				regulator-name = "VDD_LDO18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

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

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

			ldo20_reg: LDO20 {
				regulator-name = "VDD_CAM1_CAM_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

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

			ldo21_reg: LDO21 {
				regulator-name = "VDD_CAM_IO_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

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

			ldo22_reg: LDO22 {
				regulator-name = "VDD_CAM0_S_CORE_1V1";
				regulator-min-microvolt = <1050000>;
				regulator-max-microvolt = <1200000>;

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

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

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

			ldo24_reg: LDO24 {
				regulator-name = "VDD_TSP_3V3";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;

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

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

			ldo26_reg: LDO26 {
				regulator-name = "VDD_CAM0_AF_2V8";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;

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

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

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

			ldo28_reg: LDO28 {
				regulator-name = "VDD_LDO28";
				/*
				 * LDO28 varies between devices and is
				 * specified in the device dts
				 */
			};

			ldo29_reg: LDO29 {
				regulator-name = "VDD_LDO29";
				/*
				 * LDO29 varies between devices and is
				 * specified in the device dts
				 */
			};

			ldo30_reg: LDO30 {
				regulator-name = "VDD_TOUCH_1V8";
				regulator-min-microvolt = <1900000>;
				regulator-max-microvolt = <1900000>;

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

			ldo31_reg: LDO31 {
				regulator-name = "VDD_LDO31";
				/*
				 * LDO31 varies between devices and is
				 * specified in the device dts
				 */
			};

			ldo32_reg: LDO32 {
				regulator-name = "VDD_LDO32";
				/*
				 * LDO32 varies between devices and is
				 * specified in the device dts
				 */
			};

			ldo33_reg: LDO33 {
				regulator-name = "VDD_MHL_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

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

			ldo34_reg: LDO34 {
				regulator-name = "VDD_MHL_3V3";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;

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

			ldo35_reg: LDO35 {
				regulator-name = "VDD_SIL_1V2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;

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

			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 {
				regulator-name = "VDD_KEY_LED_3V3";
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <3300000>;

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

&mixer {
	status = "okay";
};

/* Internal storage */
&mmc_0 {
	status = "okay";
	bus-width = <8>;
	cap-mmc-highspeed;
	card-detect-delay = <200>;
	mmc-hs200-1_8v;
	non-removable;
	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
	pinctrl-names = "default";
	samsung,dw-mshc-ciu-div = <3>;
	samsung,dw-mshc-ddr-timing = <0 2>;
	samsung,dw-mshc-sdr-timing = <0 4>;
	vqmmc-supply = <&ldo3_reg>;
};

/* External sdcard */
&mmc_2 {
	status = "okay";
	bus-width = <4>;
	cap-sd-highspeed;
	card-detect-delay = <200>;
	cd-gpios = <&gpx2 4 GPIO_ACTIVE_LOW>;
	pinctrl-0 = <&sd2_clk &sd2_cmd &mmc2_cd &sd2_bus1 &sd2_bus4>;
	pinctrl-names = "default";
	samsung,dw-mshc-ciu-div = <3>;
	samsung,dw-mshc-ddr-timing = <0 2>;
	samsung,dw-mshc-sdr-timing = <0 4>;
	sd-uhs-sdr50;
	vmmc-supply = <&ldo19_reg>;
	vqmmc-supply = <&ldo13_reg>;
};

&pinctrl_0 {
	mmc2_cd: mmc2-cd-pins {
		samsung,pins = "gpx2-4";
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
	};

	s2mps11_irq: s2mps11-irq-pins {
		samsung,pins = "gpx3-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
		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";
};

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

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

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

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

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

&usbdrd_dwc3_0 {
	dr_mode = "peripheral";
};

&usbdrd_dwc3_1 {
	dr_mode = "peripheral";
};

&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
/*
 * Samsung's Exynos5420 Klimt WiFi board device tree source
 *
 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 * Copyright (c) 2022 Henrik Grimler
 */

/dts-v1/;
#include "exynos5420-galaxy-tab-common.dtsi"

/ {
	model = "Samsung Klimt WiFi based on Exynos5420";
	compatible = "samsung,klimt-wifi", "samsung,exynos5420", \
		     "samsung,exynos5";
};

&ldo15_reg {
	/* Unused */
	regulator-name = "VDD_LDO15";
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
};

&ldo17_reg {
	regulator-name = "VDD_VCI_3V0";
	regulator-min-microvolt = <3000000>;
	regulator-max-microvolt = <3000000>;

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

&ldo28_reg {
	regulator-name = "VDD3_1V8";
	regulator-min-microvolt = <1800000>;
	regulator-max-microvolt = <1800000>;

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

&ldo29_reg {
	regulator-name = "VDDR_1V6";
	regulator-min-microvolt = <1600000>;
	regulator-max-microvolt = <1600000>;

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

&ldo31_reg {
	/* Unused */
	regulator-name = "VDD_LDO31";
	regulator-min-microvolt = <1800000>;
	regulator-max-microvolt = <1800000>;
};

&ldo32_reg {
	regulator-name = "VDD_TSP_1V8";
	regulator-min-microvolt = <1800000>;
	regulator-max-microvolt = <1800000>;

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

&mmc_2 {
	sd-uhs-sdr104;
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Google Peach Pit Rev 6+ board device tree source
 *
 * Copyright (c) 2014 Google, Inc
 */

/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/maxim,max77802.h>
#include <dt-bindings/regulator/maxim,max77802.h>
#include <dt-bindings/sound/samsung-i2s.h>
#include "exynos5420.dtsi"
#include "exynos5420-cpus.dtsi"

/ {
	model = "Google Peach Pit Rev 6+";

	compatible = "google,pit-rev16",
		"google,pit-rev15", "google,pit-rev14",
		"google,pit-rev13", "google,pit-rev12",
		"google,pit-rev11", "google,pit-rev10",
		"google,pit-rev9", "google,pit-rev8",
		"google,pit-rev7", "google,pit-rev6",
		"google,pit", "google,peach","samsung,exynos5420",
		"samsung,exynos5";
	chassis-type = "laptop";

	aliases {
		/* Assign 20 so we don't get confused w/ builtin ones */
		i2c20 = &i2c_tunnel;
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm 0 1000000 0>;
		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
		default-brightness-level = <7>;
		power-supply = <&tps65090_fet1>;
		pinctrl-0 = <&pwm0_out>;
		pinctrl-names = "default";
	};

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

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

	gpio-keys {
		compatible = "gpio-keys";

		pinctrl-names = "default";
		pinctrl-0 = <&power_key_irq &lid_irq>;

		power-key {
			label = "Power";
			gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
			wakeup-source;
		};

		lid-switch {
			label = "Lid";
			gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
			linux,input-type = <5>; /* EV_SW */
			linux,code = <0>; /* SW_LID */
			debounce-interval = <1>;
			wakeup-source;
		};
	};

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

	sound {
		compatible = "google,snow-audio-max98090";

		samsung,model = "Peach-Pit-I2S-MAX98090";
		samsung,i2s-controller = <&i2s0>;
		samsung,audio-codec = <&max98090>;

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

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

	usb300_vbus_reg: regulator-usb300 {
		compatible = "regulator-fixed";
		regulator-name = "P5.0V_USB3CON0";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gph0 0 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb300_vbus_en>;
		enable-active-high;
	};

	usb301_vbus_reg: regulator-usb301 {
		compatible = "regulator-fixed";
		regulator-name = "P5.0V_USB3CON1";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gph0 1 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb301_vbus_en>;
		enable-active-high;
	};

	vbat: fixed-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vbat-supply";
		regulator-boot-on;
		regulator-always-on;
	};

	panel: panel {
		compatible = "auo,b116xw03";
		power-supply = <&tps65090_fet6>;
		backlight = <&backlight>;

		port {
			panel_in: endpoint {
				remote-endpoint = <&bridge_out>;
			};
		};
	};

	mmc1_pwrseq: mmc1-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */
		clocks = <&max77802 MAX77802_CLK_32K_CP>;
		clock-names = "ext_clock";
	};
};

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

&clock_audss {
	assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
	assigned-clock-parents = <&clock CLK_MAU_EPLL>;
};

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

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

&dp {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&dp_hpd_gpio>;
	samsung,color-space = <0>;
	samsung,color-depth = <1>;
	samsung,link-rate = <0x06>;
	samsung,lane-count = <2>;
	hpd-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;

	ports {
		port {
			dp_out: endpoint {
				remote-endpoint = <&bridge_in>;
			};
		};
	};
};

&fimd {
	status = "okay";
	samsung,invert-vclk;
};

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

	hdmi-en-supply = <&tps65090_fet7>;
	vdd-supply = <&ldo8_reg>;
	vdd_osc-supply = <&ldo10_reg>;
	vdd_pll-supply = <&ldo8_reg>;
};

&hsi2c_4 {
	status = "okay";
	clock-frequency = <400000>;

	max77802: pmic@9 {
		compatible = "maxim,max77802";
		interrupt-parent = <&gpx3>;
		interrupts = <1 IRQ_TYPE_NONE>;
		pinctrl-names = "default";
		pinctrl-0 = <&max77802_irq>, <&pmic_selb>,
			    <&pmic_dvs_1>, <&pmic_dvs_2>;
		wakeup-source;
		reg = <0x9>;
		#clock-cells = <1>;

		inb1-supply = <&tps65090_dcdc2>;
		inb2-supply = <&tps65090_dcdc1>;
		inb3-supply = <&tps65090_dcdc2>;
		inb4-supply = <&tps65090_dcdc2>;
		inb5-supply = <&tps65090_dcdc1>;
		inb6-supply = <&tps65090_dcdc2>;
		inb7-supply = <&tps65090_dcdc1>;
		inb8-supply = <&tps65090_dcdc1>;
		inb9-supply = <&tps65090_dcdc1>;
		inb10-supply = <&tps65090_dcdc1>;

		inl1-supply = <&buck5_reg>;
		inl2-supply = <&buck7_reg>;
		inl3-supply = <&buck9_reg>;
		inl4-supply = <&buck9_reg>;
		inl5-supply = <&buck9_reg>;
		inl6-supply = <&tps65090_dcdc2>;
		inl7-supply = <&buck9_reg>;
		inl9-supply = <&tps65090_dcdc2>;
		inl10-supply = <&buck7_reg>;

		regulators {
			buck1_reg: BUCK1 {
				regulator-name = "vdd_mif";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1300000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-ramp-delay = <12500>;
				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-ramp-delay = <12500>;
				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-ramp-delay = <12500>;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck4_reg: BUCK4 {
				regulator-name = "vdd_g3d";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1400000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-ramp-delay = <12500>;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck5_reg: BUCK5 {
				regulator-name = "vdd_1v2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck6_reg: BUCK6 {
				regulator-name = "vdd_kfc";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-ramp-delay = <12500>;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck7_reg: BUCK7 {
				regulator-name = "vdd_1v35";
				regulator-min-microvolt = <1350000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			buck8_reg: BUCK8 {
				regulator-name = "vdd_emmc";
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <2850000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck9_reg: BUCK9 {
				regulator-name = "vdd_2v";
				regulator-min-microvolt = <2000000>;
				regulator-max-microvolt = <2000000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			buck10_reg: BUCK10 {
				regulator-name = "vdd_1v8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			ldo1_reg: LDO1 {
				regulator-name = "vdd_1v0";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-mode = <MAX77802_OPMODE_LP>;
				};
			};

			ldo2_reg: LDO2 {
				regulator-name = "vdd_1v2_2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
			};

			ldo3_reg: LDO3 {
				regulator-name = "vdd_1v8_3";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-mode = <MAX77802_OPMODE_LP>;
				};
			};

			vqmmc_sdcard: ldo4_reg: LDO4 {
				regulator-name = "vdd_sd";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <2800000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo5_reg: LDO5 {
				regulator-name = "vdd_1v8_5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo6_reg: LDO6 {
				regulator-name = "vdd_1v8_6";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

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

			ldo8_reg: LDO8 {
				regulator-name = "vdd_ldo8";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo9_reg: LDO9 {
				regulator-name = "vdd_ldo9";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-mode = <MAX77802_OPMODE_LP>;
				};
			};

			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 = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-mode = <MAX77802_OPMODE_LP>;
				};
			};

			ldo12_reg: LDO12 {
				regulator-name = "vdd_ldo12";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo13_reg: LDO13 {
				regulator-name = "vdd_ldo13";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-mode = <MAX77802_OPMODE_LP>;
				};
			};

			ldo14_reg: LDO14 {
				regulator-name = "vdd_ldo14";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo15_reg: LDO15 {
				regulator-name = "vdd_ldo15";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo17_reg: LDO17 {
				regulator-name = "vdd_g3ds";
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1400000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

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

			ldo19_reg: LDO19 {
				regulator-name = "ldo_19";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo20_reg: LDO20 {
				regulator-name = "ldo_20";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo21_reg: LDO21 {
				regulator-name = "ldo_21";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
			};

			ldo23_reg: LDO23 {
				regulator-name = "ldo_23";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};
			ldo24_reg: LDO24 {
				regulator-name = "ldo_24";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
			};

			ldo25_reg: LDO25 {
				regulator-name = "ldo_25";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo26_reg: LDO26 {
				regulator-name = "ldo_26";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
			};

			ldo27_reg: LDO27 {
				regulator-name = "ldo_27";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
			};

			ldo28_reg: LDO28 {
				regulator-name = "ldo_28";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo29_reg: LDO29 {
				regulator-name = "ldo_29";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo30_reg: LDO30 {
				regulator-name = "vdd_mifs";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo32_reg: LDO32 {
				regulator-name = "ldo_32";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
			};

			ldo33_reg: LDO33 {
				regulator-name = "ldo_33";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
			};

			ldo34_reg: LDO34 {
				regulator-name = "ldo_34";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
			};

			ldo35_reg: LDO35 {
				regulator-name = "ldo_35";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
			};
		};
	};
};

&hsi2c_7 {
	status = "okay";
	clock-frequency = <400000>;

	max98090: audio-codec@10 {
		compatible = "maxim,max98090";
		reg = <0x10>;
		interrupts = <2 IRQ_TYPE_NONE>;
		interrupt-parent = <&gpx0>;
		pinctrl-names = "default";
		pinctrl-0 = <&max98090_irq>;
		clocks = <&pmu_system_controller 0>;
		clock-names = "mclk";
		#sound-dai-cells = <0>;
	};

	light-sensor@44 {
		compatible = "isil,isl29018";
		reg = <0x44>;
		vcc-supply = <&tps65090_fet5>;
	};

	ps8625: lvds-bridge@48 {
		compatible = "parade,ps8625";
		reg = <0x48>;
		sleep-gpios = <&gpx3 5 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&gpy7 7 GPIO_ACTIVE_HIGH>;
		lane-count = <2>;
		use-external-pwm;

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

			port@0 {
				reg = <0>;

				bridge_out: endpoint {
					remote-endpoint = <&panel_in>;
				};
			};

			port@1 {
				reg = <1>;

				bridge_in: endpoint {
					remote-endpoint = <&dp_out>;
				};
			};
		};

	};
};

&hsi2c_8 {
	status = "okay";
	clock-frequency = <333000>;

	/* Atmel mXT336S */
	trackpad@4b {
		compatible = "atmel,maxtouch";
		reg = <0x4b>;
		interrupt-parent = <&gpx1>;
		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
		wakeup-source;
		pinctrl-names = "default";
		pinctrl-0 = <&trackpad_irq>;
		linux,gpio-keymap = <KEY_RESERVED
				     KEY_RESERVED
				     KEY_RESERVED	/* GPIO0 */
				     KEY_RESERVED	/* GPIO1 */
				     KEY_RESERVED	/* GPIO2 */
				     BTN_LEFT>;		/* GPIO3 */
	};
};

&hsi2c_9 {
	status = "okay";
	clock-frequency = <400000>;

	tpm@20 {
		compatible = "infineon,slb9645tt";
		reg = <0x20>;

		/* Unused irq; but still need to configure the pins */
		pinctrl-names = "default";
		pinctrl-0 = <&tpm_irq>;
	};
};

&i2c_2 {
	status = "okay";
	samsung,i2c-sda-delay = <100>;
	samsung,i2c-max-bus-freq = <66000>;
	samsung,i2c-slave-addr = <0x50>;
};

&i2s0 {
	assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
	assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
	status = "okay";
};

&mixer {
	status = "okay";
};

/* eMMC flash */
&mmc_0 {
	status = "okay";
	mmc-hs200-1_8v;
	cap-mmc-highspeed;
	non-removable;
	clock-frequency = <400000000>;
	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>;
};

/* WiFi SDIO module */
&mmc_1 {
	status = "okay";
	non-removable;
	cap-sdio-irq;
	keep-power-in-suspend;
	clock-frequency = <400000000>;
	samsung,dw-mshc-ciu-div = <1>;
	samsung,dw-mshc-sdr-timing = <0 1>;
	samsung,dw-mshc-ddr-timing = <0 2>;
	pinctrl-names = "default";
	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
		    <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
	bus-width = <4>;
	cap-sd-highspeed;
	mmc-pwrseq = <&mmc1_pwrseq>;
	vqmmc-supply = <&buck10_reg>;
};

/* uSD card */
&mmc_2 {
	status = "okay";
	cap-sd-highspeed;
	card-detect-delay = <200>;
	clock-frequency = <400000000>;
	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>;
};

&pinctrl_0 {
	pinctrl-names = "default";
	pinctrl-0 = <&mask_tpm_reset>;

	wifi_en: wifi-en-pins {
		samsung,pins = "gpx0-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	max98090_irq: max98090-irq-pins {
		samsung,pins = "gpx0-2";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	/* We need GPX0_6 to be low at sleep time; just keep it low always */
	mask_tpm_reset: mask-tpm-reset-pins {
		samsung,pins = "gpx0-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
		samsung,pin-val = <0>;
	};

	tpm_irq: tpm-irq-pins {
		samsung,pins = "gpx1-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	trackpad_irq: trackpad-irq-pins {
		samsung,pins = "gpx1-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	power_key_irq: power-key-irq-pins {
		samsung,pins = "gpx1-2";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	ec_irq: ec-irq-pins {
		samsung,pins = "gpx1-5";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	tps65090_irq: tps65090-irq-pins {
		samsung,pins = "gpx2-5";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	dp_hpd_gpio: dp-hpd-gpio-pins {
		samsung,pins = "gpx2-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	max77802_irq: max77802-irq-pins {
		samsung,pins = "gpx3-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	lid_irq: lid-irq-pins {
		samsung,pins = "gpx3-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
		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>;
	};

	pmic_dvs_1: pmic-dvs-1-pins {
		samsung,pins = "gpy7-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

/* pinctrl_1 */
/* Adjust WiFi drive strengths lower for EMI */
&sd1_bus1 {
	samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
};

&sd1_bus4 {
	samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
};

&sd1_bus8 {
	samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
};

&sd1_clk {
	samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
};

&sd1_cmd {
	samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
};

&pinctrl_2 {
	pmic_dvs_2: pmic-dvs-2-pins {
		samsung,pins = "gpj4-2", "gpj4-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

/* pinctrl_3*/
/* Drive SPI lines at x2 for better integrity */
&spi2_bus {
	samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
};

&pinctrl_3 {
	/* Drive SPI chip select at x2 for better integrity */
	ec_spi_cs: ec-spi-cs-pins {
		samsung,pins = "gpb1-2";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
	};

	usb300_vbus_en: usb300-vbus-en-pins {
		samsung,pins = "gph0-0";
		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 = "gph0-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	pmic_selb: pmic-selb-pins {
		samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
			       "gph0-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&pmu_system_controller {
	assigned-clocks = <&pmu_system_controller 0>;
	assigned-clock-parents = <&clock CLK_FIN_PLL>;
};

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

&spi_2 {
	status = "okay";
	num-cs = <1>;
	samsung,spi-src-clk = <0>;
	cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>;

	cros_ec: cros-ec@0 {
		compatible = "google,cros-ec-spi";
		interrupt-parent = <&gpx1>;
		interrupts = <5 IRQ_TYPE_NONE>;
		pinctrl-names = "default";
		pinctrl-0 = <&ec_spi_cs &ec_irq>;
		reg = <0>;
		spi-max-frequency = <3125000>;
		google,has-vbc-nvram;

		controller-data {
			samsung,spi-feedback-delay = <1>;
		};

		i2c_tunnel: i2c-tunnel {
			compatible = "google,cros-ec-i2c-tunnel";
			#address-cells = <1>;
			#size-cells = <0>;
			google,remote-bus = <0>;

			battery: sbs-battery@b {
				compatible = "sbs,sbs-battery";
				reg = <0xb>;
				sbs,poll-retry-count = <1>;
				sbs,i2c-retry-count = <2>;
			};

			power-regulator@48 {
				compatible = "ti,tps65090";
				reg = <0x48>;

				/*
				 * Config irq to disable internal pulls
				 * even though we run in polling mode.
				 */
				pinctrl-names = "default";
				pinctrl-0 = <&tps65090_irq>;

				vsys1-supply = <&vbat>;
				vsys2-supply = <&vbat>;
				vsys3-supply = <&vbat>;
				infet1-supply = <&vbat>;
				infet2-supply = <&tps65090_dcdc1>;
				infet3-supply = <&tps65090_dcdc2>;
				infet4-supply = <&tps65090_dcdc2>;
				infet5-supply = <&tps65090_dcdc2>;
				infet6-supply = <&tps65090_dcdc2>;
				infet7-supply = <&tps65090_dcdc1>;
				vsys-l1-supply = <&vbat>;
				vsys-l2-supply = <&vbat>;

				regulators {
					tps65090_dcdc1: dcdc1 {
						ti,enable-ext-control;
					};
					tps65090_dcdc2: dcdc2 {
						ti,enable-ext-control;
					};
					tps65090_dcdc3: dcdc3 {
						ti,enable-ext-control;
					};
					tps65090_fet1: fet1 {
						regulator-name = "vcd_led";
					};
					tps65090_fet2: fet2 {
						regulator-name = "video_mid";
						regulator-always-on;
					};
					tps65090_fet3: fet3 {
						regulator-name = "wwan_r";
						regulator-always-on;
					};
					tps65090_fet4: fet4 {
						regulator-name = "sdcard";
						regulator-always-on;
					};
					tps65090_fet5: fet5 {
						regulator-name = "camout";
						regulator-always-on;
					};
					tps65090_fet6: fet6 {
						regulator-name = "lcd_vdd";
					};
					tps65090_fet7: fet7 {
						regulator-name = "video_mid_1a";
						regulator-always-on;
					};
					tps65090_ldo1: ldo1 {
					};
					tps65090_ldo2: ldo2 {
					};
				};

				charger {
					compatible = "ti,tps65090-charger";
				};
			};
		};
	};
};

&serial_3 {
	status = "okay";
};

&timer {
	arm,cpu-registers-not-fw-configured;
};

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

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

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

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

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

&usbdrd3_0 {
	vdd10-supply = <&ldo15_reg>;
	vdd33-supply = <&ldo12_reg>;
};

&usbdrd3_1 {
	vdd10-supply = <&ldo15_reg>;
	vdd33-supply = <&ldo12_reg>;
};

&usbdrd_dwc3_0 {
	dr_mode = "host";
};

&usbdrd_dwc3_1 {
	dr_mode = "host";
};

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

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

/*
 * Use longest HW watchdog in SoC (32 seconds) since the hardware
 * watchdog provides no debugging information (compared to soft/hard
 * lockup detectors) and so should be last resort.
 */
&watchdog {
	timeout-sec = <32>;
};

#include "cros-ec-keyboard.dtsi"
#include "cros-adc-thermistors.dtsi"


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Samsung's Exynos5420 SoC pin-mux and pin-config device tree source
 *
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * Samsung's Exynos5420 SoC pin-mux and pin-config options are listed as device
 * tree nodes are listed in this file.
 */

#include "exynos-pinctrl.h"

&pinctrl_0 {
	gpy7: gpy7-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpx0: gpx0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		interrupt-parent = <&combiner>;
		#interrupt-cells = <2>;
		interrupts = <23 0>, <24 0>, <25 0>, <25 1>,
			     <26 0>, <26 1>, <27 0>, <27 1>;
	};

	gpx1: gpx1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		interrupt-parent = <&combiner>;
		#interrupt-cells = <2>;
		interrupts = <28 0>, <28 1>, <29 0>, <29 1>,
			     <30 0>, <30 1>, <31 0>, <31 1>;
	};

	gpx2: gpx2-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpx3: gpx3-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	dp_hpd: dp-hpd-pins {
		samsung,pins = "gpx0-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	hdmi_cec: hdmi-cec-pins {
		samsung,pins = "gpx3-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&pinctrl_1 {
	gpc0: gpc0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpc1: gpc1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpc2: gpc2-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpc3: gpc3-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpc4: gpc4-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpd1: gpd1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpy0: gpy0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;
	};

	gpy1: gpy1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;
	};

	gpy2: gpy2-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;
	};

	gpy3: gpy3-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;
	};

	gpy4: gpy4-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;
	};

	gpy5: gpy5-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;
	};

	gpy6: gpy6-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;
	};

	sd0_clk: sd0-clk-pins {
		samsung,pins = "gpc0-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd0_cmd: sd0-cmd-pins {
		samsung,pins = "gpc0-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd0_cd: sd0-cd-pins {
		samsung,pins = "gpc0-2";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd0_bus1: sd0-bus-width1-pins {
		samsung,pins = "gpc0-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd0_bus4: sd0-bus-width4-pins {
		samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd0_bus8: sd0-bus-width8-pins {
		samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd0_rclk: sd0-rclk-pins {
		samsung,pins = "gpc0-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd1_clk: sd1-clk-pins {
		samsung,pins = "gpc1-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd1_cmd: sd1-cmd-pins {
		samsung,pins = "gpc1-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd1_cd: sd1-cd-pins {
		samsung,pins = "gpc1-2";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd1_int: sd1-int-pins {
		samsung,pins = "gpd1-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	sd1_bus1: sd1-bus-width1-pins {
		samsung,pins = "gpc1-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd1_bus4: sd1-bus-width4-pins {
		samsung,pins = "gpc1-4", "gpc1-5", "gpc1-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd1_bus8: sd1-bus-width8-pins {
		samsung,pins = "gpd1-4", "gpd1-5", "gpd1-6", "gpd1-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd2_clk: sd2-clk-pins {
		samsung,pins = "gpc2-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd2_cmd: sd2-cmd-pins {
		samsung,pins = "gpc2-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd2_cd: sd2-cd-pins {
		samsung,pins = "gpc2-2";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd2_bus1: sd2-bus-width1-pins {
		samsung,pins = "gpc2-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd2_bus4: sd2-bus-width4-pins {
		samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};

	sd2_wp: sd2-wp-pins {
		samsung,pins = "gpc4-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
	};
};

&pinctrl_2 {
	gpe0: gpe0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpe1: gpe1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpf0: gpf0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpf1: gpf1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpg0: gpg0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpg1: gpg1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpg2: gpg2-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpj4: gpj4-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	cam_gpio_a: cam-gpio-a-pins {
		samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
			       "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
			       "gpe1-0", "gpe1-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	cam_gpio_b: cam-gpio-b-pins {
		samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
			       "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	cam_i2c2_bus: cam-i2c2-bus-pins {
		samsung,pins = "gpf0-4", "gpf0-5";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	cam_spi1_bus: cam-spi1-bus-pins {
		samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	cam_i2c1_bus: cam-i2c1-bus-pins {
		samsung,pins = "gpf0-2", "gpf0-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	cam_i2c0_bus: cam-i2c0-bus-pins {
		samsung,pins = "gpf0-0", "gpf0-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	cam_spi0_bus: cam-spi0-bus-pins {
		samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	cam_bayrgb_bus: cam-bayrgb-bus-pins {
		samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3",
			       "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7",
			       "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
			       "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
			       "gpg2-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&pinctrl_3 {
	gpa0: gpa0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpa1: gpa1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpa2: gpa2-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb0: gpb0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb1: gpb1-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb2: gpb2-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb3: gpb3-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb4: gpb4-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gph0: gph0-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	uart0_data: uart0-data-pins {
		samsung,pins = "gpa0-0", "gpa0-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	uart0_fctl: uart0-fctl-pins {
		samsung,pins = "gpa0-2", "gpa0-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	uart1_data: uart1-data-pins {
		samsung,pins = "gpa0-4", "gpa0-5";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	uart1_fctl: uart1-fctl-pins {
		samsung,pins = "gpa0-6", "gpa0-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c2_bus: i2c2-bus-pins {
		samsung,pins = "gpa0-6", "gpa0-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	uart2_data: uart2-data-pins {
		samsung,pins = "gpa1-0", "gpa1-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	uart2_fctl: uart2-fctl-pins {
		samsung,pins = "gpa1-2", "gpa1-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c3_bus: i2c3-bus-pins {
		samsung,pins = "gpa1-2", "gpa1-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	uart3_data: uart3-data-pins {
		samsung,pins = "gpa1-4", "gpa1-5";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	spi0_bus: spi0-bus-pins {
		samsung,pins = "gpa2-0", "gpa2-1", "gpa2-2", "gpa2-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	spi1_bus: spi1-bus-pins {
		samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c4_hs_bus: i2c4-hs-bus-pins {
		samsung,pins = "gpa2-0", "gpa2-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c5_hs_bus: i2c5-hs-bus-pins {
		samsung,pins = "gpa2-2", "gpa2-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2s1_bus: i2s1-bus-pins {
		samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
			       "gpb0-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	pcm1_bus: pcm1-bus-pins {
		samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
			       "gpb0-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2s2_bus: i2s2-bus-pins {
		samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
			       "gpb1-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	pcm2_bus: pcm2-bus-pins {
		samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
			       "gpb1-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	spdif_bus: spdif-bus-pins {
		samsung,pins = "gpb1-0", "gpb1-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	spi2_bus: spi2-bus-pins {
		samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c6_hs_bus: i2c6-hs-bus-pins {
		samsung,pins = "gpb1-3", "gpb1-4";
		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	pwm0_out: pwm0-out-pins {
		samsung,pins = "gpb2-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	pwm1_out: pwm1-out-pins {
		samsung,pins = "gpb2-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	pwm2_out: pwm2-out-pins {
		samsung,pins = "gpb2-2";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	pwm3_out: pwm3-out-pins {
		samsung,pins = "gpb2-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c7_hs_bus: i2c7-hs-bus-pins {
		samsung,pins = "gpb2-2", "gpb2-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c0_bus: i2c0-bus-pins {
		samsung,pins = "gpb3-0", "gpb3-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c1_bus: i2c1-bus-pins {
		samsung,pins = "gpb3-2", "gpb3-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c8_hs_bus: i2c8-hs-bus-pins {
		samsung,pins = "gpb3-4", "gpb3-5";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c9_hs_bus: i2c9-hs-bus-pins {
		samsung,pins = "gpb3-6", "gpb3-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	i2c10_hs_bus: i2c10-hs-bus-pins {
		samsung,pins = "gpb4-0", "gpb4-1";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&pinctrl_4 {
	gpz: gpz-gpio-bank {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	i2s0_bus: i2s0-bus-pins {
		samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
				"gpz-4", "gpz-5", "gpz-6";
		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};