Adam,

On 04/10/2018 23:55, Adam Ford wrote:
On Thu, Oct 4, 2018 at 8:48 AM Jean-Jacques Hiblot <jjhib...@ti.com> wrote:
This series remove the usage of the DM_I2C_COMPAT option for all the ti
platforms. It also takes this opportunity to not disable DM_I2C in the SPL.
Thanks for doing that, but I have some bad news.  I started testing
omap3_logic from a fresh pull of master, and I applied the entire 19
patch series. I did a distclean, then make omap3_logic, but I am
getting build errors:

drivers/built-in.o: In function `dev_read_alias_seq':
/home/aford/src/u-boot/include/dm/read.h:600: undefined reference to
`fdtdec_get_alias_seq'
scripts/Makefile.spl:357: recipe for target 'spl/u-boot-spl' failed
make[1]: *** [spl/u-boot-spl] Error 1
Makefile:1534: recipe for target 'spl/u-boot-spl' failed
make: *** [spl/u-boot-spl] Error 2

The good news is that the main U-Boot built, and I was able to test a
few of the PMIC features (like poweroff), but I haven't had a chance
to test other PMIC features (like the USB transceiver yet), but I'll
do a more thorough test once SPL can correctly build.
The quick fix is

--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -79,7 +79,7 @@ static int device_bind_common(struct udevice *parent, const struct driver *drv,
                 * This is just a 'requested' sequence, and will be
                 * resolved (and ->seq updated) when the device is probed.
                 */
-               if (CONFIG_IS_ENABLED(OF_CONTROL)) {
+               if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) {
                        if (uc->uc_drv->name && ofnode_valid(node))
                                dev_read_alias_seq(dev, &dev->req_seq);
                } else {

--- a/drivers/core/uclass.c
+++ b/drivers/core/uclass.c
@@ -269,7 +269,7 @@ int uclass_find_device_by_name(enum uclass_id id, const char *name,
        return -ENODEV;
 }

-#if !CONFIG_IS_ENABLED(OF_CONTROL)
+#if !CONFIG_IS_ENABLED(OF_CONTROL) || CONFIG_IS_ENABLED(OF_PLATDATA)
 int uclass_find_next_free_req_seq(enum uclass_id id)
 {
        struct uclass *uc;

It will be part of a v2.
Thanks for catching this.

Can you also try to boot without OF_CONTROL and OF_PLATDATA (basically reverting e3b1aaa4 and  6931ab2f) ?
Thanks,
JJ



adam

There are a couples of issues to fix:
- CMD_EEPROM does not support the DM API. Fixed by removing this option
   when DM_I2C is used without DM_I2C_COMPAT
- i2c_get_chip_for_busnum() does not work when OF_CONTROL is not used
   (as is the case with am33xx SPL).
- The I2C driver do not support DM_I2C without OF_CONTROL.
- Most of the PMIC drivers do not support the I2C DM API.
- Board detection is done prior DM initialization. Fixed by moving it after
   DM is initialized. That move breaks the DRA7 platforms (The fixes for
   that are at the last 5 patches this series)

When all this is taken care of DM_I2C_COMPAT can be removed and DM_I2C
enabled in the SPL.

This has been tested with the following boards:
- am437x SK
- am335x SK
- am335x beaglebone (both DM and non-DM config)
- dra76 evm
- am572 evm
- k2g evm



Andreas Dannenberg (1):
   ti: common: board_detect: Allow DM I2C without CONFIG_DM_I2C_COMPAT

Jean-Jacques Hiblot (17):
   cmd: Kconfig: Do not include EEPROM if DM_I2C is used without
     DM_I2C_COMPAT
   dm: i2c: Add dm_i2c_probe_device() to test the presence of a chip
   dm: device: Allow using uclass_find_device_by_seq() without OF_CONTROL
   configs: am335x: am57x: dra7x: Enable CONFIG_SPL_DM_SEQ_ALIAS
   i2c: omap24xx_i2c: Use platdata to probe the device
   am335x: Register the I2C controllers if DM_I2C is used.
   dts: am43x: omap5: Add node for I2C in SPL
   omap: detect the board after DM is available
   power: make most tps drivers and the twl4030 driver compatible with
     DM_I2C
   configs: am335x_pdu001: Explicitly enable CONFIG_I2C_COMPAT
   ti: remove usage of DM_I2C_COMPAT and don't disable DM_I2C in SPL
   am57xx: remove non-DM I2C code
   configs: dra7xx-evm: increase the size of the malloc's pool before
     relocation
   lib: fdtdec: Add function re-setup the fdt more effeciently
   drivers: core: Add the option SPL_DM_DEVICE_REMOVE to the Kconfig
   drivers: core: nullify gd->dm_root after dm_uninit()
   dra7: Allow selecting a new dtb after board detection.

Vignesh R (1):
   i2c: omap24xx_i2c: Move away from SoC specific headers for reg offset

  arch/arm/dts/am437x-gp-evm-u-boot.dtsi       |   4 +
  arch/arm/dts/omap5-u-boot.dtsi               |   4 +
  arch/arm/include/asm/arch-am33xx/i2c.h       |  47 +--
  arch/arm/include/asm/arch-omap3/i2c.h        |  47 ---
  arch/arm/include/asm/arch-omap4/i2c.h        |  45 ---
  arch/arm/include/asm/arch-omap5/i2c.h        |  45 ---
  arch/arm/include/asm/omap_i2c.h              |  24 ++
  arch/arm/mach-keystone/ddr3_spd.c            |   7 +
  arch/arm/mach-omap2/am33xx/board.c           |  24 +-
  arch/arm/mach-omap2/am33xx/clk_synthesizer.c |  56 +++-
  arch/arm/mach-omap2/clocks-common.c          |   2 +
  arch/arm/mach-omap2/hwinit-common.c          |  23 +-
  board/ti/am335x/board.c                      |  17 +-
  board/ti/am335x/mux.c                        |  14 +
  board/ti/am43xx/board.c                      |  35 +-
  board/ti/am57xx/board.c                      |  25 +-
  board/ti/common/board_detect.c               | 110 +++----
  board/ti/ks2_evm/board_k2g.c                 |  11 +
  cmd/Kconfig                                  |   1 +
  configs/am335x_pdu001_defconfig              |   2 +
  configs/am57xx_evm_defconfig                 |   1 +
  configs/am57xx_hs_evm_defconfig              |   1 +
  configs/dra7xx_evm_defconfig                 |   4 +-
  configs/dra7xx_hs_evm_defconfig              |   1 +
  configs/omap3_logic_defconfig                |   1 +
  drivers/core/Kconfig                         |  12 +-
  drivers/core/device.c                        |  10 +-
  drivers/core/root.c                          |   1 +
  drivers/core/uclass.c                        |  24 ++
  drivers/i2c/i2c-uclass.c                     |   8 +
  drivers/i2c/omap24xx_i2c.c                   | 467 ++++++++++++++++++---------
  drivers/power/palmas.c                       |  39 +++
  drivers/power/pmic/pmic_tps62362.c           |  27 ++
  drivers/power/pmic/pmic_tps65217.c           |  47 ++-
  drivers/power/pmic/pmic_tps65218.c           |  88 +++++
  drivers/power/pmic/pmic_tps65910.c           |  60 +++-
  drivers/power/twl4030.c                      |  39 +++
  include/asm-generic/global_data.h            |   4 +
  include/configs/am43xx_evm.h                 |   2 +
  include/configs/ti_armv7_common.h            |  18 +-
  include/dm/uclass-internal.h                 |  13 +
  include/fdtdec.h                             |  17 +
  include/i2c.h                                |  13 +
  include/palmas.h                             |   5 +
  include/power/tps65217.h                     |   2 +
  include/power/tps65910.h                     |   1 +
  include/twl4030.h                            |   6 +-
  lib/fdtdec.c                                 |  38 ++-
  48 files changed, 1033 insertions(+), 459 deletions(-)
  create mode 100644 arch/arm/include/asm/omap_i2c.h

--
2.7.4


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to