[alsa-devel] [PATCH v2 2/6] ASoC: samsung: Add Samsung Low Power Audio Subsystem driver

Sylwester Nawrocki s.nawrocki at samsung.com
Fri Jul 1 18:31:33 CEST 2016


On 07/01/2016 05:07 PM, Mark Brown wrote:
> On Thu, Jun 30, 2016 at 07:16:46PM +0200, Sylwester Nawrocki wrote:
> 
>> > Sorry, I didn't notice this e-mail earlier.  With previous Exynos versions
>> > the LPASS (or AudioSS) was mainly about the embedded audio DSP processor
>> > (at least WRT to SFRs), which was not required for boards supported in 
>> > the mainline kernel. Since e.g. Exynos5433 the LPASS SFR region contains 
>> > also entries related to other IP blocks, like I2S or DMAC.  Even though 
>> > functionality covered by these registers is still rather trivial, like 
>> > SW resets and unmasking interrupts, it's essential for the whole audio 
>> > subsystem operation. The intention was to have in future the LPASS driver 
>> > covering any functionality provided by the embedded audio dedicated MCU.
>> > I'm afraid we have to handle those power sequences in central place to
>> > ensure proper SoC operation. I would also rather avoid adding any exynos 
>> > quirks to the PL330 DMAC driver.
>
> Hrm.  This is sounding a bit like a combination of a power domain and
> an interrupt controller, would something like that fit in perhaps?
> Depends on how many of these trivial bits there are I think...

To me LPASS is somehow similar to the camera subsystem, it's a container/
manager for all the audio related sub-IP blocks.  The LPASS (top) SFR 
region contains bits for resetting sub-blocks like: DMAC, SRAM, TIMER, WDT,
I2S, UART.  It also contains mask and status bits of interrupts from those
IP blocks to the CPU or the embedded MCU (CA5). An (incomplete) list of 
registers can be seen at [1]. There are also entries for software triggered
interrupts to the CPU/MCU, for the MCU reset vector control and general 
purpose register for CPU/MCU communication.

In the SoC there is a dedicated power domain for the whole audio subsystem 
and LPASS also contains a VIC itself. We could try to decompose the LPASS 
top block into various subsystems but I seriously doubt it's a good way
forward. I think LPASS should rather be some top level SoC platform entity.

[1] https://goo.gl/JiYbaZ


More information about the Alsa-devel mailing list