Re: [DT Question] "simple-mfd" DT binding

From: Lee Jones
Date: Tue May 23 2017 - 03:05:58 EST


On Tue, 23 May 2017, Masahiro Yamada wrote:

> Hi Lee, Linus,
>
> Thanks for your comments!
>
> 2017-05-22 17:43 GMT+09:00 Linus Walleij <linus.walleij@xxxxxxxxxx>:
> > On Mon, May 22, 2017 at 3:29 AM, Masahiro Yamada
> > <yamada.masahiro@xxxxxxxxxxxxx> wrote:
> >
> >> Because "simple-bus" indicates that child nodes are
> >> simply memory mapped, but the node "register-bit-led"
> >> can not be memory-mapped.
> >> So, "simple-mfd" can not be replaced "simple-bus" here.
> >
> > Yeah... just like Lee points out, you are spot on, this is exactly
> > the reason why we created "simple-mfd" in the first place
> > IIRC.
>
> OK, Linux treats simple-bus and simple-mfd in the same way
> as far as I see drivers/of/platform.c

Correct. As I said, the functionality of the two are the same. The
difference is their meaning. Initially we were using "simple-mfd" to
achieve our aim (see below), but there was push-back due to the
differences in what the two properties were trying to achieve. Ergo,
we introduced a second property.

> Perhaps, can we document the difference between simple-bus and
> simple-mfd clearly?
> For example, "Unlike simple-bus, it is legitimate that simple-mfd has
> subnodes without reg property"
>
>
> I think this is typical when "simple-mfd" is used together with "syscon".
> The child devices will use regmap of the parent node.
> I'd like to be sure this is valid usage.

"simple-mfd" simply means "register all of my child nodes using the
platform API without any further intervention". It's goal is to
prevent the MFD subsystem from being stuffed full of drivers where
their only purpose is to call of_platform_populate(). All other rules
and policy which must be followed are generic DT ones. To that end, I
do not believe making further statements is necessary.

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog