Re: [PATCH v2 2/4] dt-bindings: add bus number property
From: Paweł Anikiel <hidden>
Date: 2021-10-06 08:29:22
Also in:
linux-arm-kernel, linux-i2c, lkml
From: Paweł Anikiel <hidden>
Date: 2021-10-06 08:29:22
Also in:
linux-arm-kernel, linux-i2c, lkml
On Tue, Oct 5, 2021 at 6:28 PM Alexandre Belloni [off-list ref] wrote:
On 05/10/2021 18:22:12+0200, Arnd Bergmann wrote:quoted
On Tue, Oct 5, 2021 at 4:37 PM Paweł Anikiel [off-list ref] wrote:quoted
On SoCFPGA systems, it's desireable to have fixed numbering for i2c busses, while being able to enable/disable them (e.g. have i2c1 be mapped to /dev/i2c-1, even though i2c0 is disabled). This can also be achieved using devicetree aliases (see i2c_add_adapter). However, having the driver be self-contained without relying on aliases is more robust. Signed-off-by: Paweł Anikiel <redacted>I don't see how adding a nonstandard property in one of the i2c bus drivers helps at all. How do you expect this to work when there are multiple i2c controllers in the system using different drivers? What should happen if both an alias and the busno property are set?What happens when two nodes have the same busno property because e.g. one is in a dtsi and the other one is in a dts?
If busno is set, the alias is ignored (the code that checks aliases
is never reached). If two nodes have the same busno property, we get
a WARN in drivers/i2c/i2c-core-base.c:1637, and only on of them
gets attached.
What is a better way of doing this then? Is adding aliases to the
devicetree like this okay?
aliases {
...
i2c0 = &i2c0;
i2c1 = &i2c1;
};