On 05/10/2018 18:53, Adam Ford wrote:
On Fri, Oct 5, 2018 at 11:45 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.
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.
I was planning on running some tests this afternoon. IIRC, the
PLATDATA was required in SPL on omap3_logic because the OF code didn't
fit into the limited space. I was also going to see if that's
changed. Ideally, I'd like to lose the PLATDATA flag as well, but it's
been a few releases, and GCC is newer now, so things may have changed.
:-)
Once I've run those build tests on omap3_logic and am3517_evm, I'll
run some additional tests on the TWL4030 to see if the reset of the
features work (like USB tranceiver), and I'll report back my findings.
If you've got it building, then I have a much better shot.
Thanks for testing.
You shouldn't need either SPL_OF_CONTROL or SPL_OF_PLATDATA: the dtb
produced for the SPL of omap3_logic_defconfig is empty
You can check with: dtc -I dtb -O dts spl/u-boot-spl.dtb
JJ
adam
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: 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: 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 | 14 +
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 +
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 +++
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 | 17 +
include/i2c.h | 13 +
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 | 38 ++-
52 files changed, 1081 insertions(+), 472 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