Hi, Is there any further comments? Or this patch will be applied?
Regards, Peng. -----Original Message----- From: s...@google.com [mailto:s...@google.com] On Behalf Of Simon Glass Sent: Wednesday, May 06, 2015 4:56 AM To: Fan Peng-B51431 Cc: Stefano Babic; Heiko Schocher; Marek VaĊĦut; Nikita Kiryanov; U-Boot Mailing List Subject: Re: [PATCH V3] i2c: mxc: refactor i2c driver and support dm On 27 April 2015 at 07:36, Peng Fan <peng....@freescale.com> wrote: > > 1. Introduce a new structure `struct mxc_i2c_bus`, this structure will > used for non-DM and DM. > 2. Remove `struct mxc_i2c_regs` structure, but use register offset to access > registers based on `base` entry of `struct mxc_i2c_bus`. > 3. Remove most `#ifdef I2C_QUIRK_REG`. Using driver_data to contain platform > flags. A new flag is introduced, I2C_QUIRK_FLAG. > 4. Most functions use `struct mxc_i2c_bus` as one of the parameters. > Make most functions common to DM and non-DM, try to avoid duplicated code. > 5. Support DM. Pinmux setting is still set by setup_i2c, but we do not > need bus_i2c_init for DM. > 6. struct i2c_parms and struct sram_data are removed. > 7. Remove bus_i2c_read bus_i2c_write prototype in header file. The frist > paramter of bus_i2c_init is modified to i2c index. Add new prototype > i2c_idle_bus and force_idle_bus. Since bus_i2c_init is not good for > DM I2C and pinctrl is missed, we use a weak function for i2c_idle_bus > for DM part. > Board file take the responsibility to implement this function, like this: > " > int i2c_idle_bus(struct mxc_i2c_bus *i2c_bus) > { > if (i2c_bus->index == 0) > force_idle_bus(i2c_pads_info0); > else if (i2c_bus->index == 1) > force_idle_bus(i2c_pads_info1); > else > xxxxxx > } > " > > Signed-off-by: Peng Fan <peng....@freescale.com> > --- > > Changes v3: > 1. remove bus_i2c_init for DM, introuduce a weak function i2c_idle_bus. > 2. remove static return type for force_idle_bus, since we need to call > it in i2c_idle_bus which may be implemented in board file. This does > not hurt for non-DM. Acked-by: Simon Glass <s...@chromium.org> > > Changes v2: > 1. Refactor driver, remove register access based on structure, but use > 'base + offset' > 2. Introduce mxc_i2c_bus structure > 3. Introduce I2C_QUIRK_FLAG and remove most I2C_QUIRK_REG and use > driver_data to contain the flags for different platforms 4. Avoid > duplicated code between DM and non-DM part 5. The function name > i2c_init_transfer is not changed. > 6. Remove bus_i2c_read/write prototype from header file 7. change > bus_i2c_init's first parameter to i2c index 8. Rename patch name, > since refactor non-DM part. > > arch/arm/imx-common/i2c-mxv7.c | 7 +- > arch/arm/include/asm/imx-common/mxc_i2c.h | 38 +- > drivers/i2c/mxc_i2c.c | 575 > ++++++++++++++++++++---------- > 3 files changed, 426 insertions(+), 194 deletions(-) > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot