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 = <®_placeholder>; 116 vdd-supply = <®_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