xref: /linux/scripts/dtc/include-prefixes/arm64/exynos/exynos8895-dreamlte.dts (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
1296621bfSIvaylo Ivanov// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2296621bfSIvaylo Ivanov/*
3296621bfSIvaylo Ivanov * Samsung Galaxy S8 (dreamlte/SM-G950F) device tree source
4296621bfSIvaylo Ivanov *
5296621bfSIvaylo Ivanov * Copyright (c) 2024, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
6296621bfSIvaylo Ivanov */
7296621bfSIvaylo Ivanov
8296621bfSIvaylo Ivanov/dts-v1/;
9296621bfSIvaylo Ivanov#include "exynos8895.dtsi"
10296621bfSIvaylo Ivanov#include <dt-bindings/gpio/gpio.h>
11296621bfSIvaylo Ivanov#include <dt-bindings/input/input.h>
12296621bfSIvaylo Ivanov#include <dt-bindings/interrupt-controller/irq.h>
13*0cbf9ca0SIvaylo Ivanov#include <dt-bindings/soc/samsung,exynos-usi.h>
14296621bfSIvaylo Ivanov
15296621bfSIvaylo Ivanov/ {
16296621bfSIvaylo Ivanov	model = "Samsung Galaxy S8 (SM-G950F)";
17296621bfSIvaylo Ivanov	compatible = "samsung,dreamlte", "samsung,exynos8895";
18296621bfSIvaylo Ivanov	chassis-type = "handset";
19296621bfSIvaylo Ivanov
202e7281e6SIvaylo Ivanov	aliases {
212e7281e6SIvaylo Ivanov		mmc0 = &mmc;
222e7281e6SIvaylo Ivanov	};
232e7281e6SIvaylo Ivanov
24296621bfSIvaylo Ivanov	chosen {
25296621bfSIvaylo Ivanov		#address-cells = <2>;
26296621bfSIvaylo Ivanov		#size-cells = <1>;
27296621bfSIvaylo Ivanov		ranges;
28296621bfSIvaylo Ivanov
29296621bfSIvaylo Ivanov		framebuffer: framebuffer@cc000000 {
30296621bfSIvaylo Ivanov			compatible = "simple-framebuffer";
31296621bfSIvaylo Ivanov			reg = <0 0xcc000000 (1440 * 2960 * 4)>;
32296621bfSIvaylo Ivanov			width = <1440>;
33296621bfSIvaylo Ivanov			height = <2960>;
34296621bfSIvaylo Ivanov			stride = <(1440 * 4)>;
35296621bfSIvaylo Ivanov			format = "a8r8g8b8";
36296621bfSIvaylo Ivanov		};
37296621bfSIvaylo Ivanov	};
38296621bfSIvaylo Ivanov
39296621bfSIvaylo Ivanov	memory@80000000 {
40296621bfSIvaylo Ivanov		device_type = "memory";
41296621bfSIvaylo Ivanov		reg = <0x0 0x80000000 0x3c800000>,
42296621bfSIvaylo Ivanov		      <0x0 0xc0000000 0x40000000>,
43296621bfSIvaylo Ivanov		      <0x8 0x80000000 0x80000000>;
44296621bfSIvaylo Ivanov	};
45296621bfSIvaylo Ivanov
46296621bfSIvaylo Ivanov	reserved-memory {
47296621bfSIvaylo Ivanov		#address-cells = <2>;
48296621bfSIvaylo Ivanov		#size-cells = <1>;
49296621bfSIvaylo Ivanov		ranges;
50296621bfSIvaylo Ivanov
51296621bfSIvaylo Ivanov		ramoops@92000000 {
52296621bfSIvaylo Ivanov			compatible = "ramoops";
53296621bfSIvaylo Ivanov			reg = <0 0x92000000 0x8000>;
54296621bfSIvaylo Ivanov			record-size = <0x4000>;
55296621bfSIvaylo Ivanov			console-size = <0x4000>;
56296621bfSIvaylo Ivanov		};
57296621bfSIvaylo Ivanov
58296621bfSIvaylo Ivanov		cont_splash_mem: framebuffer@cc000000 {
59296621bfSIvaylo Ivanov			reg = <0 0xcc000000 (1440 * 2960 * 4)>;
60296621bfSIvaylo Ivanov			no-map;
61296621bfSIvaylo Ivanov		};
62296621bfSIvaylo Ivanov	};
63296621bfSIvaylo Ivanov
64296621bfSIvaylo Ivanov	gpio-keys {
65296621bfSIvaylo Ivanov		compatible = "gpio-keys";
66296621bfSIvaylo Ivanov
67296621bfSIvaylo Ivanov		pinctrl-0 = <&key_power &key_voldown &key_volup &key_wink>;
68296621bfSIvaylo Ivanov		pinctrl-names = "default";
69296621bfSIvaylo Ivanov
70296621bfSIvaylo Ivanov		power-key {
71296621bfSIvaylo Ivanov			label = "Power";
72296621bfSIvaylo Ivanov			linux,code = <KEY_POWER>;
73296621bfSIvaylo Ivanov			gpios = <&gpa2 4 GPIO_ACTIVE_LOW>;
74296621bfSIvaylo Ivanov			wakeup-source;
75296621bfSIvaylo Ivanov		};
76296621bfSIvaylo Ivanov
77296621bfSIvaylo Ivanov		voldown-key {
78296621bfSIvaylo Ivanov			label = "Volume Down";
79296621bfSIvaylo Ivanov			linux,code = <KEY_VOLUMEDOWN>;
80296621bfSIvaylo Ivanov			gpios = <&gpa0 4 GPIO_ACTIVE_LOW>;
81296621bfSIvaylo Ivanov		};
82296621bfSIvaylo Ivanov
83296621bfSIvaylo Ivanov		volup-key {
84296621bfSIvaylo Ivanov			label = "Volume Up";
85296621bfSIvaylo Ivanov			linux,code = <KEY_VOLUMEUP>;
86296621bfSIvaylo Ivanov			gpios = <&gpa0 3 GPIO_ACTIVE_LOW>;
87296621bfSIvaylo Ivanov		};
88296621bfSIvaylo Ivanov
89296621bfSIvaylo Ivanov		/* Typically used for Bixby. Map it as a camera button for now */
90296621bfSIvaylo Ivanov		wink-key {
91296621bfSIvaylo Ivanov			label = "Camera";
92296621bfSIvaylo Ivanov			linux,code = <KEY_CAMERA>;
93296621bfSIvaylo Ivanov			gpios = <&gpa0 6 GPIO_ACTIVE_LOW>;
94296621bfSIvaylo Ivanov			wakeup-source;
95296621bfSIvaylo Ivanov		};
96296621bfSIvaylo Ivanov	};
97*0cbf9ca0SIvaylo Ivanov
98*0cbf9ca0SIvaylo Ivanov	/* TODO: Remove once PMIC is implemented  */
99*0cbf9ca0SIvaylo Ivanov	reg_placeholder: regulator-0 {
100*0cbf9ca0SIvaylo Ivanov		compatible = "regulator-fixed";
101*0cbf9ca0SIvaylo Ivanov		regulator-name = "reg-placeholder";
102*0cbf9ca0SIvaylo Ivanov	};
103*0cbf9ca0SIvaylo Ivanov};
104*0cbf9ca0SIvaylo Ivanov
105*0cbf9ca0SIvaylo Ivanov&hsi2c_23 {
106*0cbf9ca0SIvaylo Ivanov	#address-cells = <1>;
107*0cbf9ca0SIvaylo Ivanov	#size-cells = <0>;
108*0cbf9ca0SIvaylo Ivanov	status = "okay";
109*0cbf9ca0SIvaylo Ivanov
110*0cbf9ca0SIvaylo Ivanov	touchscreen@48 {
111*0cbf9ca0SIvaylo Ivanov		compatible = "samsung,s6sy761";
112*0cbf9ca0SIvaylo Ivanov		reg = <0x48>;
113*0cbf9ca0SIvaylo Ivanov
114*0cbf9ca0SIvaylo Ivanov		/* TODO: Update once PMIC is implemented */
115*0cbf9ca0SIvaylo Ivanov		avdd-supply = <&reg_placeholder>;
116*0cbf9ca0SIvaylo Ivanov		vdd-supply = <&reg_placeholder>;
117*0cbf9ca0SIvaylo Ivanov
118*0cbf9ca0SIvaylo Ivanov		interrupt-parent = <&gpa1>;
119*0cbf9ca0SIvaylo Ivanov		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
120*0cbf9ca0SIvaylo Ivanov
121*0cbf9ca0SIvaylo Ivanov		pinctrl-0 = <&ts_int>;
122*0cbf9ca0SIvaylo Ivanov		pinctrl-names = "default";
123*0cbf9ca0SIvaylo Ivanov	};
124296621bfSIvaylo Ivanov};
125296621bfSIvaylo Ivanov
126296621bfSIvaylo Ivanov&oscclk {
127296621bfSIvaylo Ivanov	clock-frequency = <26000000>;
128296621bfSIvaylo Ivanov};
129296621bfSIvaylo Ivanov
1302e7281e6SIvaylo Ivanov&mmc {
1312e7281e6SIvaylo Ivanov	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4 &sd2_cd>;
1322e7281e6SIvaylo Ivanov	pinctrl-names = "default";
1332e7281e6SIvaylo Ivanov
1342e7281e6SIvaylo Ivanov	bus-width = <4>;
1352e7281e6SIvaylo Ivanov	card-detect-delay = <200>;
1362e7281e6SIvaylo Ivanov	cd-gpios = <&gpa1 5 GPIO_ACTIVE_LOW>;
1372e7281e6SIvaylo Ivanov	clock-frequency = <800000000>;
1382e7281e6SIvaylo Ivanov	disable-wp;
1392e7281e6SIvaylo Ivanov	sd-uhs-sdr50;
1402e7281e6SIvaylo Ivanov	sd-uhs-sdr104;
1412e7281e6SIvaylo Ivanov
1422e7281e6SIvaylo Ivanov	/* TODO: Add regulators once PMIC is implemented */
1432e7281e6SIvaylo Ivanov
1442e7281e6SIvaylo Ivanov	samsung,dw-mshc-ciu-div = <3>;
1452e7281e6SIvaylo Ivanov	samsung,dw-mshc-ddr-timing = <1 2>;
1462e7281e6SIvaylo Ivanov	samsung,dw-mshc-sdr-timing = <0 3>;
1472e7281e6SIvaylo Ivanov
1482e7281e6SIvaylo Ivanov	status = "okay";
1492e7281e6SIvaylo Ivanov};
1502e7281e6SIvaylo Ivanov
151296621bfSIvaylo Ivanov&pinctrl_alive {
152296621bfSIvaylo Ivanov	key_power: key-power-pins {
153296621bfSIvaylo Ivanov		samsung,pins = "gpa2-4";
154296621bfSIvaylo Ivanov		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
155296621bfSIvaylo Ivanov		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
156296621bfSIvaylo Ivanov		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
157296621bfSIvaylo Ivanov	};
158296621bfSIvaylo Ivanov
159296621bfSIvaylo Ivanov	key_voldown: key-voldown-pins {
160296621bfSIvaylo Ivanov		samsung,pins = "gpa0-4";
161296621bfSIvaylo Ivanov		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
162296621bfSIvaylo Ivanov		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
163296621bfSIvaylo Ivanov		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
164296621bfSIvaylo Ivanov	};
165296621bfSIvaylo Ivanov
166296621bfSIvaylo Ivanov	key_volup: key-volup-pins {
167296621bfSIvaylo Ivanov		samsung,pins = "gpa0-3";
168296621bfSIvaylo Ivanov		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
169296621bfSIvaylo Ivanov		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
170296621bfSIvaylo Ivanov		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
171296621bfSIvaylo Ivanov	};
172296621bfSIvaylo Ivanov
173296621bfSIvaylo Ivanov	key_wink: key-wink-pins {
174296621bfSIvaylo Ivanov		samsung,pins = "gpa0-6";
175296621bfSIvaylo Ivanov		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
176296621bfSIvaylo Ivanov		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
177296621bfSIvaylo Ivanov		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
178296621bfSIvaylo Ivanov	};
1792e7281e6SIvaylo Ivanov
1802e7281e6SIvaylo Ivanov	sd2_cd: sd2-cd-pins {
1812e7281e6SIvaylo Ivanov		samsung,pins = "gpa1-5";
1822e7281e6SIvaylo Ivanov		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
1832e7281e6SIvaylo Ivanov		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
1842e7281e6SIvaylo Ivanov		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV4>;
1852e7281e6SIvaylo Ivanov	};
186*0cbf9ca0SIvaylo Ivanov
187*0cbf9ca0SIvaylo Ivanov	ts_int: ts-int-pins {
188*0cbf9ca0SIvaylo Ivanov		samsung,pins = "gpa1-0";
189*0cbf9ca0SIvaylo Ivanov		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
190*0cbf9ca0SIvaylo Ivanov		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
191*0cbf9ca0SIvaylo Ivanov		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
192*0cbf9ca0SIvaylo Ivanov	};
193*0cbf9ca0SIvaylo Ivanov};
194*0cbf9ca0SIvaylo Ivanov
195*0cbf9ca0SIvaylo Ivanov&usi9 {
196*0cbf9ca0SIvaylo Ivanov	samsung,mode = <USI_MODE_I2C0_1>;
197*0cbf9ca0SIvaylo Ivanov	status = "okay";
198296621bfSIvaylo Ivanov};
199