diff options
author | Beomho Seo <beomho.seo@samsung.com> | 2018-12-21 15:32:28 +0100 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2019-01-03 09:32:42 +0100 |
commit | 3f2d347e851ef4464dea49504cde85e5eef67b2d (patch) | |
tree | 96bd29e9aae3ef81ac7c6ef7f2b51193ec50ddd4 /drivers/mfd/exynos-lpass.c | |
parent | mfd: mc13xxx: Fix a missing check of a register-read failure (diff) | |
download | linux-3f2d347e851ef4464dea49504cde85e5eef67b2d.tar.xz linux-3f2d347e851ef4464dea49504cde85e5eef67b2d.zip |
mfd: exynos-lpass: Enable UART module support
This patch enables proper interrupts routing between UART module
in Exynos Audio SubSystem and the rest of the SoC. This routing is
completely transparent for UART device and CPU/GIC. UART driver requests
interrupts from the respective controller and enables/masks/handles it
by itself via standard methods.
There are boards (for example TM2), which use UART module in Exynos Audio
SubStem for communication with BlueTooth chip.
Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
[mszyprow: rephrased commit message, added UART reset]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/exynos-lpass.c')
-rw-r--r-- | drivers/mfd/exynos-lpass.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mfd/exynos-lpass.c b/drivers/mfd/exynos-lpass.c index ca829f85672f..2713de989f05 100644 --- a/drivers/mfd/exynos-lpass.c +++ b/drivers/mfd/exynos-lpass.c @@ -82,11 +82,13 @@ static void exynos_lpass_enable(struct exynos_lpass *lpass) LPASS_INTR_SFR | LPASS_INTR_DMA | LPASS_INTR_I2S); regmap_write(lpass->top, SFR_LPASS_INTR_CPU_MASK, - LPASS_INTR_SFR | LPASS_INTR_DMA | LPASS_INTR_I2S); + LPASS_INTR_SFR | LPASS_INTR_DMA | LPASS_INTR_I2S | + LPASS_INTR_UART); exynos_lpass_core_sw_reset(lpass, LPASS_I2S_SW_RESET); exynos_lpass_core_sw_reset(lpass, LPASS_DMA_SW_RESET); exynos_lpass_core_sw_reset(lpass, LPASS_MEM_SW_RESET); + exynos_lpass_core_sw_reset(lpass, LPASS_UART_SW_RESET); } static void exynos_lpass_disable(struct exynos_lpass *lpass) |