linux-loongson/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dts
Ivaylo Ivanov 0cbf9ca0a8 arm64: dts: exynos8895-dreamlte: enable support for the touchscreen
The Samsung Galaxy S8 uses a Samsung s6sy761 touchscreen over hsi2c23.
Add a node for it in order to allow using the touchscreen as long as
the previous bootloader has enabled the required regulators because
there's no support for PMIC yet.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Link: https://lore.kernel.org/r/20250105161344.420749-7-ivo.ivanov.ivanov1@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-02-05 17:29:40 +01:00

199 lines
4.2 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
* Samsung Galaxy S8 (dreamlte/SM-G950F) device tree source
*
* Copyright (c) 2024, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
*/
/dts-v1/;
#include "exynos8895.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/soc/samsung,exynos-usi.h>
/ {
model = "Samsung Galaxy S8 (SM-G950F)";
compatible = "samsung,dreamlte", "samsung,exynos8895";
chassis-type = "handset";
aliases {
mmc0 = &mmc;
};
chosen {
#address-cells = <2>;
#size-cells = <1>;
ranges;
framebuffer: framebuffer@cc000000 {
compatible = "simple-framebuffer";
reg = <0 0xcc000000 (1440 * 2960 * 4)>;
width = <1440>;
height = <2960>;
stride = <(1440 * 4)>;
format = "a8r8g8b8";
};
};
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0x3c800000>,
<0x0 0xc0000000 0x40000000>,
<0x8 0x80000000 0x80000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <1>;
ranges;
ramoops@92000000 {
compatible = "ramoops";
reg = <0 0x92000000 0x8000>;
record-size = <0x4000>;
console-size = <0x4000>;
};
cont_splash_mem: framebuffer@cc000000 {
reg = <0 0xcc000000 (1440 * 2960 * 4)>;
no-map;
};
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&key_power &key_voldown &key_volup &key_wink>;
pinctrl-names = "default";
power-key {
label = "Power";
linux,code = <KEY_POWER>;
gpios = <&gpa2 4 GPIO_ACTIVE_LOW>;
wakeup-source;
};
voldown-key {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
gpios = <&gpa0 4 GPIO_ACTIVE_LOW>;
};
volup-key {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
gpios = <&gpa0 3 GPIO_ACTIVE_LOW>;
};
/* Typically used for Bixby. Map it as a camera button for now */
wink-key {
label = "Camera";
linux,code = <KEY_CAMERA>;
gpios = <&gpa0 6 GPIO_ACTIVE_LOW>;
wakeup-source;
};
};
/* TODO: Remove once PMIC is implemented */
reg_placeholder: regulator-0 {
compatible = "regulator-fixed";
regulator-name = "reg-placeholder";
};
};
&hsi2c_23 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
touchscreen@48 {
compatible = "samsung,s6sy761";
reg = <0x48>;
/* TODO: Update once PMIC is implemented */
avdd-supply = <&reg_placeholder>;
vdd-supply = <&reg_placeholder>;
interrupt-parent = <&gpa1>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
pinctrl-0 = <&ts_int>;
pinctrl-names = "default";
};
};
&oscclk {
clock-frequency = <26000000>;
};
&mmc {
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4 &sd2_cd>;
pinctrl-names = "default";
bus-width = <4>;
card-detect-delay = <200>;
cd-gpios = <&gpa1 5 GPIO_ACTIVE_LOW>;
clock-frequency = <800000000>;
disable-wp;
sd-uhs-sdr50;
sd-uhs-sdr104;
/* TODO: Add regulators once PMIC is implemented */
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-ddr-timing = <1 2>;
samsung,dw-mshc-sdr-timing = <0 3>;
status = "okay";
};
&pinctrl_alive {
key_power: key-power-pins {
samsung,pins = "gpa2-4";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
};
key_voldown: key-voldown-pins {
samsung,pins = "gpa0-4";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
};
key_volup: key-volup-pins {
samsung,pins = "gpa0-3";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
};
key_wink: key-wink-pins {
samsung,pins = "gpa0-6";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
};
sd2_cd: sd2-cd-pins {
samsung,pins = "gpa1-5";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS7_PIN_DRV_LV4>;
};
ts_int: ts-int-pins {
samsung,pins = "gpa1-0";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS7_PIN_DRV_LV1>;
};
};
&usi9 {
samsung,mode = <USI_MODE_I2C0_1>;
status = "okay";
};