[PATCH 1/7] arm64: dts: ti: k3-j784s4: Add Wave5 Video Encoder/Decoder Node

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


This patch adds support for the Wave521cl on the J784S4-evm.

The node requires an SRAM buffer to reduce bandwidth by saving temporal
information. Allocate 126K for this as specified in documentation.

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

Signed-off-by: Brandon Brnich <b-brnich at ti.com>
---
 arch/arm64/boot/dts/ti/k3-j784s4-evm.dts   | 16 +++++++++++++
 arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 26 ++++++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-j784s4.dtsi      |  2 ++
 3 files changed, 44 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
index f1f4c8634ab6..ff72674acae2 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
@@ -41,6 +41,14 @@ reserved_memory: reserved-memory {
 		#size-cells = <2>;
 		ranges;
 
+		/* global cma region */
+		linux,cma {
+			compatible = "shared-dma-pool";
+			reusable;
+			size = <0x00 0x70000000>;
+			linux,cma-default;
+		};
+
 		secure_ddr: optee at 9e800000 {
 			reg = <0x00 0x9e800000 0x00 0x01800000>;
 			no-map;
@@ -682,6 +690,14 @@ &main_gpio0 {
 	status = "okay";
 };
 
+&vpu0 {
+	status = "okay";
+};
+
+&vpu1 {
+	status = "okay";
+};
+
 &mcu_cpsw {
 	status = "okay";
 	pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
index d89bcddcfe3d..8c0c3f171120 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
@@ -32,6 +32,10 @@ atf-sram at 0 {
 			reg = <0x00 0x20000>;
 		};
 
+		vpu_sram: vpu-sram at 20000 {
+			reg = <0x20000 0x1f800>;
+		};
+
 		tifs-sram at 1f0000 {
 			reg = <0x1f0000 0x10000>;
 		};
@@ -662,6 +666,28 @@ main_i2c6: i2c at 2060000 {
 		status = "disabled";
 	};
 
+	vpu0: video-codec at 4210000 {
+		compatible = "cnm,cm521c-vpu";
+		reg = <0x00 0x4210000 0x00 0x10000>;
+		interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&k3_clks 241 2>;
+		clock-names = "vcodec";
+		power-domains = <&k3_pds 241 TI_SCI_PD_EXCLUSIVE>;
+		sram = <&vpu_sram>;
+		status = "disabled";
+	};
+
+	vpu1: video-codec at 4220000 {
+		compatible = "cnm,cm521c-vpu";
+		reg = <0x00 0x4220000 0x00 0x10000>;
+		interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&k3_clks 242 2>;
+		clock-names = "vcodec";
+		power-domains = <&k3_pds 242 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-j784s4.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4.dtsi
index 4398c3a463e1..93bb0cba1b48 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j784s4.dtsi
@@ -247,6 +247,8 @@ cbass_main: bus at 100000 {
 			 <0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>, /* MAIN NAVSS */
 			 <0x41 0x00000000 0x41 0x00000000 0x01 0x00000000>, /* PCIe1 DAT1 */
 			 <0x4e 0x20000000 0x4e 0x20000000 0x00 0x00080000>, /* GPU */
+			 <0x00 0x04210000 0x00 0x04210000 0x00 0x00010000>, /* VPU0 */
+			 <0x00 0x04220000 0x00 0x04220000 0x00 0x00010000>, /* VPU1 */
 
 			 /* MCUSS_WKUP Range */
 			 <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>,
-- 
2.34.1




More information about the linux-arm-kernel mailing list