On Fri, 15 May 2009 20:05:58 +0100, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
OTOH, I want to keep arch code as is. There are some TXx9 SoC variations and they can have different baseaddr/irq/dma. I want to leave these details in arch code and make ASoC drivers generic as possible.
This is the common situation for SoC CPUs - most silicon vendors reuse the same IPs in diffierent combinations on different CPUs. The normal approach is to have the generic code for each SoC set up the resources for the devices that are present on that particular SoC. This avoids the need for each board using the SoC to have to replicate the information.
Yes, and I tried to do so in "TXx9: Add ACLC support" patch.
arch/mips/include/asm/txx9/generic.h | 5 ++++ arch/mips/include/asm/txx9/tx4927.h | 2 + arch/mips/include/asm/txx9/tx4938.h | 1 + arch/mips/include/asm/txx9/tx4939.h | 1 + arch/mips/txx9/Kconfig | 3 ++ arch/mips/txx9/generic/setup.c | 36 +++++++++++++++++++++++++++ arch/mips/txx9/generic/setup_tx4927.c | 43 +++++++++++++++++++++++++++++++++ arch/mips/txx9/generic/setup_tx4938.c | 11 ++++++++ arch/mips/txx9/generic/setup_tx4939.c | 9 +++++++
These are "the generic code for each SoC set up the resources for the devices that are present on that particular SoC".
arch/mips/txx9/rbtx4927/setup.c | 7 ++++- arch/mips/txx9/rbtx4938/setup.c | 1 + arch/mips/txx9/rbtx4939/setup.c | 1 +
And these are setup codes for each boards.
Is this acceptable? I'm not sure whether you are saying Ack or Nack for this approach.
--- Atsushi Nemoto