[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250907-perics-add-usinodes-v2-6-58f41796d2d3@gmail.com>
Date: Sun, 07 Sep 2025 22:13:37 +0000
From: Denzeel Oliva <wachiturroxd150@...il.com>
To: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Alim Akhtar <alim.akhtar@...sung.com>,
Sam Protsenko <semen.protsenko@...aro.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby <jirislaby@...nel.org>, Andi Shyti <andi.shyti@...nel.org>
Cc: devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-samsung-soc@...r.kernel.org, linux-kernel@...r.kernel.org,
Krzysztof Kozlowski <krzk@...nel.org>, linux-serial@...r.kernel.org,
linux-i2c@...r.kernel.org, Denzeel Oliva <wachiturroxd150@...il.com>
Subject: [PATCH v2 6/8] arm64: dts: exynos990: Add UART nodes for PERIC0/1
Add UART serial nodes for the PERIC0 and PERIC1 blocks.
Signed-off-by: Denzeel Oliva <wachiturroxd150@...il.com>
---
arch/arm64/boot/dts/exynos/exynos990.dtsi | 323 ++++++++++++++++++++++++++++++
1 file changed, 323 insertions(+)
diff --git a/arch/arm64/boot/dts/exynos/exynos990.dtsi b/arch/arm64/boot/dts/exynos/exynos990.dtsi
index 1e09f3efe685748789ffd346cd914f9a8ba68f8b..de9cf9b2d1b28a62519d95549d04458c6e4fe16d 100644
--- a/arch/arm64/boot/dts/exynos/exynos990.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos990.dtsi
@@ -7,6 +7,7 @@
#include <dt-bindings/clock/samsung,exynos990.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/samsung,exynos-usi.h>
/ {
compatible = "samsung,exynos990";
@@ -272,6 +273,34 @@ pinctrl_peric0: pinctrl@...30000 {
interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
};
+ usi_uart: usi@...400c0 {
+ compatible = "samsung,exynos990-usi", "samsung,exynos850-usi";
+ reg = <0x105400c0 0x20>;
+ ranges;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_PCLK_4>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_IPCLK_4>;
+ clock-names = "pclk", "ipclk";
+ samsung,sysreg = <&sysreg_peric0 0x1000>;
+ samsung,mode = <USI_MODE_UART>;
+ status = "disabled";
+
+ serial_0: serial@...40000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10540000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_PCLK_4>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_IPCLK_4>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart0_bus>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <256>;
+ status = "disabled";
+ };
+ };
+
usi0: usi@...500c0 {
compatible = "samsung,exynos990-usi", "samsung,exynos850-usi";
reg = <0x105500c0 0x20>;
@@ -283,6 +312,20 @@ usi0: usi@...500c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x1004>;
status = "disabled";
+
+ serial_2: serial@...50000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10550000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_PCLK_5>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_IPCLK_5>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart2_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi1: usi@...700c0 {
@@ -296,6 +339,20 @@ usi1: usi@...700c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x100c>;
status = "disabled";
+
+ serial_3: serial@...70000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10570000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_PCLK_7>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_IPCLK_7>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart3_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi2: usi@...900c0 {
@@ -309,6 +366,20 @@ usi2: usi@...900c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x1014>;
status = "disabled";
+
+ serial_4: serial@...90000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10590000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_PCLK_9>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_IPCLK_9>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart4_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi3: usi@...b00c0 {
@@ -322,6 +393,20 @@ usi3: usi@...b00c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x101c>;
status = "disabled";
+
+ serial_5: serial@...b0000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x105b0000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_PCLK_11>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_IPCLK_11>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart5_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi4: usi@...d00c0 {
@@ -335,6 +420,20 @@ usi4: usi@...d00c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x1024>;
status = "disabled";
+
+ serial_6: serial@...d0000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x105d0000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_PCLK_13>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_IPCLK_13>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart6_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi5: usi@...f00c0 {
@@ -348,6 +447,20 @@ usi5: usi@...f00c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x102c>;
status = "disabled";
+
+ serial_7: serial@...f0000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x105f0000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_PCLK_15>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP0_IPCLK_15>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart7_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi13: usi@...300c0 {
@@ -361,6 +474,20 @@ usi13: usi@...300c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x103c>;
status = "disabled";
+
+ serial_15: serial@...30000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10630000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP1_PCLK_3>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP1_IPCLK_3>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart15_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi14: usi@...500c0 {
@@ -374,6 +501,20 @@ usi14: usi@...500c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x1044>;
status = "disabled";
+
+ serial_16: serial@...50000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10650000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP1_PCLK_5>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP1_IPCLK_5>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart16_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled"
+ };
};
usi15: usi@...700c0 {
@@ -387,6 +528,20 @@ usi15: usi@...700c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric0 0x104c>;
status = "disabled";
+
+ serial_17: serial@...70000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10670000 0xc0>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_TOP1_PCLK_7>,
+ <&cmu_peric0 CLK_GOUT_PERIC0_TOP1_IPCLK_7>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart17_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
cmu_peric1: clock-controller@...00000 {
@@ -412,6 +567,34 @@ pinctrl_peric1: pinctrl@...30000 {
interrupts = <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>;
};
+ usi_bt_uart: usi@...400c0 {
+ compatible = "samsung,exynos990-usi", "samsung,exynos850-usi";
+ reg = <0x108400c0 0x20>;
+ ranges;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_PCLK_4>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_IPCLK_4>;
+ clock-names = "pclk", "ipclk";
+ samsung,sysreg = <&sysreg_peric1 0x1000>;
+ samsung,mode = <USI_MODE_UART>;
+ status = "disabled";
+
+ serial_1: serial@...40000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10840000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_PCLK_4>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_IPCLK_4>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart1_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <256>;
+ status = "disabled";
+ };
+ };
+
usi6: usi@...a00c0 {
compatible = "samsung,exynos990-usi", "samsung,exynos850-usi";
reg = <0x108a00c0 0x20>;
@@ -423,6 +606,20 @@ usi6: usi@...a00c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x1018>;
status = "disabled";
+
+ serial_8: serial@...a0000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x108a0000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_PCLK_10>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_IPCLK_10>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart8_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi7: usi@...c00c0 {
@@ -436,6 +633,20 @@ usi7: usi@...c00c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x1020>;
status = "disabled";
+
+ serial_9: serial@...c0000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x108c0000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_PCLK_12>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_IPCLK_12>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart9_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi8: usi@...e00c0 {
@@ -449,6 +660,20 @@ usi8: usi@...e00c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x1028>;
status = "disabled";
+
+ serial_10: serial@...e0000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x108e0000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_PCLK_14>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP0_IPCLK_14>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart10_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <256>;
+ status = "disabled";
+ };
};
usi9: usi@...000c0 {
@@ -462,6 +687,20 @@ usi9: usi@...000c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x1030>;
status = "disabled";
+
+ serial_11: serial@...00000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10900000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_PCLK_0>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_IPCLK_0>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart11_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <256>;
+ status = "disabled";
+ };
};
usi10: usi@...200c0 {
@@ -475,6 +714,20 @@ usi10: usi@...200c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x1038>;
status = "disabled";
+
+ serial_12: serial@...20000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10920000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_PCLK_2>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_IPCLK_2>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart12_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <256>;
+ status = "disabled";
+ };
};
usi11: usi@...400c0 {
@@ -488,6 +741,20 @@ usi11: usi@...400c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x1040>;
status = "disabled";
+
+ serial_13: serial@...40000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10940000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_PCLK_4>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_IPCLK_4>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart13_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi12: usi@...c00c0 {
@@ -501,6 +768,20 @@ usi12: usi@...c00c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x2000>;
status = "disabled";
+
+ serial_14: serial@...c0000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x109c0000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_PCLK_12>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_IPCLK_12>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart14_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi16: usi@...600c0 {
@@ -514,6 +795,20 @@ usi16: usi@...600c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x1048>;
status = "disabled";
+
+ serial_18: serial@...60000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10960000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_PCLK_6>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_IPCLK_6>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart18_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi17: usi@...900c0 {
@@ -527,6 +822,20 @@ usi17: usi@...900c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x1050>;
status = "disabled";
+
+ serial_19: serial@...90000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x10990000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_PCLK_9>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_IPCLK_9>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart19_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
usi18: usi@...e00c0 {
@@ -540,6 +849,20 @@ usi18: usi@...e00c0 {
clock-names = "pclk", "ipclk";
samsung,sysreg = <&sysreg_peric1 0x2008>;
status = "disabled";
+
+ serial_20: serial@...e0000 {
+ compatible = "samsung,exynos990-uart",
+ "samsung,exynos8895-uart";
+ reg = <0x109e0000 0xc0>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_PCLK_14>,
+ <&cmu_peric1 CLK_GOUT_PERIC1_TOP1_IPCLK_14>;
+ clock-names = "uart", "clk_uart_baud0";
+ interrupts = <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart20_bus_single>;
+ pinctrl-names = "default";
+ samsung,uart-fifosize = <64>;
+ status = "disabled";
+ };
};
cmu_hsi0: clock-controller@...00000 {
--
2.50.1
Powered by blists - more mailing lists