Re: I2C and devicetrees

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/1/2013 9:56 AM, Thomas De Schampheleire wrote:
> Hi,
> 
> On Tue, Feb 12, 2013 at 5:34 PM, Gerlando Falauto
> <gerlando.falauto@xxxxxxxxxxx> wrote:
>> Hi everyone,
>>
>> I have a similar question.
>> I'd like to "name" i2c devices so that a userspace application can somehow
>> identify those devices with the same function across different boards (which
>> may have different addresses or be connected to a different i2c bus, or be a
>> physically different chip).
>>
>> For instance "hwmon" devices get instantiated within sysfs under
>> /sys/class/hwmon/hwmonX
>>
>> # cat /sys/class/hwmon/hwmon0/device/name
>> lm75
>>
>> which I would like to be identified by the name "switch" (as in "switch
>> temperature"). I was thinking about instantiating it as something like
>> "lm75:switch" within i2c_board_info.type. For device-tree-less
>> architectures, a trivial change within i2c_match_id() so to ignore the part
>> following ":" seems to do the trick. Don't know about devicetree but I guess
>> a similar approach could be imagined.
>>
>> Another example would be given by EEPROMs: all boards are equipped with an
>> EEPROM containing inventory management, which I would like to identify as
>> "ivm". So something like "24c08:ivm".
>> After all, I'd like to be able to achive something like "named MTD
>> partitions" which you can identify by looking at "/proc/mtd".
>>
>> Maybe some other symbol could be used instead of ":", but anyhow, does the
>> above make any sense at all to you?
>>
> 
> I have exactly the same request: I would like to put logical names in
> the device tree for various devices (i2c, spi, ...) which are in some
> way easily retrievable from a userspace application.
> The purpose seems to be the same as Gerlando's: different boards have
> different physical configuration but logically each has the same set
> of devices.
> 
> How can one achieve that?

Unless I am misunderstanding your request, that is what the /aliases
node is intended for.  Each property name in /aliases is a logical name,
and the value refers to the corresponding device node.

I'm not sure about all the different ways that Linux exports information
in /aliases to userspace.  I do know that, in the case of some i2c,
serial, and ethernet devices, aliases like:

  serial1 = &uart1;

cause the assignment of small-integer unit numbers to specific device
instances.  That "serial<N>" pattern is somewhat of a Linux-specific
special case.  In general, the Open Firmware standard just says that
/aliases maps logical names to longer strings  representing fuller
pathnames, without imposing any structure (e.g. serial<N>) on the
logical names.

> 
> Thanks,
> Thomas
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss@xxxxxxxxxxxxxxxx
> https://lists.ozlabs.org/listinfo/devicetree-discuss
> 
--
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


[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux