On Mon, 21 Dec 2020, Dmitry Baryshkov wrote: > Hello, > > On Mon, 21 Dec 2020 at 12:02, Lee Jones <lee.jones@xxxxxxxxxx> wrote: > > > > On Sun, 20 Dec 2020, Dmitry Baryshkov wrote: > > > > > Qualcomm QCA639x is a family of WiFi + Bluetooth SoCs, with BT part > > > being controlled through the UART and WiFi being present on PCIe > > > bus. Both blocks share common power sources. So add mfd device driver > > > handling power sequencing of QCA6390/1. > > > > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > > > --- > > > drivers/mfd/Kconfig | 12 +++ > > > drivers/mfd/Makefile | 1 + > > > drivers/mfd/qcom-qca639x.c | 168 +++++++++++++++++++++++++++++++++++++ > > > 3 files changed, 181 insertions(+) > > > create mode 100644 drivers/mfd/qcom-qca639x.c > > > > This is not an MFD, since it utilised neither the MFD API nor > > of_platform_populate() to register child devices. > > It would use them if the WiFi part was not on a discoverable bus. This is a can of worms that I do not wish to open right now. However the TL;DR is: MFD is currently only *meant* for non-discoverable platform devices. > > Suggest you use drivers/power or similar to handle shared power > > sequencing requirements. > > What about drivers/soc/qcom? Or drivers/misc? These are 2 other subsystems, just like MFD, which are commonly used as dumping grounds for code which doesn't fit anywhere else. However, I implore you to please try to find a suitable subsystem for this to fit into first. If this driver only deals with power management, place it is a power related subsystem *before* considering drivers/soc or drivers/misc. -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog