diff mbox series

[U-Boot,v4] armv8: ls1028a: disable multimedia feature when not supported

Message ID 20191119023640.34790-1-wen.he_1@nxp.com
State Changes Requested
Delegated to: Priyanka Jain
Headers show
Series [U-Boot,v4] armv8: ls1028a: disable multimedia feature when not supported | expand

Commit Message

Wen He Nov. 19, 2019, 2:36 a.m. UTC
From: Yuantian Tang <andy.tang@nxp.com>

Ls1028a has 4 personalities: Ls1028a, Ls1027a, Ls1017a and Ls1018a.
Both Ls1027a and Ls1017a personalities are lower functionality version
which doesn't support the multimedia subsystems, like LCD, GPU.

To disable multimedia feature on non-multimedia version, set the status
property to disabled in dts nodes.

Signed-off-by: Tang Yuantian <andy.tang@nxp.com>
Signed-off-by: Wen He <wen.he_1@nxp.com>
---
 arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

Priyanka Jain Nov. 19, 2019, 6:36 a.m. UTC | #1
>-----Original Message-----
>From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Wen He
>Sent: Tuesday, November 19, 2019 8:07 AM
>To: u-boot@lists.denx.de
>Cc: Andy Tang <andy.tang@nxp.com>
>Subject: [U-Boot] [v4] armv8: ls1028a: disable multimedia feature when not
>supported
>
>From: Yuantian Tang <andy.tang@nxp.com>
>
>Ls1028a has 4 personalities: Ls1028a, Ls1027a, Ls1017a and Ls1018a.
>Both Ls1027a and Ls1017a personalities are lower functionality version which
>doesn't support the multimedia subsystems, like LCD, GPU.
>
>To disable multimedia feature on non-multimedia version, set the status
>property to disabled in dts nodes.
>
>Signed-off-by: Tang Yuantian <andy.tang@nxp.com>
>Signed-off-by: Wen He <wen.he_1@nxp.com>
>---
Please incorporate review comments posted on v2 version of this patch.

-priyankajain
diff mbox series

Patch

diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
index 19917b207a..1de84b9260 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
@@ -401,6 +401,26 @@  void fdt_fixup_remove_jr(void *blob)
 }
 #endif
 
+#ifdef CONFIG_ARCH_LS1028A
+static void fdt_disable_multimedia(void *blob, unsigned int svr)
+{
+	int off;
+
+	if (!((svr >> 10) & 0x1))
+		return;
+
+	/* Disable eDP/LCD node */
+	off = fdt_node_offset_by_compatible(blob, -1, "arm,mali-dp500");
+	if (off != -FDT_ERR_NOTFOUND)
+		fdt_status_disabled(blob, off);
+
+	/* Disable GPU node */
+	off = fdt_node_offset_by_compatible(blob, -1, "fsl,ls1028a-gpu");
+	if (off != -FDT_ERR_NOTFOUND)
+		fdt_status_disabled(blob, off);
+}
+#endif
+
 void ft_cpu_setup(void *blob, bd_t *bd)
 {
 	struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
@@ -462,4 +482,7 @@  void ft_cpu_setup(void *blob, bd_t *bd)
 #ifdef CONFIG_HAS_FEATURE_ENHANCED_MSI
 	fdt_fixup_msi(blob);
 #endif
+#ifdef CONFIG_ARCH_LS1028A
+	fdt_disable_multimedia(blob, svr);
+#endif
 }