mbox series

[U-Boot,RESEND,v3,00/19] DM_I2C_COMPAT removal for all ti platforms

Message ID 1544190655-4405-1-git-send-email-jjhiblot@ti.com
Headers show
Series DM_I2C_COMPAT removal for all ti platforms | expand

Message

Jean-Jacques Hiblot Dec. 7, 2018, 1:50 p.m. UTC
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.

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

The following targets may be impacted by the changes related to
SPL_OF_CONTROL and SPL_OF_PLATDATA:
- am3517_evm_defconfig
- omap3_logic_defconfig
- chromebit_mickey_defconfig
- chromebook_jerry_defconfig
- chromebook_minnie_defconfig
- evb-rk3399_defconfig
- rock_defconfig

It would be nice it some of you could try to boot them.


Changes in v3:
- removed commit introducing dm_i2c_probe_device(). Instead probe the
  presence of the chip on the I2C bus in i2c_get_chip_for_busnum().
- fdtdec_resetup() need not call fdtdec_setup() when only a single DTB is
  used.
- Add documentation in README-fdt-control explaining why and how to use
  fdtdec_resetup()

Changes in v2:
- Add missing commit log to the commit disabling CMD_EEPROM when non-DM API
  is not available
- don't use the DT to find the req_seq number if SPL_OF_PLATDATA is used.
  Instead do it as if SPL_OF_CONTROL is not defined.
- Also add DM_I2C support to the twl6030 driver
- remove the remaining non-DM I2C API call for pdu001 board.
- Fixed warning in power_init_board() for the am43xx ti boards.

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: Make i2c_get_chip_for_busnum() fail if the chip is not
    detected
  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: remove CONFIG_DM_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/eets/pdu001/board.c                    |   1 -
 board/ti/am335x/board.c                      |  17 +-
 board/ti/am335x/mux.c                        |  11 +
 board/ti/am43xx/board.c                      |  46 ++-
 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              |   1 +
 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 +
 doc/README.fdt-control                       |  18 ++
 drivers/core/Kconfig                         |  12 +-
 drivers/core/device.c                        |  10 +-
 drivers/core/root.c                          |   1 +
 drivers/core/uclass.c                        |  24 ++
 drivers/i2c/i2c-uclass.c                     |  11 +
 drivers/i2c/omap24xx_i2c.c                   | 467 ++++++++++++++++++---------
 drivers/power/palmas.c                       |  39 +++
 drivers/power/pmic/pmic_tps62362.c           |  24 ++
 drivers/power/pmic/pmic_tps65217.c           |  44 ++-
 drivers/power/pmic/pmic_tps65218.c           |  85 +++++
 drivers/power/pmic/pmic_tps65910.c           |  57 +++-
 drivers/power/twl4030.c                      |  39 +++
 drivers/power/twl6030.c                      |  39 +++
 include/asm-generic/global_data.h            |   4 +
 include/configs/am43xx_evm.h                 |   2 +
 include/configs/pdu001.h                     |   6 -
 include/configs/ti_armv7_common.h            |  18 +-
 include/dm/uclass-internal.h                 |  13 +
 include/fdtdec.h                             |  21 ++
 include/palmas.h                             |   5 +
 include/power/tps65217.h                     |   2 +
 include/power/tps65910.h                     |   1 +
 include/twl4030.h                            |   6 +-
 include/twl6030.h                            |   5 +
 lib/fdtdec.c                                 |  43 ++-
 52 files changed, 1083 insertions(+), 472 deletions(-)
 create mode 100644 arch/arm/include/asm/omap_i2c.h

Comments

Tom Rini Dec. 7, 2018, 2:23 p.m. UTC | #1
On Fri, Dec 07, 2018 at 02:50:36PM +0100, Jean-Jacques Hiblot 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.
> 
> 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
> 
> The following targets may be impacted by the changes related to
> SPL_OF_CONTROL and SPL_OF_PLATDATA:
> - am3517_evm_defconfig
> - omap3_logic_defconfig
> - chromebit_mickey_defconfig
> - chromebook_jerry_defconfig
> - chromebook_minnie_defconfig
> - evb-rk3399_defconfig
> - rock_defconfig
> 
> It would be nice it some of you could try to boot them.

So I've just reviewed-by all of the TI parts.  Heiko, do you want this
via the I2C tree?  Simon, do you want this via the DM tree?  Do both of
you just want me to grab it instead?  The window on applying this for
this release is closing quickly but this has been around for long enough
that I'd like to see it go in.  Thanks!
Simon Glass Dec. 11, 2018, 1:05 a.m. UTC | #2
Hi Tom,

On Fri, 7 Dec 2018 at 07:23, Tom Rini <trini@konsulko.com> wrote:
>
> On Fri, Dec 07, 2018 at 02:50:36PM +0100, Jean-Jacques Hiblot 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.
> >
> > 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
> >
> > The following targets may be impacted by the changes related to
> > SPL_OF_CONTROL and SPL_OF_PLATDATA:
> > - am3517_evm_defconfig
> > - omap3_logic_defconfig
> > - chromebit_mickey_defconfig
> > - chromebook_jerry_defconfig
> > - chromebook_minnie_defconfig
> > - evb-rk3399_defconfig
> > - rock_defconfig
> >
> > It would be nice it some of you could try to boot them.
>
> So I've just reviewed-by all of the TI parts.  Heiko, do you want this
> via the I2C tree?  Simon, do you want this via the DM tree?  Do both of
> you just want me to grab it instead?  The window on applying this for
> this release is closing quickly but this has been around for long enough
> that I'd like to see it go in.  Thanks!

Agreed. I am happy to take it, or you can. Please let me know.

Regards,
Simon
Heiko Schocher Dec. 11, 2018, 4:13 a.m. UTC | #3
Hello Simon,

Am 11.12.2018 um 02:05 schrieb Simon Glass:
> Hi Tom,
> 
> On Fri, 7 Dec 2018 at 07:23, Tom Rini <trini@konsulko.com> wrote:
>>
>> On Fri, Dec 07, 2018 at 02:50:36PM +0100, Jean-Jacques Hiblot 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.
>>>
>>> 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
>>>
>>> The following targets may be impacted by the changes related to
>>> SPL_OF_CONTROL and SPL_OF_PLATDATA:
>>> - am3517_evm_defconfig
>>> - omap3_logic_defconfig
>>> - chromebit_mickey_defconfig
>>> - chromebook_jerry_defconfig
>>> - chromebook_minnie_defconfig
>>> - evb-rk3399_defconfig
>>> - rock_defconfig
>>>
>>> It would be nice it some of you could try to boot them.
>>
>> So I've just reviewed-by all of the TI parts.  Heiko, do you want this
>> via the I2C tree?  Simon, do you want this via the DM tree?  Do both of
>> you just want me to grab it instead?  The window on applying this for
>> this release is closing quickly but this has been around for long enough
>> that I'd like to see it go in.  Thanks!
> 
> Agreed. I am happy to take it, or you can. Please let me know.

I just tooked them and send a pull request to Tom, see:

https://lists.denx.de/pipermail/u-boot/2018-December/351388.html

and Tom apllied it already:

https://lists.denx.de/pipermail/u-boot/2018-December/351431.html

Stephen found a regression, see:
https://lists.denx.de/pipermail/u-boot/2018-December/351480.html

I am not in front of my PC today, so I have to look, may Jean-Jacques
has time to look into?

bye,
Heiko