On Fri, Oct 23, 2015 at 07:11:56PM -0500, Andrew F. Davis wrote:
On 10/23/2015 06:18 PM, Mark Brown wrote:
mt6397 doesn't do this, it doesn't have a compatible string at all (it's
doing what I'm recommending that you do). The SPMI devices are
standalone devices, their parent device is actually functioning as a bus
controller here (it's really a microcontroller inside the SoC). The
Palmas is part of how we realised this was a problem.
mt6397: Documentation/devicetree/bindings/mfd/mt6397.txt
Doing exactly what I'm doing,
Tbe binding document is buggy and doesn't reflect the code, there's no
compatible string in the driver.
The Palmas is a great example of why this is a good idea, there are
so many spins on this common base, and look how we can re-use sub-nodes:
There's no real reuse here, we have to have a table in both the MFD and
regulator listing every variant.
Remember that the only reason the user
is having to type most of those subnodes at all is that we pushed things
into the DT, if someone forgot to include one of the nodes in their
board DT then they won't be able to use the relevant feature even if
it's there.
The fact that the SoC DT is not distinct from the board DT is actually
one of the problems with the way we're using DT at the minute, it means
that DTBs are much less stable than they should be since we can enhance
support for SoCs but DTBs need regenerating to take advantage of it. It
would be much better if the boards just referenced the SoC they use and
pulled in a separate definition of the SoC (DT overlays will make it
much more tractable to implement that if someone has time...).
I figured this can already be done by keeping the SoC stuff in dtsi files?
That doesn't help with the above issue, include files get processed at
the time the binary is generated.
Well I have to match the sub-devices on something, it's ether the node name
or the compatible string, so they might have to get used to typing :)
No, that's not the case - remember, users don't have to write a new
driver every time they instantiate a device on a board. They're going
to have to list the in-use regulators one way or another but if we have
the extra compatible for regulators they have to bind both the core
device (which is going to be required anyway due to the control bus) and
the subnode saying that it has regulators (which we knew anyway as soon
as we knew we had the core device).