I normally don't accept MFDs with just one device enabled. Since it'sYes, that is the plan, we are kind of limited in hardware setup to test few+static const struct mfd_cell wcd9335_devices[] = {Are there more devices to come?
+ { .name = "wcd9335-codec", },
+};
things like soundwire controller. We are exploring other ways to test these.
not really an MFD (M == Multi) until it has more than one function.
[...]Its catch-22 situation, without device being powered up and reset correctly there is no way to enumerate it.
ifc is a horrible variable name - just sayin'.ifc was suggested in dt bindings by Rob, I can proably rename to+ struct device_node *ifc_dev_np;ifc isn't very forthcoming. Any way you can improve the name?
interface_node.
[...]
Right, I understand what's happening. I just think the semantics aredevice status reports the device status at runtime. We can not communicate+ ret = wcd9335_bring_up(wcd);So the device_status call-back brings up the hardware?
with the device until it is up, enumerated by slimbus and a logical address
is assigned to it. So the best place to initialize it is in status callback
where all the above are expected to be done.
wrong. The Subsystem (I'm assuming it's a Subsystem) requests for
status and it ends up initiating a start-up sequence. Just from a
purist's point of view (I understand that it "works"), it's not good
practice.
Probe is expected to setup the external configurations like regulators/pinsI suggest fully starting the device in probe() is a better approach.
and so on which gets the device out of reset and ready to be enumerated by
the slimbus controller.
[...]This is represented as proper irq line in dt via pintrl irq controller.
I don't see how this is used, so it's difficult for me to adviseThis is a hardware pin name for interrupt line 1.+struct wcd9335 {What's this? If I have to ask, it's probably not a good name.
+ int version;
+ int intr1;
fully, but I find this confusing. Pin name/number? Shouldn't this be
handed by Pinctrl?
intr1 could be quite ambiguous. Especually as the '1' could easily be
read as an 'l'. Suggest that 'irq1' or 'irq_1' or 'irq_one'.
-- Lee Jones [æçæ] Linaro Services Technical Lead Linaro.org â Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog