On Fri, Feb 21, 2014 at 7:32 AM, One Thousand Gnomes <gnomes@xxxxxxxxxxxxxxxxxxx> wrote: >> I'm suggesting identifying a range of addresses on a bus with a "port" >> (or whatever it should be called). Multiple ports could claim >> non-overlapping ranges on the same bus. > > Which is fine until you meant a mux or a device that can be moved about > by writing to it, or has a wide range of addresses determined by > strapping. For muxes: isn't there already a system in place for dealing with them? For things with addresses determined by strapping: my vague proposal is explicitly intended to support them. (DIMMs are such a device.) Whoever instantiates the i2c "ports" is supposed to *know* the topology, including which straps are set where. In some cases, that data could come from ACPI or DT. In other cases, it's enumerated directly. The idea would be to allow the code that figures out the topology (both physical connectivity and straps) to be separated from the code that talks to the i2c endpoints. Just specifying the address ranges might be insufficient for things that are more flexible than DIMMs, though -- it might be necessary to say "this port has these addresses and this kind of device lives at this address". --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html