Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ff9e291 authored by Dmitry Shmidt's avatar Dmitry Shmidt Committed by Amit Pundir
Browse files

ANDROID: fiq_debugger: Add option to apply uart overlay by FIQ_DEBUGGER_UART_OVERLAY



fiq_debugger is taking over uart, so it is necessary to disable
original uart in DT file. It can be done manually or by overlay.

Change-Id: I9f50ec15b0e22e602d73b9f745fc8666f8925d09
Signed-off-by: default avatarDmitry Shmidt <dimitrysh@google.com>
parent 9c027e6c
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -42,6 +42,15 @@ config FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE
	  If enabled, this puts the fiq debugger into console mode by default.
	  Otherwise, the fiq debugger will start out in debug mode.

config FIQ_DEBUGGER_UART_OVERLAY
	bool "Install uart DT overlay"
	depends on FIQ_DEBUGGER
	select OF_OVERLAY
	default n
	help
	  If enabled, fiq debugger is calling fiq_debugger_uart_overlay()
	  that will apply overlay uart_overlay@0 to disable proper uart.

config FIQ_WATCHDOG
	bool
	select FIQ_DEBUGGER
+30 −0
Original line number Diff line number Diff line
@@ -39,6 +39,10 @@
#include <asm/fiq_glue.h>
#endif

#ifdef CONFIG_FIQ_DEBUGGER_UART_OVERLAY
#include <linux/of.h>
#endif

#include <linux/uaccess.h>

#include "fiq_debugger.h"
@@ -1201,10 +1205,36 @@ static struct platform_driver fiq_debugger_driver = {
	},
};

#if defined(CONFIG_FIQ_DEBUGGER_UART_OVERLAY)
int fiq_debugger_uart_overlay(void)
{
	struct device_node *onp = of_find_node_by_path("/uart_overlay@0");
	int ret;

	if (!onp) {
		pr_err("serial_debugger: uart overlay not found\n");
		return -ENODEV;
	}

	ret = of_overlay_create(onp);
	if (ret < 0) {
		pr_err("serial_debugger: fail to create overlay: %d\n", ret);
		of_node_put(onp);
		return ret;
	}

	pr_info("serial_debugger: uart overlay applied\n");
	return 0;
}
#endif

static int __init fiq_debugger_init(void)
{
#if defined(CONFIG_FIQ_DEBUGGER_CONSOLE)
	fiq_debugger_tty_init();
#endif
#if defined(CONFIG_FIQ_DEBUGGER_UART_OVERLAY)
	fiq_debugger_uart_overlay();
#endif
	return platform_driver_register(&fiq_debugger_driver);
}