From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC PATCH 0/12] RFC: dm: Add I2C support
Date: Mon, 10 Nov 2014 08:16:58 +0100 [thread overview]
Message-ID: <5460666A.60706@denx.de> (raw)
In-Reply-To: <1413178778-30846-1-git-send-email-sjg@chromium.org>
Hello Simon,
sorry for the long delay...
Am 13.10.2014 07:39, schrieb Simon Glass:
> (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().
Great!
> 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.
Currently only the keymile boards really use i2c muxes, so I am fine
with doing this in a second step.
> 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.
Ok for this in the first step... The question raised if we only would
support Device tree with DM ... so maybe we do not need to do this step.
I am not really sure, if we should really support Device Tree only with
DM, because:
- do all archs switch to Device Tree in the near future?
- in SPL we have really on some SoCs small memory (like I just work
on some AT91 boards which have 4k only!) To get DM with Device
Tree into 4k is a big challenge ... so in my opinion, it would be
good to have the possibility of Platform data ... so we prevent
to make dirty hacks for the SPL case (I hope) ...
> This series is available at u-boot-dm/i2c-working.
Thanks for your great work.
I looked through your patchset and have no real objection against it ...
To the "i2c deblocking" subject ... we should add at least the
"deblock()" in "struct dm_i2c_ops" and call it "do_i2c_reset"
if defined ... beside of this, you can add my
Acked-by: Heiko Schocher <hs@denx.de>
to the hole series.
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:[~2014-11-10 7:16 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-13 5:39 [U-Boot] [RFC PATCH 0/12] RFC: dm: Add I2C support Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 01/12] dm: core: Allow access to the device's driver_id data Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 02/12] dm: core: Add functions to find parent and OF data Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 03/12] dm: i2c: Add a uclass for I2C Simon Glass
2014-11-10 6:33 ` Heiko Schocher
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 04/12] dm: i2c: Implement driver model support in the i2c command Simon Glass
2014-11-10 7:01 ` Heiko Schocher
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 05/12] dm: i2c: Add I2C emulation driver for sandbox Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 06/12] dm: i2c: Add a sandbox I2C driver Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 07/12] dm: i2c: Add an I2C EEPROM simulator Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 08/12] dm: i2c: config: Enable I2C for sandbox using driver model Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 09/12] dm: i2c: dts: Add an I2C bus for sandbox Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 10/12] dm: WIP: EEPROM driver Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 11/12] dm: i2c: Add tests for I2C Simon Glass
2014-10-13 5:39 ` [U-Boot] [RFC PATCH 12/12] dm: i2c: tegra: Convert to driver model for I2C for seaboard Simon Glass
2014-10-24 15:03 ` [U-Boot] [RFC PATCH 0/12] RFC: dm: Add I2C support Tom Rini
2014-10-29 7:31 ` Heiko Schocher
2014-11-10 7:16 ` Heiko Schocher [this message]
2014-11-11 15:44 ` Simon Glass
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=5460666A.60706@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox