[U-Boot] [PATCH 00/12] PMIC/REGULATOR cleanup and Sandbox tests

Simon Glass
2015-05-10T13:56:26Z

Hi Przemyslaw,

On 8 May 2015 at 10:20, Przemyslaw Marczak <p.marczak@samsung.com> wrote:
> Hello!
> This patchset cleanups the POWER framework V4, which is applied into
> u-boot-dm/next tree.
>
> The main changes:
> - pmic/regulator uclasses cleanup - each commit message describes
> the changes in details.
> - added sandbox PMIC emulated device support, which consists of three
> drivers: pmic I2C emul, pmic I/O and regulator.
> - PMIC/REGULATOR tests for sandbox in: tests/dm/power.c
>
> I tried to add the implementation of all pmic/regulator operations for the
> sandbox PMIC device - I hope that the drivers are not too complicated.
>
> The tests for sandbox includes every pmic/regulator function call, so for now
> the tests should well cover the framework features.
>
> The patchset is rebased on the top of u-boot-dm/next, and can be fetched from
> here: https://github.com/bobenstein/u-boot.git
> branch: dm-pmic-v4-sandbox
>
> Best regards,
> Przemyslaw Marczak

This looks great, thank you. I pushed the current state to u-boot-dm/working.

I have a small bisectability problem though:

