[PATCH 3/7] arm64: dts: ti: k3-j721s2: Add Wave5 Video Encoder/Decoder node

Brandon Brnich b-brnich at ti.com
Mon Nov 27 14:37:14 PST 2023


From: Darren Etheridge <detheridge at ti.com>

Add the Chips and Media wave521cl video decoder/encoder node on J721S2.

This functional block also requires an SRAM buffer as a bandwidth saving
temporary store so we need to add a carve out of 126K for this as
specified in the documentation.

Wave521cl needs to use CMA as there is no IO MMU on J721S2-evm. Each
1080p channel requires roughly 98-100 MB. Allocate 896 MB to meet 8
channel capability for J721S2-evm.

Signed-off-by: Darren Etheridge <detheridge at ti.com>
Signed-off-by: Brandon Brnich <b-brnich at ti.com>
---
 .../boot/dts/ti/k3-j721s2-common-proc-board.dts   |  4 ++++
 arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi        | 15 +++++++++++++++
 arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi      |  8 ++++++++
 3 files changed, 27 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
index c6b85bbf9a17..5e6eb0fab1c3 100644
--- a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
@@ -303,6 +303,10 @@ &main_gpio0 {
 	status = "okay";
 };
 
+&vpu {
+	status = "okay";
+};
+
 &wkup_gpio0 {
 	status = "okay";
 };
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
index b03731b53a26..69144d9d9649 100644
--- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
@@ -28,6 +28,10 @@ atf-sram at 0 {
 			reg = <0x0 0x20000>;
 		};
 
+		vpu_sram: vpu-sram at 20000 {
+			reg = <0x20000 0x1f800>;
+		};
+
 		tifs-sram at 1f0000 {
 			reg = <0x1f0000 0x10000>;
 		};
@@ -716,6 +720,17 @@ main_i2c6: i2c at 2060000 {
 		status = "disabled";
 	};
 
+	vpu: video-codec at 4210000 {
+		compatible = "ti,k3-j721s2-wave521c", "cnm,wave521c";
+		reg = <0x00 0x4210000 0x00 0x10000>;
+		interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&k3_clks 179 2>;
+		clock-names = "vcodec";
+		power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>;
+		sram = <&vpu_sram>;
+		status = "disabled";
+	};
+
 	main_sdhci0: mmc at 4f80000 {
 		compatible = "ti,j721e-sdhci-8bit";
 		reg = <0x00 0x04f80000 0x00 0x1000>,
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi
index dcad372620b1..b8ae89c4feac 100644
--- a/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi
@@ -24,6 +24,14 @@ reserved_memory: reserved-memory {
 		#size-cells = <2>;
 		ranges;
 
+		/* global cma region */
+		linux,cma {
+			compatible = "shared-dma-pool";
+			reusable;
+			size = <0x00 0x38000000>;
+			linux,cma-default;
+		};
+
 		secure_ddr: optee at 9e800000 {
 			reg = <0x00 0x9e800000 0x00 0x01800000>;
 			alignment = <0x1000>;
-- 
2.34.1




More information about the linux-arm-kernel mailing list