xref: /linux/scripts/dtc/include-prefixes/arm64/exynos/exynos8895-dreamlte.dts (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
1// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2/*
3 * Samsung Galaxy S8 (dreamlte/SM-G950F) device tree source
4 *
5 * Copyright (c) 2024, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
6 */
7
8/dts-v1/;
9#include "exynos8895.dtsi"
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/interrupt-controller/irq.h>
13#include <dt-bindings/soc/samsung,exynos-usi.h>
14
15/ {
16	model = "Samsung Galaxy S8 (SM-G950F)";
17	compatible = "samsung,dreamlte", "samsung,exynos8895";
18	chassis-type = "handset";
19
20	aliases {
21		mmc0 = &mmc;
22	};
23
24	chosen {
25		#address-cells = <2>;
26		#size-cells = <1>;
27		ranges;
28
29		framebuffer: framebuffer@cc000000 {
30			compatible = "simple-framebuffer";
31			reg = <0 0xcc000000 (1440 * 2960 * 4)>;
32			width = <1440>;
33			height = <2960>;
34			stride = <(1440 * 4)>;
35			format = "a8r8g8b8";
36		};
37	};
38
39	memory@80000000 {
40		device_type = "memory";
41		reg = <0x0 0x80000000 0x3c800000>,
42		      <0x0 0xc0000000 0x40000000>,
43		      <0x8 0x80000000 0x80000000>;
44	};
45
46	reserved-memory {
47		#address-cells = <2>;
48		#size-cells = <1>;
49		ranges;
50
51		ramoops@92000000 {
52			compatible = "ramoops";
53			reg = <0 0x92000000 0x8000>;
54			record-size = <0x4000>;
55			console-size = <0x4000>;
56		};
57
58		cont_splash_mem: framebuffer@cc000000 {
59			reg = <0 0xcc000000 (1440 * 2960 * 4)>;
60			no-map;
61		};
62	};
63
64	gpio-keys {
65		compatible = "gpio-keys";
66
67		pinctrl-0 = <&key_power &key_voldown &key_volup &key_wink>;
68		pinctrl-names = "default";
69
70		power-key {
71			label = "Power";
72			linux,code = <KEY_POWER>;
73			gpios = <&gpa2 4 GPIO_ACTIVE_LOW>;
74			wakeup-source;
75		};
76
77		voldown-key {
78			label = "Volume Down";
79			linux,code = <KEY_VOLUMEDOWN>;
80			gpios = <&gpa0 4 GPIO_ACTIVE_LOW>;
81		};
82
83		volup-key {
84			label = "Volume Up";
85			linux,code = <KEY_VOLUMEUP>;
86			gpios = <&gpa0 3 GPIO_ACTIVE_LOW>;
87		};
88
89		/* Typically used for Bixby. Map it as a camera button for now */
90		wink-key {
91			label = "Camera";
92			linux,code = <KEY_CAMERA>;
93			gpios = <&gpa0 6 GPIO_ACTIVE_LOW>;
94			wakeup-source;
95		};
96	};
97
98	/* TODO: Remove once PMIC is implemented  */
99	reg_placeholder: regulator-0 {
100		compatible = "regulator-fixed";
101		regulator-name = "reg-placeholder";
102	};
103};
104
105&hsi2c_23 {
106	#address-cells = <1>;
107	#size-cells = <0>;
108	status = "okay";
109
110	touchscreen@48 {
111		compatible = "samsung,s6sy761";
112		reg = <0x48>;
113
114		/* TODO: Update once PMIC is implemented */
115		avdd-supply = <&reg_placeholder>;
116		vdd-supply = <&reg_placeholder>;
117
118		interrupt-parent = <&gpa1>;
119		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
120
121		pinctrl-0 = <&ts_int>;
122		pinctrl-names = "default";
123	};
124};
125
126&oscclk {
127	clock-frequency = <26000000>;
128};
129
130&mmc {
131	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4 &sd2_cd>;
132	pinctrl-names = "default";
133
134	bus-width = <4>;
135	card-detect-delay = <200>;
136	cd-gpios = <&gpa1 5 GPIO_ACTIVE_LOW>;
137	clock-frequency = <800000000>;
138	disable-wp;
139	sd-uhs-sdr50;
140	sd-uhs-sdr104;
141
142	/* TODO: Add regulators once PMIC is implemented */
143
144	samsung,dw-mshc-ciu-div = <3>;
145	samsung,dw-mshc-ddr-timing = <1 2>;
146	samsung,dw-mshc-sdr-timing = <0 3>;
147
148	status = "okay";
149};
150
151&pinctrl_alive {
152	key_power: key-power-pins {
153		samsung,pins = "gpa2-4";
154		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
155		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
156		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
157	};
158
159	key_voldown: key-voldown-pins {
160		samsung,pins = "gpa0-4";
161		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
162		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
163		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
164	};
165
166	key_volup: key-volup-pins {
167		samsung,pins = "gpa0-3";
168		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
169		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
170		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
171	};
172
173	key_wink: key-wink-pins {
174		samsung,pins = "gpa0-6";
175		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
176		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
177		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
178	};
179
180	sd2_cd: sd2-cd-pins {
181		samsung,pins = "gpa1-5";
182		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
183		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
184		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV4>;
185	};
186
187	ts_int: ts-int-pins {
188		samsung,pins = "gpa1-0";
189		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
190		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
191		samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
192	};
193};
194
195&usi9 {
196	samsung,mode = <USI_MODE_I2C0_1>;
197	status = "okay";
198};
199