mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-02 08:32:55 +00:00

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>
199 lines
4.2 KiB
Plaintext
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 = <®_placeholder>;
|
|
vdd-supply = <®_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";
|
|
};
|