diff mbox series

[1/4] mfd: exynos-lpass: Enable UART module support

Message ID 20181214113410.22848-2-m.szyprowski@samsung.com (mailing list archive)
State Not Applicable
Headers show
Series Samsung TM2(e): add Bluetooth support (resend) | expand

Commit Message

Marek Szyprowski Dec. 14, 2018, 11:34 a.m. UTC
From: Beomho Seo <beomho.seo@samsung.com>

This patch enables support for UART module in Exynos Audio SubSystem.
There are boards (for example TM2), which use it 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>
---
 drivers/mfd/exynos-lpass.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Lee Jones Dec. 21, 2018, 10:13 a.m. UTC | #1
On Fri, 14 Dec 2018, Marek Szyprowski wrote:

> From: Beomho Seo <beomho.seo@samsung.com>
> 
> This patch enables support for UART module in Exynos Audio SubSystem.
> There are boards (for example TM2), which use it for communication with
> bluetooth chip.

Does it though?  Or does it enable the interrupt and reset something?
These calls would probably benefit from some documentation by way of
comments.

> 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>
> ---
>  drivers/mfd/exynos-lpass.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> 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)
Marek Szyprowski Dec. 21, 2018, 10:27 a.m. UTC | #2
Hi

On 2018-12-21 11:13, Lee Jones wrote:
> On Fri, 14 Dec 2018, Marek Szyprowski wrote:
>
>> From: Beomho Seo <beomho.seo@samsung.com>
>>
>> This patch enables support for UART module in Exynos Audio SubSystem.
>> There are boards (for example TM2), which use it for communication with
>> bluetooth chip.
> Does it though?  Or does it enable the interrupt and reset something?
> These calls would probably benefit from some documentation by way of
> comments.

It only enables routing interrupts out of LPASS HW module. This is
completely transparent for the rest of the system (UART and CPU/GIC).
UART driver will get them via standard ARM/GIC interrupt controller and
UART driver will enable/mask/handle it by itself via standard methods.

>> 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>
>> ---
>>  drivers/mfd/exynos-lpass.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> 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)

Best regards
Lee Jones Dec. 21, 2018, 10:39 a.m. UTC | #3
On Fri, 21 Dec 2018, Marek Szyprowski wrote:

> Hi
> 
> On 2018-12-21 11:13, Lee Jones wrote:
> > On Fri, 14 Dec 2018, Marek Szyprowski wrote:
> >
> >> From: Beomho Seo <beomho.seo@samsung.com>
> >>
> >> This patch enables support for UART module in Exynos Audio SubSystem.
> >> There are boards (for example TM2), which use it for communication with
> >> bluetooth chip.
> > Does it though?  Or does it enable the interrupt and reset something?
> > These calls would probably benefit from some documentation by way of
> > comments.
> 
> It only enables routing interrupts out of LPASS HW module. This is
> completely transparent for the rest of the system (UART and CPU/GIC).
> UART driver will get them via standard ARM/GIC interrupt controller and
> UART driver will enable/mask/handle it by itself via standard methods.

Sounds fine.  But that is not what the commit message says.

> >> 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>
> >> ---
> >>  drivers/mfd/exynos-lpass.c | 4 +++-
> >>  1 file changed, 3 insertions(+), 1 deletion(-)
> >>
> >> 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)
> 
> Best regards
diff mbox series

Patch

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)