From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Fri, 24 Oct 2014 11:03:01 -0400 Subject: [U-Boot] [RFC PATCH 0/12] RFC: dm: Add I2C support In-Reply-To: <1413178778-30846-1-git-send-email-sjg@chromium.org> References: <1413178778-30846-1-git-send-email-sjg@chromium.org> Message-ID: <20141024150301.GU25506@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Sun, Oct 12, 2014 at 11:39:26PM -0600, Simon Glass wrote: > (Note this is RFC since the uclass interface needs discussion and also > because only sandbox is implemented so far. But I thought it best to get > this out there as soon as I wrote it as it may influence the PMIC library, > etc.) > > This series is an initial attempt to add I2C support to driver model. It > has become apparent that this is a high priority as it is widely used. It > follows along to some extent from the SPI conversion. > > Several changes are made from the original I2C implementations. > > Firstly It is not necessary to specify the chip address with every call, > since each chip knows its own address - it is stored in struct dm_i2c_chip > which is attached to each chip on the I2C bus. However, this information > *is* passed to the driver since I presume most drivers need it and it would > be cumbersome to look up in every call. > > Secondly there is no concept of a 'current' I2C bus so all associated logic > is removed. With driver model i2c_set_bus_num() and i2c_get_bus_num() are > not available. Since the chip device specifies both the bus and the chip > address, there is no need for this concept. It also causes problems when > one driver changes the current bus and forgets to change it back. > > Thirdly initialisation is handled by driver model's normal probe() method > on each device so there should be no need for i2c_init_all(), i2c_init(), > i2c_init_board(), i2c_board_late_init() and board_i2c_init(). > > I2C muxes are not yet supported. To support these we will need to maintain > state of the current mux settings to avoid resetting every mux every time. > Probably we need to add a sandbox I2C mux driver to permit testing of this. > This can probably be done later. > > Platform data is not yet supported either, only device tree. The > U_BOOT_I2C_MKENT_COMPLETE() and U_BOOT_I2C_ADAP_COMPLETE() macros are not > used. Also struct i2c_adapter is not defined anymore. This will need to be > addressed, perhaps as part of converting over a board that does not use > device tree. > > This series is available at u-boot-dm/i2c-working. Nothing jumped out at me. Heiko? -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: