Subject: Re: I2C mux and device tree

From: Felix Radensky <[email-masked]>
Date: Tue, 28 Oct 2008 00:33:30 +0200

Hi, Scott

Scott Wood wrote:
> [added linuxppc-dev for a wider audience]
>
> Felix Radensky wrote:
>> I run linux-2.6.26 on custom 460EX based board.
>> This platform has PCA9548 I2C mux on I2C bus 0.
>> I was wondering how can I describe the mux itself
>> and devices behind it (e.g RTC and temperature sensors)
>> in the device tree.
>
> Describe it as a node that is both an i2c client and an i2c controller.
>
> The Sun i2c binding says that i2c devices should have two reg cells, 
> the first being the bus number within the controller, and the second 
> being a shifted-left-by-one i2c bus address (as opposed to the 
> one-cell non-shifted address we currently use, because the Sun binding 
> wasn't known to us at the time).
>
> We could extend of_register_i2c_devices to understand two-cell 
> addresses, and call it once for each sub-bus with the bus number as a 
> parameter.
>
That would be nice.
I have everything working now, using platform data and 
i2c_register_board_info() in board setup
code. But it would be great to have everything defined in device tree.
>> If this is impossible at the moment, what other means
>> exist to work with devices behind the mux ? I have
>> found the pca954x patch and related virtual i2c patch
>> and was able to integrate them intro my kernel.
>
> You'll have to update it to be a new-style i2c device, unless there's 
> a newer version floating around that what a quick google search turned 
> up.
>
The latest version uses new-style i2c device, see
http://www.mail-archive.com/i2c%40lm-sensors.org/msg01538.html

Unfortunately it was not accepted.
> -Scott
>
> _______________________________________________
> Linuxppc-embedded mailing list
> [email-masked]
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded