On Mon, Aug 24, 2015 at 04:08:31PM -0400, Alex Deucher wrote:
On Fri, Aug 21, 2015 at 12:17 PM, Mark Brown broonie@kernel.org wrote:
What I'm looking for is actual code sharing where we use the same code for the I2S controller block or a clear and documented understanding of why it is not possible to share things.
Maruthi can clarify further, but it's not possible to use the designware driver directly because:
- The i2s registers are within the same MMIO aperture as our other
GPU registers. Our GPU driver is designed in such a way that the specific IP modules don't have direct access to the MMIO aperture. They use functions provided by the core driver to access registers. Thus the ACP IP module within the GPU driver does not have direct access to the mmio base pointer in order to pass it on.
Please explain this in more detail, shared register ranges are very common and are the sort of things MFDs are supposed to help with.
- The designware driver depends on the CLKDEV framework which we
don't currently support.
You need to support the clock API, it's very easy to do so so there is no excuse for doing something custom here.
- Our hardware does not support S16_LE
If you have modified the designware IP to remove this support (why would anyone do that?) it's a trivial quirk, if the restriction comes from some other part of the system like the DMA driver then the constraint will come from that part of the system.