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