Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

Linus Walleij
2015-05-21T07:19:08Z

On Wed, May 20, 2015 at 4:52 PM, Thierry Reding
<thierry.reding@gmail.com> wrote:

> I'm a little confused by the simple-mfd approach. The only code I see in
> linux-next for this is a single line that adds the "simple-mfd" string
> to the OF device ID table in drivers/of/platform.c. As far as I can tell
> this will merely cause child devices to be created. There won't be a
> shared regmap and resources won't be set up properly either.

That is correct. The simple-mfd is a two-component approach.

Ideally, in the simplest case, you combine simple-mfd with syscon.

foo@0 {
compatible = "foo", "syscon", "simple-mfd";
reg = <0x10000000 0x1000>;

bar@1 {
compatible = "bar";
};

baz@2 {
compatible = "baz";
};
};

This will instantiate bar and baz.

These subdrivers then probe and:

probe() {
struct regmap *map;

map = syscon_node_to_regmap(parent->of_node);
(...)
}

Simple, syscon is the MFD hub.

Yours,
Linus Walleij