soc: qcom: Add support to enable eud if enabled in xbl

If eud driver is enabled in xbl, there was a explicit need
to enable eud from hlos side also. This change enables eud
if eud_mode_manager2 register is set.

Change-Id: I4f99d2fddb36f196514296302c67b75e73545632
Signed-off-by: Komal Bajaj <kbajaj@codeaurora.org>
This commit is contained in:
Komal Bajaj
2020-05-28 11:03:51 +05:30
committed by Gerrit - the friendly Code Review server
parent a80a92ab40
commit 85b5da7b1c

View File

@@ -92,6 +92,14 @@ static int enable;
static bool eud_ready;
static struct platform_device *eud_private;
static int check_eud_mode_mgr2(struct eud_chip *chip)
{
u32 val;
val = scm_io_read(chip->eud_mode_mgr2_phys_base);
return val & BIT(0);
}
static void enable_eud(struct platform_device *pdev)
{
struct eud_chip *priv = platform_get_drvdata(pdev);
@@ -105,7 +113,7 @@ static void enable_eud(struct platform_device *pdev)
priv->eud_reg_base + EUD_REG_INT1_EN_MASK);
/* Enable secure eud if supported */
if (priv->secure_eud_en) {
if (priv->secure_eud_en && !check_eud_mode_mgr2(priv)) {
ret = scm_io_write(priv->eud_mode_mgr2_phys_base +
EUD_REG_EUD_EN2, EUD_ENABLE_CMD);
if (ret)
@@ -629,6 +637,9 @@ static int msm_eud_probe(struct platform_device *pdev)
}
}
if (chip->secure_eud_en && check_eud_mode_mgr2(chip))
enable = 1;
ret = uart_add_one_port(&eud_uart_driver, port);
if (!ret) {
dev_err(chip->dev, "failed to add uart port!\n");