buildman -b dm-next samsung -se
boards.cfg is up to date. Nothing to do.
Summary of 29 commits for 16 boards (16 threads, 2 jobs per thread)
01: dm: sf: Update default name of spi flash in structure udevice
02: exynos5: fix build break by adding CONFIG_POWER
03: exynos4-common: remove the unsued CONFIG_CMD_PMIC
04: lib: Kconfig: add entry for errno_str() function
05: dm: pmic: add implementation of driver model pmic uclass
06: dm: regulator: add implementation of driver model regulator uclass
07: dm: pmic: add pmic command
08: dm: regulator: add regulator command
09: pmic: max77686 set the same compatible as in the kernel
10: dm: pmic: add max77686 pmic driver
11: dm: regulator: add max77686 regulator driver
12: dm: regulator: add fixed voltage regulator driver
13: doc: driver-model: pmic and regulator uclass documentation
14: dm: board:samsung: power_init_board: add requirement of CONFIG_DM_PMIC
15: odroid: board: add support to dm pmic api
arm: + odroid
+board/samsung/odroid/built-in.o: In function `s5pc210_phy_control':
+build/../board/samsung/odroid/odroid.c:444: undefined reference to
`regulator_by_platname'
+build/../board/samsung/odroid/odroid.c:453: undefined reference to
`regulator_set_mode'
+board/samsung/odroid/built-in.o: In function `exynos_power_init':
+build/../board/samsung/odroid/odroid.c:432: undefined reference to
`regulator_by_platname_list_autoset_and_enable'
+board/samsung/odroid/built-in.o: In function `board_usb_init':
+build/../board/samsung/odroid/odroid.c:490: undefined reference to
`regulator_by_platname'
+build/../board/samsung/odroid/odroid.c:496: undefined reference to
`regulator_set_enable'
+build/../board/samsung/odroid/odroid.c:502: undefined reference to
`regulator_set_value'
+build/../board/samsung/odroid/odroid.c:508: undefined reference to
`regulator_set_value'
+arm-linux-gnueabihf-ld.bfd: BFD (crosstool-NG
linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 2.23.1
assertion fail /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-2.23.1/bfd/elf32-arm.c:7677
+arm-linux-gnueabihf-ld.bfd: error: required section '.rel.plt' not
found in the linker script
+arm-linux-gnueabihf-ld.bfd: final link failed: Invalid operation
+make[1]: *** [u-boot] Error 1
+make: *** [sub-make] Error 2
16: odroid: dts: add 'voltage-regulators' description to max77686 node
17: odroid: config: enable dm pmic, dm regulator and max77686 driver
arm: odroid
-board/samsung/odroid/built-in.o: In function `s5pc210_phy_control':
-build/../board/samsung/odroid/odroid.c:444: undefined reference to
`regulator_by_platname'
-build/../board/samsung/odroid/odroid.c:453: undefined reference to
`regulator_set_mode'
-board/samsung/odroid/built-in.o: In function `exynos_power_init':
-build/../board/samsung/odroid/odroid.c:432: undefined reference to
`regulator_by_platname_list_autoset_and_enable'
-board/samsung/odroid/built-in.o: In function `board_usb_init':
-build/../board/samsung/odroid/odroid.c:490: undefined reference to
`regulator_by_platname'
-build/../board/samsung/odroid/odroid.c:496: undefined reference to
`regulator_set_enable'
-build/../board/samsung/odroid/odroid.c:502: undefined reference to
`regulator_set_value'
-build/../board/samsung/odroid/odroid.c:508: undefined reference to
`regulator_set_value'
-arm-linux-gnueabihf-ld.bfd: BFD (crosstool-NG
linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 2.23.1
assertion fail /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-2.23.1/bfd/elf32-arm.c:7677
-arm-linux-gnueabihf-ld.bfd: error: required section '.rel.plt' not
found in the linker script
-arm-linux-gnueabihf-ld.bfd: final link failed: Invalid operation
-make[1]: *** [u-boot] Error 1
-make: *** [sub-make] Error 2
18: dm: pmic: code cleanup of PMIC uclass driver
arm: + odroid
+../drivers/power/pmic/max77686.c: At top level:
+drivers/power/pmic/built-in.o: In function `max77686_bind':
+build/../drivers/power/pmic/max77686.c:62: undefined reference to
`pmic_bind_childs'
+arm-linux-gnueabihf-ld.bfd: BFD (crosstool-NG
linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 2.23.1
assertion fail /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-2.23.1/bfd/elf32-arm.c:7677
+arm-linux-gnueabihf-ld.bfd: error: required section '.rel.plt' not
found in the linker script
+arm-linux-gnueabihf-ld.bfd: final link failed: Invalid operation
+make[1]: *** [u-boot] Error 1
+make: *** [sub-make] Error 2
w+../drivers/power/pmic/max77686.c: In function ?max77686_bind?:
w+../drivers/power/pmic/max77686.c:62:2: warning: implicit declaration
of function ?pmic_bind_childs? [-Wimplicit-function-declaration]
w+../drivers/power/pmic/max77686.c:71:2: warning: initialization makes
pointer from integer without a cast [enabled by default]
w+../drivers/power/pmic/max77686.c:71:2: warning: (near initialization
for ?max77686_ops.reg_count?) [enabled by default]
19: dm: pmic: max77686: update driver code
arm: odroid
-../drivers/power/pmic/max77686.c: At top level:
-drivers/power/pmic/built-in.o: In function `max77686_bind':
-build/../drivers/power/pmic/max77686.c:62: undefined reference to
`pmic_bind_childs'
-arm-linux-gnueabihf-ld.bfd: BFD (crosstool-NG
linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 2.23.1
assertion fail /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-2.23.1/bfd/elf32-arm.c:7677
-arm-linux-gnueabihf-ld.bfd: error: required section '.rel.plt' not
found in the linker script
-arm-linux-gnueabihf-ld.bfd: final link failed: Invalid operation
-make[1]: *** [u-boot] Error 1
-make: *** [sub-make] Error 2
w-../drivers/power/pmic/max77686.c: In function ?max77686_bind?:
w-../drivers/power/pmic/max77686.c:62:2: warning: implicit declaration
of function ?pmic_bind_childs? [-Wimplicit-function-declaration]
w-../drivers/power/pmic/max77686.c:71:2: warning: initialization makes
pointer from integer without a cast [enabled by default]
w-../drivers/power/pmic/max77686.c:71:2: warning: (near initialization
for ?max77686_ops.reg_count?) [enabled by default]
20: dm: regulator: uclass driver code cleanup
arm: + odroid
+In file included from ../board/samsung/odroid/odroid.c:17:0:
+../include/power/regulator.h:356:5: note: expected ?struct udevice
**? but argument is of type ?int?
+../board/samsung/odroid/odroid.c:432:2: error: too many arguments to
function ?regulator_list_autoset?
+../include/power/regulator.h:356:5: note: declared here
+make[2]: *** [board/samsung/odroid/odroid.o] Error 1
+make[1]: *** [board/samsung/odroid] Error 2
+make: *** [sub-make] Error 2
w+../board/samsung/odroid/odroid.c: In function ?exynos_power_init?:
w+../board/samsung/odroid/odroid.c:432:2: warning: passing argument 2
of ?regulator_list_autoset? makes pointer from integer without a cast
[enabled by default]
w+../board/samsung/odroid/odroid.c: In function ?s5pc210_phy_control?:
w+../board/samsung/odroid/odroid.c:444:2: warning: implicit
declaration of function ?regulator_by_platname?
[-Wimplicit-function-declaration]
21: odroid u3: cleanup the regulator calls
arm: odroid
-In file included from ../board/samsung/odroid/odroid.c:17:0:
-../include/power/regulator.h:356:5: note: expected ?struct udevice
**? but argument is of type ?int?
-../board/samsung/odroid/odroid.c:432:2: error: too many arguments to
function ?regulator_list_autoset?
-../include/power/regulator.h:356:5: note: declared here
-make[2]: *** [board/samsung/odroid/odroid.o] Error 1
-make[1]: *** [board/samsung/odroid] Error 2
-make: *** [sub-make] Error 2
w-../board/samsung/odroid/odroid.c: In function ?exynos_power_init?:
w-../board/samsung/odroid/odroid.c:432:2: warning: passing argument 2
of ?regulator_list_autoset? makes pointer from integer without a cast
[enabled by default]
w-../board/samsung/odroid/odroid.c: In function ?s5pc210_phy_control?:
w-../board/samsung/odroid/odroid.c:444:2: warning: implicit
declaration of function ?regulator_by_platname?
[-Wimplicit-function-declaration]
22: common: cmd pmic: command cleanup
23: common: cmd regulator: command cleanup
24: doc: driver-model: pmic-framework.txt - cleanup
25: sandbox: i2c: search child emul dev and check its uclass id
26: sandbox: add: sandbox PMIC device drivers: I2C emul, pmic, regulator
27: test: dm: dts: add sandbox pmic i2c node
28: sandbox: defconfig: enable support of sandbox PMIC drivers
29: test: dm: add sandbox PMIC framework tests

Can you please take a look?

>
> Przemyslaw Marczak (12):
> dm: pmic: code cleanup of PMIC uclass driver
> dm: pmic: max77686: update driver code
> dm: regulator: uclass driver code cleanup
> odroid u3: cleanup the regulator calls
> common: cmd pmic: command cleanup
> common: cmd regulator: command cleanup
> doc: driver-model: pmic-framework.txt - cleanup
> sandbox: i2c: search child emul dev and check its uclass id
> sandbox: add: sandbox PMIC device drivers: I2C emul, pmic, regulator
> test: dm: dts: add sandbox pmic i2c node
> sandbox: defconfig: enable support of sandbox PMIC drivers
> test: dm: add sandbox PMIC framework tests
>
> board/samsung/odroid/odroid.c | 9 +-
> common/cmd_pmic.c | 131 ++++-----
> common/cmd_regulator.c | 239 ++++++++--------
> configs/sandbox_defconfig | 7 +
> doc/device-tree-bindings/pmic/sandbox.txt | 35 +++
> doc/device-tree-bindings/regulator/sandbox.txt | 45 +++
> doc/driver-model/pmic-framework.txt | 20 +-
> drivers/i2c/sandbox_i2c.c | 20 +-
> drivers/power/pmic/Kconfig | 27 +-
> drivers/power/pmic/Makefile | 3 +-
> drivers/power/pmic/i2c_pmic_emul.c | 145 ++++++++++
> drivers/power/pmic/max77686.c | 15 +-
> drivers/power/pmic/pmic-uclass.c | 25 +-
> drivers/power/pmic/sandbox.c | 79 ++++++
> drivers/power/regulator/Kconfig | 32 ++-
> drivers/power/regulator/Makefile | 1 +
> drivers/power/regulator/regulator-uclass.c | 104 ++++---
> drivers/power/regulator/sandbox.c | 355 +++++++++++++++++++++++
> include/power/pmic.h | 39 +--
> include/power/regulator.h | 116 ++++----
> include/power/sandbox_pmic.h | 222 +++++++++++++++
> test/dm/Makefile | 2 +
> test/dm/power.c | 371 +++++++++++++++++++++++++
> test/dm/test.dts | 38 +++
> 24 files changed, 1732 insertions(+), 348 deletions(-)
> create mode 100644 doc/device-tree-bindings/pmic/sandbox.txt
> create mode 100644 doc/device-tree-bindings/regulator/sandbox.txt
> create mode 100644 drivers/power/pmic/i2c_pmic_emul.c
> create mode 100644 drivers/power/pmic/sandbox.c
> create mode 100644 drivers/power/regulator/sandbox.c
> create mode 100644 include/power/sandbox_pmic.h
> create mode 100644 test/dm/power.c
>
> --
> 1.9.1
>

Regards,
Simon