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