exynos5800-peach-pi.dts 5.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
/*
 * Google Peach Pi Rev 10+ board device tree source
 *
 * Copyright (c) 2014 Google, Inc
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include "exynos5800.dtsi"

/ {
	model = "Google Peach Pi Rev 10+";

	compatible = "google,pi-rev16",
		"google,pi-rev15", "google,pi-rev14",
		"google,pi-rev13", "google,pi-rev12",
		"google,pi-rev11", "google,pi-rev10",
		"google,pi", "google,peach", "samsung,exynos5800",
		"samsung,exynos5";

26 27 28 29 30 31 32
	backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm 0 1000000 0>;
		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
		default-brightness-level = <7>;
		pinctrl-0 = <&pwm0_out>;
		pinctrl-names = "default";
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
	};

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

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

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

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

56 57
	memory {
		reg = <0x20000000 0x80000000>;
58
	};
59

60 61 62
	sound {
		compatible = "google,snow-audio-max98091";

63
		samsung,model = "Peach-Pi-I2S-MAX98091";
64 65 66 67
		samsung,i2s-controller = <&i2s0>;
		samsung,audio-codec = <&max98091>;
	};

68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
	usb300_vbus_reg: regulator-usb300 {
		compatible = "regulator-fixed";
		regulator-name = "P5.0V_USB3CON0";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gph0 0 0>;
		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 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb301_vbus_en>;
		enable-active-high;
	};
89 90
};

91 92 93 94 95 96 97 98 99 100 101
&dp {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&dp_hpd_gpio>;
	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 0>;
102

103 104
	display-timings {
		native-mode = <&timing1>;
105

106 107 108 109 110 111 112 113 114 115 116
		timing1: timing@1 {
			clock-frequency = <150660000>;
			hactive = <1920>;
			vactive = <1080>;
			hfront-porch = <60>;
			hback-porch = <172>;
			hsync-len = <80>;
			vback-porch = <25>;
			vfront-porch = <10>;
			vsync-len = <10>;
		};
117
	};
118
};
119

120 121 122 123
&fimd {
	status = "okay";
	samsung,invert-vclk;
};
124

125 126 127 128 129 130
&hdmi {
	status = "okay";
	hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&hdmi_hpd_irq>;
	ddc = <&i2c_2>;
131 132
};

133 134 135 136 137 138 139 140 141 142
&hsi2c_7 {
	status = "okay";

	max98091: codec@10 {
		compatible = "maxim,max98091";
		reg = <0x10>;
		interrupts = <2 0>;
		interrupt-parent = <&gpx0>;
		pinctrl-names = "default";
		pinctrl-0 = <&max98091_irq>;
143
	};
144
};
145

146 147 148 149 150 151 152 153 154 155 156
&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>;
157 158 159
	};
};

160
&i2c_2 {
161
	status = "okay";
162 163 164
	samsung,i2c-sda-delay = <100>;
	samsung,i2c-max-bus-freq = <66000>;
	samsung,i2c-slave-addr = <0x50>;
165 166
};

167
&i2s0 {
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
	status = "okay";
};

&mmc_0 {
	status = "okay";
	num-slots = <1>;
	broken-cd;
	caps2-mmc-hs200-1_8v;
	supports-highspeed;
	non-removable;
	card-detect-delay = <200>;
	clock-frequency = <400000000>;
	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_bus4 &sd0_bus8>;

	slot@0 {
		reg = <0>;
		bus-width = <8>;
	};
};

&mmc_2 {
	status = "okay";
	num-slots = <1>;
	supports-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_bus4>;

	slot@0 {
		reg = <0>;
		bus-width = <4>;
	};
};

210

211 212 213 214 215 216 217
&pinctrl_0 {
	max98091_irq: max98091-irq {
		samsung,pins = "gpx0-2";
		samsung,pin-function = <0>;
		samsung,pin-pud = <0>;
		samsung,pin-drv = <0>;
	};
218

219 220 221 222 223
	tpm_irq: tpm-irq {
		samsung,pins = "gpx1-0";
		samsung,pin-function = <0>;
		samsung,pin-pud = <0>;
		samsung,pin-drv = <0>;
224 225
	};

226 227 228 229 230 231
	power_key_irq: power-key-irq {
		samsung,pins = "gpx1-2";
		samsung,pin-function = <0>;
		samsung,pin-pud = <0>;
		samsung,pin-drv = <0>;
	};
232

233 234 235 236 237 238
	dp_hpd_gpio: dp_hpd_gpio {
		samsung,pins = "gpx2-6";
		samsung,pin-function = <0>;
		samsung,pin-pud = <3>;
		samsung,pin-drv = <0>;
	};
239

240 241 242 243 244
	hdmi_hpd_irq: hdmi-hpd-irq {
		samsung,pins = "gpx3-7";
		samsung,pin-function = <0>;
		samsung,pin-pud = <1>;
		samsung,pin-drv = <0>;
245 246 247
	};
};

248 249 250 251 252 253 254
&pinctrl_3 {
	usb300_vbus_en: usb300-vbus-en {
		samsung,pins = "gph0-0";
		samsung,pin-function = <1>;
		samsung,pin-pud = <0>;
		samsung,pin-drv = <0>;
	};
255

256 257 258 259 260
	usb301_vbus_en: usb301-vbus-en {
		samsung,pins = "gph0-1";
		samsung,pin-function = <1>;
		samsung,pin-pud = <0>;
		samsung,pin-drv = <0>;
261 262 263
	};
};

264
&rtc {
265 266 267
	status = "okay";
};

268
&uart_3 {
269 270 271
	status = "okay";
};

272
&usbdrd_phy0 {
273 274 275
	vbus-supply = <&usb300_vbus_reg>;
};

276
&usbdrd_phy1 {
277 278 279
	vbus-supply = <&usb301_vbus_reg>;
};

280 281 282 283 284 285 286 287
/*
 * 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>;
};
288