xref: /freebsd/sys/contrib/device-tree/src/arm64/exynos/exynos8895-dreamlte.dts (revision 8ccc0d235c226d84112561d453c49904398d085c)
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 = <&reg_placeholder>;
116*8ccc0d23SEmmanuel Vadot		vdd-supply = <&reg_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