1// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2/*
3 * Samsung Galaxy S9 (starlte/SM-G960F) device tree source
4 *
5 * Copyright (c) 2024 Markuss Broks <[email protected]>
6 * Copyright (c) 2024 Maksym Holovach <[email protected]>
7 */
8
9/dts-v1/;
10#include "exynos9810.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/input/input.h>
13
14/ {
15	model = "Samsung Galaxy S9 (SM-G960F)";
16	compatible = "samsung,starlte", "samsung,exynos9810";
17	chassis-type = "handset";
18
19	chosen {
20		#address-cells = <2>;
21		#size-cells = <1>;
22		ranges;
23
24		framebuffer@cc000000 {
25			compatible = "simple-framebuffer";
26			reg = <0x0 0xcc000000 (1440 * 2960 * 4)>;
27			width = <1440>;
28			height = <2960>;
29			stride = <(1440 * 4)>;
30			format = "a8r8g8b8";
31		};
32	};
33
34	gpio-keys {
35		compatible = "gpio-keys";
36
37		pinctrl-0 = <&key_power &key_voldown &key_volup &key_wink>;
38		pinctrl-names = "default";
39
40		power-key {
41			label = "Power";
42			linux,code = <KEY_POWER>;
43			gpios = <&gpa2 4 GPIO_ACTIVE_LOW>;
44			wakeup-source;
45		};
46
47		voldown-key {
48			label = "Volume Down";
49			linux,code = <KEY_VOLUMEDOWN>;
50			gpios = <&gpa0 4 GPIO_ACTIVE_LOW>;
51		};
52
53		volup-key {
54			label = "Volume Up";
55			linux,code = <KEY_VOLUMEUP>;
56			gpios = <&gpa0 3 GPIO_ACTIVE_LOW>;
57		};
58
59		/* In stock firmware used for assistant. Map it as a camera button for now */
60		wink-key {
61			label = "Camera";
62			linux,code = <KEY_CAMERA>;
63			gpios = <&gpa0 6 GPIO_ACTIVE_LOW>;
64		};
65	};
66
67	memory@80000000 {
68		device_type = "memory";
69		reg = <0x0 0x80000000 0x3c800000>,
70		      <0x0 0xc0000000 0x20000000>,
71		      <0x0 0xe1900000 0x1e700000>,
72		      <0x8 0x80000000 0x80000000>;
73	};
74
75	reserved-memory {
76		#address-cells = <2>;
77		#size-cells = <1>;
78		ranges;
79
80		framebuffer@cc000000 {
81			reg = <0x0 0xcc000000 (1440 * 2960 * 4)>;
82			no-map;
83		};
84	};
85};
86
87&oscclk {
88	clock-frequency = <26000000>;
89};
90
91&pinctrl_alive {
92	key_power: key-power-pins {
93		samsung,pins = "gpa2-4";
94		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
95		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
96		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
97	};
98
99	key_voldown: key-voldown-pins {
100		samsung,pins = "gpa0-4";
101		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
102		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
103		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
104	};
105
106	key_volup: key-volup-pins {
107		samsung,pins = "gpa0-3";
108		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
109		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
110		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
111	};
112
113	key_wink: key-wink-pins {
114		samsung,pins = "gpa0-6";
115		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
116		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
117		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
118	};
119};
120