Hello Simon,

On 05/10/2015 03:56 PM, Simon Glass wrote:
Hi Przemyslaw,

On 8 May 2015 at 10:20, Przemyslaw Marczak <p.marc...@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?


Ok, will check this.


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


Best regards,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marc...@samsung.com
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to