15f62a964SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 25f62a964SEmmanuel Vadot/* 35f62a964SEmmanuel Vadot * Samsung Galaxy S8 (dreamlte/SM-G950F) device tree source 45f62a964SEmmanuel Vadot * 55f62a964SEmmanuel Vadot * Copyright (c) 2024, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com> 65f62a964SEmmanuel Vadot */ 75f62a964SEmmanuel Vadot 85f62a964SEmmanuel Vadot/dts-v1/; 95f62a964SEmmanuel Vadot#include "exynos8895.dtsi" 105f62a964SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 115f62a964SEmmanuel Vadot#include <dt-bindings/input/input.h> 125f62a964SEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 13*8ccc0d23SEmmanuel Vadot#include <dt-bindings/soc/samsung,exynos-usi.h> 145f62a964SEmmanuel Vadot 155f62a964SEmmanuel Vadot/ { 165f62a964SEmmanuel Vadot model = "Samsung Galaxy S8 (SM-G950F)"; 175f62a964SEmmanuel Vadot compatible = "samsung,dreamlte", "samsung,exynos8895"; 185f62a964SEmmanuel Vadot chassis-type = "handset"; 195f62a964SEmmanuel Vadot 20*8ccc0d23SEmmanuel Vadot aliases { 21*8ccc0d23SEmmanuel Vadot mmc0 = &mmc; 22*8ccc0d23SEmmanuel Vadot }; 23*8ccc0d23SEmmanuel Vadot 245f62a964SEmmanuel Vadot chosen { 255f62a964SEmmanuel Vadot #address-cells = <2>; 265f62a964SEmmanuel Vadot #size-cells = <1>; 275f62a964SEmmanuel Vadot ranges; 285f62a964SEmmanuel Vadot 295f62a964SEmmanuel Vadot framebuffer: framebuffer@cc000000 { 305f62a964SEmmanuel Vadot compatible = "simple-framebuffer"; 315f62a964SEmmanuel Vadot reg = <0 0xcc000000 (1440 * 2960 * 4)>; 325f62a964SEmmanuel Vadot width = <1440>; 335f62a964SEmmanuel Vadot height = <2960>; 345f62a964SEmmanuel Vadot stride = <(1440 * 4)>; 355f62a964SEmmanuel Vadot format = "a8r8g8b8"; 365f62a964SEmmanuel Vadot }; 375f62a964SEmmanuel Vadot }; 385f62a964SEmmanuel Vadot 395f62a964SEmmanuel Vadot memory@80000000 { 405f62a964SEmmanuel Vadot device_type = "memory"; 415f62a964SEmmanuel Vadot reg = <0x0 0x80000000 0x3c800000>, 425f62a964SEmmanuel Vadot <0x0 0xc0000000 0x40000000>, 435f62a964SEmmanuel Vadot <0x8 0x80000000 0x80000000>; 445f62a964SEmmanuel Vadot }; 455f62a964SEmmanuel Vadot 465f62a964SEmmanuel Vadot reserved-memory { 475f62a964SEmmanuel Vadot #address-cells = <2>; 485f62a964SEmmanuel Vadot #size-cells = <1>; 495f62a964SEmmanuel Vadot ranges; 505f62a964SEmmanuel Vadot 515f62a964SEmmanuel Vadot ramoops@92000000 { 525f62a964SEmmanuel Vadot compatible = "ramoops"; 535f62a964SEmmanuel Vadot reg = <0 0x92000000 0x8000>; 545f62a964SEmmanuel Vadot record-size = <0x4000>; 555f62a964SEmmanuel Vadot console-size = <0x4000>; 565f62a964SEmmanuel Vadot }; 575f62a964SEmmanuel Vadot 585f62a964SEmmanuel Vadot cont_splash_mem: framebuffer@cc000000 { 595f62a964SEmmanuel Vadot reg = <0 0xcc000000 (1440 * 2960 * 4)>; 605f62a964SEmmanuel Vadot no-map; 615f62a964SEmmanuel Vadot }; 625f62a964SEmmanuel Vadot }; 635f62a964SEmmanuel Vadot 645f62a964SEmmanuel Vadot gpio-keys { 655f62a964SEmmanuel Vadot compatible = "gpio-keys"; 665f62a964SEmmanuel Vadot 675f62a964SEmmanuel Vadot pinctrl-0 = <&key_power &key_voldown &key_volup &key_wink>; 685f62a964SEmmanuel Vadot pinctrl-names = "default"; 695f62a964SEmmanuel Vadot 705f62a964SEmmanuel Vadot power-key { 715f62a964SEmmanuel Vadot label = "Power"; 725f62a964SEmmanuel Vadot linux,code = <KEY_POWER>; 735f62a964SEmmanuel Vadot gpios = <&gpa2 4 GPIO_ACTIVE_LOW>; 745f62a964SEmmanuel Vadot wakeup-source; 755f62a964SEmmanuel Vadot }; 765f62a964SEmmanuel Vadot 775f62a964SEmmanuel Vadot voldown-key { 785f62a964SEmmanuel Vadot label = "Volume Down"; 795f62a964SEmmanuel Vadot linux,code = <KEY_VOLUMEDOWN>; 805f62a964SEmmanuel Vadot gpios = <&gpa0 4 GPIO_ACTIVE_LOW>; 815f62a964SEmmanuel Vadot }; 825f62a964SEmmanuel Vadot 835f62a964SEmmanuel Vadot volup-key { 845f62a964SEmmanuel Vadot label = "Volume Up"; 855f62a964SEmmanuel Vadot linux,code = <KEY_VOLUMEUP>; 865f62a964SEmmanuel Vadot gpios = <&gpa0 3 GPIO_ACTIVE_LOW>; 875f62a964SEmmanuel Vadot }; 885f62a964SEmmanuel Vadot 895f62a964SEmmanuel Vadot /* Typically used for Bixby. Map it as a camera button for now */ 905f62a964SEmmanuel Vadot wink-key { 915f62a964SEmmanuel Vadot label = "Camera"; 925f62a964SEmmanuel Vadot linux,code = <KEY_CAMERA>; 935f62a964SEmmanuel Vadot gpios = <&gpa0 6 GPIO_ACTIVE_LOW>; 945f62a964SEmmanuel Vadot wakeup-source; 955f62a964SEmmanuel Vadot }; 965f62a964SEmmanuel Vadot }; 97*8ccc0d23SEmmanuel Vadot 98*8ccc0d23SEmmanuel Vadot /* TODO: Remove once PMIC is implemented */ 99*8ccc0d23SEmmanuel Vadot reg_placeholder: regulator-0 { 100*8ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 101*8ccc0d23SEmmanuel Vadot regulator-name = "reg-placeholder"; 102*8ccc0d23SEmmanuel Vadot }; 103*8ccc0d23SEmmanuel Vadot}; 104*8ccc0d23SEmmanuel Vadot 105*8ccc0d23SEmmanuel Vadot&hsi2c_23 { 106*8ccc0d23SEmmanuel Vadot #address-cells = <1>; 107*8ccc0d23SEmmanuel Vadot #size-cells = <0>; 108*8ccc0d23SEmmanuel Vadot status = "okay"; 109*8ccc0d23SEmmanuel Vadot 110*8ccc0d23SEmmanuel Vadot touchscreen@48 { 111*8ccc0d23SEmmanuel Vadot compatible = "samsung,s6sy761"; 112*8ccc0d23SEmmanuel Vadot reg = <0x48>; 113*8ccc0d23SEmmanuel Vadot 114*8ccc0d23SEmmanuel Vadot /* TODO: Update once PMIC is implemented */ 115*8ccc0d23SEmmanuel Vadot avdd-supply = <®_placeholder>; 116*8ccc0d23SEmmanuel Vadot vdd-supply = <®_placeholder>; 117*8ccc0d23SEmmanuel Vadot 118*8ccc0d23SEmmanuel Vadot interrupt-parent = <&gpa1>; 119*8ccc0d23SEmmanuel Vadot interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 120*8ccc0d23SEmmanuel Vadot 121*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&ts_int>; 122*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 123*8ccc0d23SEmmanuel Vadot }; 1245f62a964SEmmanuel Vadot}; 1255f62a964SEmmanuel Vadot 1265f62a964SEmmanuel Vadot&oscclk { 1275f62a964SEmmanuel Vadot clock-frequency = <26000000>; 1285f62a964SEmmanuel Vadot}; 1295f62a964SEmmanuel Vadot 130*8ccc0d23SEmmanuel Vadot&mmc { 131*8ccc0d23SEmmanuel Vadot pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4 &sd2_cd>; 132*8ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 133*8ccc0d23SEmmanuel Vadot 134*8ccc0d23SEmmanuel Vadot bus-width = <4>; 135*8ccc0d23SEmmanuel Vadot card-detect-delay = <200>; 136*8ccc0d23SEmmanuel Vadot cd-gpios = <&gpa1 5 GPIO_ACTIVE_LOW>; 137*8ccc0d23SEmmanuel Vadot clock-frequency = <800000000>; 138*8ccc0d23SEmmanuel Vadot disable-wp; 139*8ccc0d23SEmmanuel Vadot sd-uhs-sdr50; 140*8ccc0d23SEmmanuel Vadot sd-uhs-sdr104; 141*8ccc0d23SEmmanuel Vadot 142*8ccc0d23SEmmanuel Vadot /* TODO: Add regulators once PMIC is implemented */ 143*8ccc0d23SEmmanuel Vadot 144*8ccc0d23SEmmanuel Vadot samsung,dw-mshc-ciu-div = <3>; 145*8ccc0d23SEmmanuel Vadot samsung,dw-mshc-ddr-timing = <1 2>; 146*8ccc0d23SEmmanuel Vadot samsung,dw-mshc-sdr-timing = <0 3>; 147*8ccc0d23SEmmanuel Vadot 148*8ccc0d23SEmmanuel Vadot status = "okay"; 149*8ccc0d23SEmmanuel Vadot}; 150*8ccc0d23SEmmanuel Vadot 1515f62a964SEmmanuel Vadot&pinctrl_alive { 1525f62a964SEmmanuel Vadot key_power: key-power-pins { 1535f62a964SEmmanuel Vadot samsung,pins = "gpa2-4"; 1545f62a964SEmmanuel Vadot samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 1555f62a964SEmmanuel Vadot samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 1565f62a964SEmmanuel Vadot samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>; 1575f62a964SEmmanuel Vadot }; 1585f62a964SEmmanuel Vadot 1595f62a964SEmmanuel Vadot key_voldown: key-voldown-pins { 1605f62a964SEmmanuel Vadot samsung,pins = "gpa0-4"; 1615f62a964SEmmanuel Vadot samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 1625f62a964SEmmanuel Vadot samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 1635f62a964SEmmanuel Vadot samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>; 1645f62a964SEmmanuel Vadot }; 1655f62a964SEmmanuel Vadot 1665f62a964SEmmanuel Vadot key_volup: key-volup-pins { 1675f62a964SEmmanuel Vadot samsung,pins = "gpa0-3"; 1685f62a964SEmmanuel Vadot samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 1695f62a964SEmmanuel Vadot samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 1705f62a964SEmmanuel Vadot samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>; 1715f62a964SEmmanuel Vadot }; 1725f62a964SEmmanuel Vadot 1735f62a964SEmmanuel Vadot key_wink: key-wink-pins { 1745f62a964SEmmanuel Vadot samsung,pins = "gpa0-6"; 1755f62a964SEmmanuel Vadot samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 1765f62a964SEmmanuel Vadot samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 1775f62a964SEmmanuel Vadot samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>; 1785f62a964SEmmanuel Vadot }; 179*8ccc0d23SEmmanuel Vadot 180*8ccc0d23SEmmanuel Vadot sd2_cd: sd2-cd-pins { 181*8ccc0d23SEmmanuel Vadot samsung,pins = "gpa1-5"; 182*8ccc0d23SEmmanuel Vadot samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 183*8ccc0d23SEmmanuel Vadot samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; 184*8ccc0d23SEmmanuel Vadot samsung,pin-drv = <EXYNOS7_PIN_DRV_LV4>; 185*8ccc0d23SEmmanuel Vadot }; 186*8ccc0d23SEmmanuel Vadot 187*8ccc0d23SEmmanuel Vadot ts_int: ts-int-pins { 188*8ccc0d23SEmmanuel Vadot samsung,pins = "gpa1-0"; 189*8ccc0d23SEmmanuel Vadot samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 190*8ccc0d23SEmmanuel Vadot samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 191*8ccc0d23SEmmanuel Vadot samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>; 192*8ccc0d23SEmmanuel Vadot }; 193*8ccc0d23SEmmanuel Vadot}; 194*8ccc0d23SEmmanuel Vadot 195*8ccc0d23SEmmanuel Vadot&usi9 { 196*8ccc0d23SEmmanuel Vadot samsung,mode = <USI_MODE_I2C0_1>; 197*8ccc0d23SEmmanuel Vadot status = "okay"; 1985f62a964SEmmanuel Vadot}; 199