On Thu, 08 Mar 2018, Mark Brown wrote:
On Thu, Mar 08, 2018 at 10:48:31AM +0000, Lee Jones wrote:
On Thu, 08 Mar 2018, Sebastian Reichel wrote:
I had it in PATCHv1-PATCHv4. It was removed, since Mark didn't want to have it in the DT ABI.
Right, but why? Is it not a hardware device? I think converting from devm_of_platform_populate() for one sub-device is a bit drastic.
It's not a separate physical device or IP and doesn't exist outside of the MFD, it's just how Linux is currently choosing to divide up the chip right now but that's totally open to change even in future versions of Linux. Clocks are a big issue with audio stuff, right now sections of the clock tree get handled in the CODEC driver but we're going to want to push them out to a clock driver so we're not reimplementing handling for clocks.
How is the CODEC controlled? Does it have its own registers? I guess by "it's not a separate device or IP" you mean that it doesn't. But that begs the question, how does this then device differ from all the other devices (adc, battery, charger, regulator, rtc, pwrbutton, usb-phy and led)?
I'm asking, not to be awkward, but to avoid 50 lines of potentially unnecessary static code. If this is a real (sub-)device, even if it's part of a larger, single device (MFD) then there is no reason why it can't be represented as a single, albeit empty node.