Skip to content

Commit e65761f

Browse files
committed
Merge tag 'samsung-dt64-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
Samsung DTS ARM64 changes for v6.17 1. New SoC - Exynos2200 SoC - with basic nodes, pin controllers, clock controllers and initial USB support. Add board using it: Samsung Galaxy S22+ (SM-S906B), called G0S. 2. ExynosAutov920: Add CMU_HSI2 clock controller, remaining SPI nodes 3. Google GS101: - Prepare to switching to architected timer, instead of Exynos MCT as the primary one. - Add secondary Maxim MAX77759 PMIC to Pixel boards, managing USB Type-C and charger. - Add incomplete description of the primary Samsung S2MPG10 PMIC. Several bits, like regulators, are still missing, though. - Add also secondary reboot-mode, via MAX77759 NVMEM. - Switch the primary (SoC) reboot handler to Google specific google,gs101-reboot which gives additional GS101 features (cold and warm reboots). This change will affect other users of this DTS, but to our knowledge there is only Android, from which this change originates. 4. Exynos7870: - Fix speed problems in USB gadget mode. - Correct memory map to avoid crashes due to secure world. * tag 'samsung-dt64-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: arm64: dts: exynos7870-j6lte: reduce memory ranges to base amount arm64: dts: exynos7870-on7xelte: reduce memory ranges to base amount arm64: dts: exynos7870: add quirk to disable USB2 LPM in gadget mode arm64: dts: exynos: gs101: switch to gs101 specific reboot arm64: dts: exynos: gs101-pixel-common: add main PMIC node arm64: dts: exynos: gs101: ufs: add dma-coherent property arm64: dts: exynos: gs101: add dm-verity-device-corrupted syscon-reboot-mode arm64: dts: exynos: gs101-pixel-common: add nvmem-reboot-mode arm64: dts: exynos: gs101-pixel-common: add Maxim MAX77759 PMIC arm64: dts: exynos5433: Align i2c-gpio node names with dtschema arm64: dts: exynos: gs101: Add 'local-timer-stop' to cpuidle nodes arm64: dts: exynosautov920: Add DT node for all SPI ports arm64: dts: exynosautov920: add CMU_HSI2 clock DT nodes MAINTAINERS: add entry for Samsung Exynos2200 SoC arm64: dts: exynos: add initial support for Samsung Galaxy S22+ arm64: dts: exynos: add initial support for exynos2200 SoC dt-bindings: arm: samsung: document g0s board binding Link: https://lore.kernel.org/r/20250709191523.171359-6-krzysztof.kozlowski@linaro.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents ad6d5af + 49a27c6 commit e65761f

13 files changed

Lines changed: 2996 additions & 7 deletions

File tree

Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ properties:
4545
- const: samsung,aries
4646
- const: samsung,s5pv210
4747

48+
- description: Exynos2200 based boards
49+
items:
50+
- enum:
51+
- samsung,g0s # Samsung Galaxy S22+ (SM-S906B)
52+
- const: samsung,exynos2200
53+
4854
- description: Exynos3250 based boards
4955
items:
5056
- enum:

MAINTAINERS

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21941,6 +21941,16 @@ B: mailto:linux-samsung-soc@vger.kernel.org
2194121941
F: Documentation/devicetree/bindings/sound/samsung*
2194221942
F: sound/soc/samsung/
2194321943

21944+
SAMSUNG EXYNOS2200 SoC SUPPORT
21945+
M: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
21946+
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
21947+
L: linux-samsung-soc@vger.kernel.org
21948+
S: Maintained
21949+
F: Documentation/devicetree/bindings/clock/samsung,exynos2200-cmu.yaml
21950+
F: arch/arm64/boot/dts/exynos/exynos2200*
21951+
F: drivers/clk/samsung/clk-exynos2200.c
21952+
F: include/dt-bindings/clock/samsung,exynos2200-cmu.h
21953+
2194421954
SAMSUNG EXYNOS850 SoC SUPPORT
2194521955
M: Sam Protsenko <semen.protsenko@linaro.org>
2194621956
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)

arch/arm64/boot/dts/exynos/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
subdir-y += google
33

