]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: exynos: Add initial support for Samsung Galaxy S20 Series boards (x1s...
authorUmer Uddin <umer.uddin@mentallysanemainliners.org>
Mon, 9 Dec 2024 08:00:57 +0000 (08:00 +0000)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Mon, 9 Dec 2024 19:50:56 +0000 (20:50 +0100)
Add initial support for the Samsung Galaxy S20 Series (x1s-common) phones.
They were launched in 2020, and are based on the Exynos 990 SoC.
The devices have multiple RAM configurations,
starting from 8GB going all the way up to 16GB for the S20 Ultra devices.

This device tree adds support for the following:

- SimpleFB
- 8GB RAM (Any more will be mapped in device trees)
- Buttons

Signed-off-by: Umer Uddin <umer.uddin@mentallysanemainliners.org>
Link: https://lore.kernel.org/r/20241209080059.11891-3-umer.uddin@mentallysanemainliners.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
arch/arm64/boot/dts/exynos/exynos990-x1s-common.dtsi [new file with mode: 0644]

diff --git a/arch/arm64/boot/dts/exynos/exynos990-x1s-common.dtsi b/arch/arm64/boot/dts/exynos/exynos990-x1s-common.dtsi
new file mode 100644 (file)
index 0000000..55fa8e9
--- /dev/null
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Samsung Galaxy S20 Series device tree source
+ *
+ * Copyright (c) 2024, Umer Uddin <umer.uddin@mentallysanemainliners.org>
+ */
+
+/dts-v1/;
+#include "exynos990.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               framebuffer0: framebuffer@f1000000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0 0xf1000000 0 (1440 * 3200 * 4)>;
+                       width = <1440>;
+                       height = <3200>;
+                       stride = <(1440 * 4)>;
+                       format = "a8r8g8b8";
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               cont_splash_mem: framebuffer@f1000000 {
+                       reg = <0 0xf1000000 0 0x1194000>;
+                       no-map;
+               };
+
+               abox_reserved: audio@f7fb0000 {
+                       reg = <0 0xf7fb0000 0 0x2a50000>;
+                       no-map;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&key_power &key_voldown &key_volup>;
+               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>;
+               };
+       };
+};
+
+&oscclk {
+       clock-frequency = <26000000>;
+};
+
+&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 = <EXYNOS5420_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 = <EXYNOS5420_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 = <EXYNOS5420_PIN_DRV_LV1>;
+       };
+};