On Thu, Mar 15, 2012 at 11:44:16AM -0500, Timur Tabi wrote:
Mark Brown wrote:
The SoC is the bit of silicon with the CPU and other devices on it like the DMA controller and SSI or whatever ports. The card is the PCB this has been soldered down onto.
Well, I asked about the difference between the soc BINDING and the card BINDING. On PowerPC, at least, there's no distinct binding for either. For example, I2C devices are on the PCB, but they're listed as child nodes of the I2C controller, which is on the SoC.
Right, but this is the problem in a nutshell - there's nowhere to put the board binding so the SoC code has to know about and do it.
However, I don't like the way this is being represented as a PowerPC vs. ARM issue, because that's just not correct. It's an "old binding" vs "new binding" issue. For example:
I think that's just creeping in because the old binding is the existing practice on PowerPC.
- /*
* In case of imx, the machine driver uses new binding which does
* not require SSI driver to trigger machine driver's probe, but
* the pcm device needs to be registered here.
*/
- if (ssi_private->ssi_on_imx) {
ssi_private->imx_pcm_pdev =
platform_device_register_simple("imx-pcm-audio",
This prohibits me from using the new binding on any future PowerPC parts, because it clearly says "iMX" on everything.
So long as it's internal to the code (which the above is) I don't think it really matters, the code can be changed later. We need to do something about DMA controllers in general, and there was some recent discussion on the DT list about a generic binding for them, so leaving the code as-is with nothing in the DT itself seems like a good place to leave things initially.