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

/dts-v1/;
#include "exynos54xx.dtsi"

/ {
	model = "Samsung/Google Peach Pi board based on Exynos5800";
	cpu-model = "Exynos5800";

	compatible = "google,pit-rev#", "google,pit",
		"google,peach", "samsung,exynos5800", "samsung,exynos5";

	config {
		google,bad-wake-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>;
		hwid = "PIT TEST A-A 7848";
		lazy-init = <1>;
	};

	aliases {
		serial0 = "/serial@12C30000";
		console = "/serial@12C30000";
		pmic = "/i2c@12CA0000";
		i2c104 = &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>;
		enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
		power-supply = <&tps65090_fet1>;
	};

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

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

	dmc {
		mem-manuf = "samsung";
		mem-type = "ddr3";
		clock-frequency = <800000000>;
		arm-frequency = <900000000>;
	};

	tmu@10060000 {
		samsung,min-temp	= <25>;
		samsung,max-temp	= <125>;
		samsung,start-warning	= <95>;
		samsung,start-tripping	= <105>;
		samsung,hw-tripping	= <110>;
		samsung,efuse-min-value	= <40>;
		samsung,efuse-value	= <55>;
		samsung,efuse-max-value	= <100>;
		samsung,slope		= <274761730>;
		samsung,dc-value	= <25>;
	};

	/* MAX77802 is on i2c bus 4 */
	i2c@12CA0000 {
		clock-frequency = <400000>;
		power-regulator@9 {
			compatible = "maxim,max77802-pmic";
			reg = <0x9>;
		};
	};

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

		samsung,model = "PEACH-I2S-MAX98090";
		samsung,audio-codec = <&max98090>;

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

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

	i2c@12CD0000 { /* i2c7 */
		clock-frequency = <100000>;
		max98090: soundcodec@10 {
			reg = <0x10>;
			compatible = "maxim,max98090";
			#sound-dai-cells = <1>;
		};
	};

        sound@3830000 {
                samsung,codec-type = "max98090";
        };

	i2c@12E10000 { /* i2c9 */
		clock-frequency = <400000>;
		tpm@20 {
			compatible = "infineon,slb9645tt";
			reg = <0x20>;
		};
	};

	spi@12d30000 { /* spi1 */
		spi-max-frequency = <50000000>;
		firmware_storage_spi: flash@0 {
			reg = <0>;

			/*
			 * A region for the kernel to store a panic event
			 * which the firmware will add to the log.
			*/
			elog-panic-event-offset = <0x01e00000 0x100000>;

			elog-shrink-size = <0x400>;
			elog-full-threshold = <0xc00>;
		};
	};

	xhci@12000000 {
		samsung,vbus-gpio = <&gph0 0 GPIO_ACTIVE_HIGH>;
	};

	xhci@12400000 {
		samsung,vbus-gpio = <&gph0 1 GPIO_ACTIVE_HIGH>;
	};

	fimd@14400000 {
		samsung,vl-freq = <60>;
		samsung,vl-col = <1920>;
		samsung,vl-row = <1080>;
		samsung,vl-width = <1920>;
		samsung,vl-height = <1080>;

		samsung,vl-clkp;
		samsung,vl-dp;
		samsung,vl-bpix = <4>;

		samsung,vl-hspw = <80>;
		samsung,vl-hbpd = <172>;
		samsung,vl-hfpd = <60>;
		samsung,vl-vspw = <10>;
		samsung,vl-vbpd = <25>;
		samsung,vl-vfpd = <10>;
		samsung,vl-cmd-allow-len = <0xf>;

		samsung,power-on-delay = <30000>;
		samsung,winid = <3>;
		samsung,interface-mode = <1>;
		samsung,dp-enabled = <1>;
		samsung,dual-lcd-enabled = <0>;

		samsung,bl-en-gpio = <&gpx2 2 GPIO_ACTIVE_HIGH>;
	};
};

&dp {
	status = "okay";
	samsung,color-space = <0>;
	samsung,dynamic-range = <0>;
	samsung,ycbcr-coeff = <0>;
	samsung,color-depth = <1>;
	samsung,link-rate = <0x0a>;
	samsung,lane-count = <2>;
	samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;

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

&spi_2 {
	spi-max-frequency = <3125000>;
	spi-deactivate-delay = <200>;
	status = "okay";
	num-cs = <1>;
	samsung,spi-src-clk = <0>;
	cs-gpios = <&gpb1 2 0>;

	cros_ec: cros-ec@0 {
		compatible = "google,cros-ec-spi";
		interrupt-parent = <&gpx1>;
		interrupts = <5 0>;
		reg = <0>;
		spi-half-duplex;
		spi-max-timeout-ms = <1100>;
		ec-interrupt = <&gpx1 5 GPIO_ACTIVE_LOW>;

		/*
		 * This describes the flash memory within the EC. Note
		 * that the STM32L flash erases to 0, not 0xff.
		 */
		#address-cells = <1>;
		#size-cells = <1>;
		flash@8000000 {
			reg = <0x08000000 0x20000>;
			erase-value = <0>;
		};

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

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

#include "cros-ec-keyboard.dtsi"