[U-Boot] [PATCH v1 00/19] DM_I2C_COMPAT removal for all ti platforms
Jean-Jacques Hiblot
jjhiblot at ti.com
Fri Oct 5 08:55:05 UTC 2018
Adam,
On 04/10/2018 23:55, Adam Ford wrote:
> On Thu, Oct 4, 2018 at 8:48 AM Jean-Jacques Hiblot <jjhiblot at 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
>>
More information about the U-Boot
mailing list