From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] 7/12 Multiadapter/multibus I2C, drivers part 4
Date: Fri, 20 Feb 2009 09:53:02 +0100 [thread overview]
Message-ID: <499E6F6E.70305@denx.de> (raw)
In-Reply-To: <Pine.LNX.4.64ksi.0902191406290.19156@home-gw.koi8.net>
Hello ksi,
ksi at koi8.net wrote:
> On Thu, 19 Feb 2009, Wolfgang Denk wrote:
>
>> Dear ksi at koi8.net,
>>
>> In message <Pine.LNX.4.64ksi.0902191141090.18501@home-gw.koi8.net> you wrote:
[...]
>>> That means you'll have to rewrite the entire U-Boot. 99% of the boards have
>>> only one bus so they did not switch busses. That means they never called
>>> that i2c_set_bus_num() relying on i2c_init() in libxxx/board.c instead.
>> I cannot follow your argument.
>>
>> Yes, the status quo is as you describe, it relies on i2c_init() and
>> is simple-minded and does not support an arbitry number of
>> arbitrarily complex I2C bus trees and multiplexors and expanders and
>> what else. But it was sufficient for the first 10 years and 500
>> boards of U-Boot development.
>>
>> Now we are discussion a major redesign, so what is the big problem of
>> changing this part? "rewrite the entire U-Boot"? Please stay serious.
>> Compared to the other changes you suggest, this is not that big a
>> part.
>
> No, my changes are limited. Look, somebody must initialize an adapter. As
> for now it is done with a single i2c_init() usually in libxxx/board.c. Then
> the entire code assumes adapter is already initialized and just issues
> i2c_read/write() as it see fits. 99% of this code is written on assumption
> that there is only one I2C bus so it doesn't use i2c_set_bus_num() or
> whatever, it just fires up i2c_read() and that's it.
>
> This would perfectly work with my changes without modifying that code -- the
> only bus is bus number 0 so there is nothing wrong with not setting the bus
> for each I2C access; it is already at that only bus.
>
> Now, if we have adapter initialization moved to i2c_set_bus() all that code
> will cease to work because i2c_set_bus() is never called thus adapter will
> never be initialized and all those i2c_read() and friends will fail.
But you can call i2c_set_bus_num instead of i2c_init in lib_xxx/board.c
and all old boards will work as they did. Ok, we didn;t can get rid of
initializing bus 0, but with moving init() in i2c_set_bus_num, we only
init additional hardwareadapters only, if we need them.
> That means that we should read through each and every board's code to find
> where i2c functions are used and add i2c_set_bus() calls as needed. That is
> not INSTEAD of that big rewrite, that is _IN ADDITION_ to it. That is a very
> sizeable chunk of additional changes.
No, we have not to do this. See above. And if some board use multibus,
yes they have to do a i2c_set_bus_num before they access the i2c bus,
because they must know on which bus they have to read, and the actual
bus could be changed.
> I DID think of adding adapter initialization to i2c_set_bus() initially but
> then it turned out it generated more problems than it solved (and it solved
> none) so I dropped that idea.
Please tell us the problems, so we can think of it, maybe I overlook something.
Thats the reason why we discuss this here.
bye
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
next prev parent reply other threads:[~2009-02-20 8:53 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-13 10:17 [U-Boot] [PATCH] 7/12 Multiadapter/multibus I2C, drivers part 4 Heiko Schocher
2009-02-13 21:23 ` ksi at koi8.net
2009-02-14 8:24 ` Heiko Schocher
2009-02-15 5:03 ` ksi at koi8.net
2009-02-15 7:56 ` Heiko Schocher
2009-02-16 6:35 ` ksi at koi8.net
2009-02-16 9:03 ` Heiko Schocher
2009-02-16 22:17 ` Wolfgang Denk
2009-02-17 21:23 ` ksi at koi8.net
2009-02-16 22:16 ` Wolfgang Denk
2009-02-17 21:22 ` ksi at koi8.net
2009-02-18 7:23 ` Heiko Schocher
2009-02-16 22:11 ` Wolfgang Denk
2009-02-17 21:19 ` ksi at koi8.net
2009-02-17 22:49 ` Wolfgang Denk
2009-02-17 23:42 ` ksi at koi8.net
2009-02-18 0:13 ` Wolfgang Denk
2009-02-18 0:35 ` ksi at koi8.net
2009-02-18 7:47 ` Heiko Schocher
2009-02-18 18:05 ` ksi at koi8.net
2009-02-18 18:26 ` Wolfgang Denk
2009-02-18 19:47 ` ksi at koi8.net
2009-02-18 22:09 ` Wolfgang Denk
2009-02-18 23:00 ` ksi at koi8.net
2009-02-18 23:31 ` Wolfgang Denk
2009-02-19 0:46 ` ksi at koi8.net
2009-02-19 8:00 ` Heiko Schocher
2009-02-19 19:48 ` ksi at koi8.net
2009-02-19 20:50 ` Wolfgang Denk
2009-02-19 22:26 ` ksi at koi8.net
2009-02-20 8:53 ` Heiko Schocher [this message]
2009-02-20 7:08 ` Heiko Schocher
2009-02-20 7:06 ` Heiko Schocher
2009-02-18 7:33 ` Heiko Schocher
2009-02-18 8:06 ` Wolfgang Denk
2009-02-18 8:15 ` Heiko Schocher
2009-02-18 8:55 ` Wolfgang Denk
2009-02-18 18:58 ` ksi at koi8.net
2009-02-18 18:51 ` ksi at koi8.net
2009-02-18 17:44 ` ksi at koi8.net
2009-02-19 6:10 ` Heiko Schocher
2009-02-19 14:46 ` ksi at koi8.net
2009-02-19 15:06 ` Heiko Schocher
2009-02-19 19:52 ` ksi at koi8.net
2009-02-19 20:55 ` Wolfgang Denk
2009-02-19 22:33 ` ksi at koi8.net
2009-02-20 7:09 ` Heiko Schocher
2009-02-18 7:20 ` Heiko Schocher
2009-02-18 18:48 ` ksi at koi8.net
2009-02-19 6:31 ` Heiko Schocher
2009-02-19 19:35 ` ksi at koi8.net
2009-02-19 21:22 ` Wolfgang Denk
2009-02-20 0:13 ` ksi at koi8.net
2009-02-20 7:01 ` Heiko Schocher
2009-02-20 21:29 ` ksi at koi8.net
2009-02-21 7:25 ` Heiko Schocher
2009-02-21 18:19 ` ksi at koi8.net
2009-02-18 8:17 ` Heiko Schocher
2009-02-18 8:58 ` Heiko Schocher
2009-02-18 18:57 ` ksi at koi8.net
2009-02-18 21:56 ` Wolfgang Denk
2009-02-18 22:32 ` ksi at koi8.net
2009-02-18 22:48 ` Wolfgang Denk
2009-02-19 0:35 ` ksi at koi8.net
2009-02-19 8:04 ` Heiko Schocher
2009-02-19 21:29 ` Wolfgang Denk
2009-02-19 7:39 ` Heiko Schocher
2009-02-19 19:40 ` ksi at koi8.net
2009-02-19 6:42 ` Heiko Schocher
2009-02-18 18:53 ` ksi at koi8.net
2009-02-19 6:34 ` Heiko Schocher
2009-02-19 19:36 ` ksi at koi8.net
-- strict thread matches above, loose matches on Subject: below --
2009-02-12 22:25 ksi at koi8.net
2009-02-16 21:58 ` Wolfgang Denk
2009-02-17 20:02 ` ksi at koi8.net
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=499E6F6E.70305@denx.de \
--to=hs@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.