44
dtb-$(CONFIG_ARCH_EXYNOS) += \
5+
exynos2200-g0s.dtb \
56
exynos5433-tm2.dtb \
67
exynos5433-tm2e.dtb \
78
exynos7-espresso.dtb \
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2+
/*
3+
* Samsung Galaxy S22+ (g0s/SM-S906B) device tree source
4+
*
5+
* Copyright (c) 2025, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
6+
*/
7+
8+
/dts-v1/;
9+
#include "exynos2200.dtsi"
10+
#include <dt-bindings/gpio/gpio.h>
11+
#include <dt-bindings/input/input.h>
12+
#include <dt-bindings/interrupt-controller/irq.h>
13+
14+
/ {
15+
model = "Samsung Galaxy S22+ (SM-S906B)";
16+
compatible = "samsung,g0s", "samsung,exynos2200";
17+
chassis-type = "handset";
18+
19+
chosen {
20+
#address-cells = <2>;
21+
#size-cells = <2>;
22+
ranges;
23+
24+
framebuffer: framebuffer {
25+
compatible = "simple-framebuffer";
26+
memory-region = <&cont_splash_mem>;
27+
width = <1080>;
28+
height = <2340>;
29+
stride = <(1080 * 4)>;
30+
format = "a8r8g8b8";
31+
};
32+
};
33+
34+
/*
35+
* RTC clock (XrtcXTI); external, must be 32.768 kHz.
36+
*
37+
* TODO: Remove this once RTC clock is implemented properly as part of
38+
* PMIC driver.
39+
*/
40+
rtcclk: clock-rtcclk {
41+
compatible = "fixed-clock";
42+
clock-output-names = "rtcclk";
43+
#clock-cells = <0>;
44+
clock-frequency = <32768>;
45+
};
46+
47+
gpio-keys {
48+
compatible = "gpio-keys";
49+
50+
pinctrl-0 = <&key_volup>;
51+
pinctrl-names = "default";
52+
53+
volup-key {
54+
label = "Volume Up";
55+
linux,code = <KEY_VOLUMEUP>;
56+
gpios = <&gpa3 0 GPIO_ACTIVE_LOW>;
57+
wakeup-source;
58+
};
59+
};
60+
61+
memory@80000000 {
62+
device_type = "memory";
63+
reg = <0x0 0x80000000 0x0 0x80000000>,
64+
<0x8 0x80000000 0x1 0x7e000000>;
65+
};
66+
67+
/* TODO: Remove this once PMIC is implemented */
68+
reg_dummy: regulator-0 {
69+
compatible = "regulator-fixed";
70+
regulator-name = "dummy_reg";
71+
};
72+
73+
reserved-memory {
74+
#address-cells = <2>;
75+
#size-cells = <2>;
76+
ranges;
77+
78+
cont_splash_mem: framebuffer@f6200000 {
79+
reg = <0x0 0xf6200000 0x0 (1080 * 2340 * 4)>;
80+
no-map;
81+
};
82+
83+
debug_kinfo_reserved: debug-kinfo-reserved@fcfff000 {
84+
reg = <0x0 0xfcfff000 0x0 0x1000>;
85+
no-map;
86+
};
87+
88+
log_itmon: log-itmon@fffe0000 {
89+
reg = <0x0 0xfffe0000 0x0 0x20000>;
90+
no-map;
91+
};
92+
};
93+
};
94+
95+
&cmu_hsi0 {
96+
clocks = <&xtcxo>,
97+
<&rtcclk>,
98+
<&cmu_top CLK_DOUT_CMU_HSI0_NOC>,
99+
<&cmu_top CLK_DOUT_CMU_HSI0_DPGTC>,
100+
<&cmu_top CLK_DOUT_CMU_HSI0_DPOSC>,
101+
<&cmu_top CLK_DOUT_CMU_HSI0_USB32DRD>;
102+
clock-names = "oscclk", "rtcclk", "noc", "dpgtc", "dposc", "usb";
103+
};
104+
105+
/*
106+
* cpu2 and cpu3 fail to come up consistently, which leads to a hang later
107+
* in the boot process. Disable them until the issue is figured out.
108+
*/
109+
&cpu2 {
110+
status = "fail";
111+
};
112+
113+
&cpu3 {
114+
status = "fail";
115+
};
116+
117+
&ext_26m {
118+
clock-frequency = <26000000>;
119+
};
120+
121+
&ext_200m {
122+
clock-frequency = <200000000>;
123+
};
124+
125+
&mct_peris {
126+
status = "okay";
127+
};
128+
129+
&pinctrl_alive {
130+
key_volup: key-volup-pins {
131+
samsung,pins = "gpa3-0";
132+
samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
133+
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
134+
samsung,pin-drv = <EXYNOS7_PIN_DRV_LV4>;
135+
};
136+
};
137+
138+
&ppi_cluster0 {
139+
affinity = <&cpu0 &cpu1>;
140+
};
141+
142+
&usb {
143+
/* TODO: Replace these once PMIC is implemented */
144+
vdd10-supply = <&reg_dummy>;
145+
vdd33-supply = <&reg_dummy>;
146+
status = "okay";
147+
};
148+
149+
&usb32drd {
150+
status = "okay";
151+
};
152+
153+
&usb_dwc3 {
154+
dr_mode = "otg";
155+
usb-role-switch;
156+
role-switch-default-mode = "peripheral";
157+
maximum-speed = "high-speed";
158+
};
159+
160+
&usb_hsphy {
161+
/* TODO: Replace these once PMIC is implemented */
162+
vdda12-supply = <&reg_dummy>;
163+
vdd-supply = <&reg_dummy>;
164+
status = "okay";
165+
};
166+
167+
&xtcxo {
168+
clock-frequency = <76800000>;
169+
};

0 commit comments

Comments
 (0)