On Wed, May 27, 2020 at 01:30:39PM +0200, Wolfram Sang wrote: > It is useful to know if we are the only master on a given bus. Because > this is a HW description of the bus, add it to the generic bindings. > > Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> > Cc: Laine Jaakko EXT <ext-jaakko.laine@xxxxxxxxxxx> > --- > > We added 'multi-master' back then because most busses are single-master > and 'multi-master' was the exception. In hindsight, however, this was a > bad choice because 'multi-master' should be the default, i.e. if you > know nothing, you should assume there could be another master. > > So, we can't deduce that a missing 'multi-master' property automatically > means 'single-master'. That's why we need this new property. > > I am a bit tempted to mark 'multi-master' as deprecated because the > default should be multi-master. However, it might also be a bit more > descriptive to let "no property" still mean "we don't know". I'd be > thankful for more opinions here. Could you just have different timeouts for clearing stalled bus. You know quickly if 'single-master' is set, but have to wait longer if not? Note that we need to add a bunch of these properties to dt-schema i2c-controller.yaml. I hadn't done that because I want to dual license in the process, but lots of folks have touched i2c.txt IIRC. Reviewed-by: Rob Herring <robh@xxxxxxxxxx> > Thanks and happy hacking, > > Wolfram > > Documentation/devicetree/bindings/i2c/i2c.txt | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/i2c/i2c.txt b/Documentation/devicetree/bindings/i2c/i2c.txt > index 819436b48fae..438ae123107e 100644 > --- a/Documentation/devicetree/bindings/i2c/i2c.txt > +++ b/Documentation/devicetree/bindings/i2c/i2c.txt > @@ -70,7 +70,12 @@ wants to support one of the below features, it should adapt these bindings. > - multi-master > states that there is another master active on this bus. The OS can use > this information to adapt power management to keep the arbitration awake > - all the time, for example. > + all the time, for example. Can not be combined with 'single-master'. > + > +- single-master > + states that there is no other master active on this bus. The OS can use > + this information to detect a stalled bus more reliably, for example. > + Can not be combined with 'multi-master'. > > Required properties (per child device) > -------------------------------------- > -- > 2.20.1 >