From mboxrd@z Thu Jan 1 00:00:00 1970 From: Przemyslaw Marczak Date: Tue, 03 Mar 2015 17:30:29 +0100 Subject: [U-Boot] [PATCH v2 00/12] Power(full) framework based on Driver Model In-Reply-To: <1425399883-14053-1-git-send-email-p.marczak@samsung.com> References: <1412801335-1591-1-git-send-email-p.marczak@samsung.com> <1425399883-14053-1-git-send-email-p.marczak@samsung.com> Message-ID: <54F5E1A5.5010101@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello, On 03/03/2015 05:24 PM, Przemyslaw Marczak wrote: > Hello, > Here is the second RFC version of the new PMIC framework. > The changes made in this version are described below each commit. > > So again, a quick summary of: > Framework: > - Add new uclass types: > -- UCLASS_PMIC(for device I/O) > -- UCLASS_PMIC_REGULATOR (for common regulator ops) > - Two uclass drivers for the above types > - A common regulator operations - will easy cover the real devices design > - V2: pmic: add read/write ops > - V2: regulator: use regulator type as an argument - not as function name > > > Drivers: > - Introduce new PMIC API for drivers - now everything base on "struct udevice" > - Introduce Regulator Voltage descriptors and Operation Mode descriptors > which are usually taken from the device tree (board dependent data) > - Two uclass device drivers for MAX77686(PMIC+REGULATOR) > - V2: don't use the 'hw union' from old pmic > - V2: remove the files: pmic_i2c.c/pmic_spi.c - now using bus drivers > - V2: cleanup the pmic_get() functions > - V2: add pmic_io_dev() function for getting the proper I/O dev for devices > - V2: add function calls for getting pmic devices platdata > - V2: remove regulator type from regulator operations function calls, > use type as an argument > > User Interface: > - command pmic, unchanged functionality and ported to the driver model > - command regulator(NEW) for safe regulator setup from commandline, > - now can check output Voltage and operation mode of the regulators, > - also can check the board Voltage limits and driver available modes > - V2: simplify the code after remove the regulator type from function naming > - V2: add on/off command > > Supported boards: > - Odroid U3 > - V2: drop the commits for Trats2 - wait for charger and muic uclass types > > The assumptions of this work is: > - Add new code to independent files > - Keep two Frameworks as independent and without conflicts > - Don't mix OLD/NEW Framework code - for the readability > > The future plans: > - Add additional uclass types: MUIC, CHARGER, BATTERY, MFD and maybe more. > - Port all U-Boot drivers to the new Framework > - Remove the old drivers and the old PMIC Framework code > > Need help: > - After merge this, it is welcome to help with driver porting > - Every new driver should be tested on real hardware > > Best regards > > Przemyslaw Marczak (12): > exynos5: fix build break by adding CONFIG_POWER > dm: device: add function device_get_first_child_by_uclass_id() > dm: pmic: add implementation of driver model pmic uclass > dm: pmic: add implementation of driver model regulator uclass > dm: pmic: new commands: pmic and regulator > dm: pmic: add max77686 pmic driver > dm: regulator: add max77686 regulator driver > doc: driver-model: pmic and regulator uclass documentation > dm: board:samsung: power_init_board: add requirement of CONFIG_DM_PMIC > odroid: board: add support to dm pmic api > odroid: dts: add 'voltage-regulators' description to max77686 node > odroid: config: enable dm pmic, dm regulator and max77686 driver > > Makefile | 1 + > arch/arm/dts/exynos4412-odroid.dts | 249 ++++++++- > board/samsung/common/board.c | 4 +- > board/samsung/common/misc.c | 1 + > board/samsung/odroid/odroid.c | 52 +- > configs/odroid_defconfig | 1 - > doc/driver-model/dm-pmic-framework.txt | 367 +++++++++++++ > drivers/core/device.c | 15 + > drivers/power/Makefile | 5 +- > drivers/power/cmd_pmic.c | 820 +++++++++++++++++++++++++++++ > drivers/power/pmic-uclass.c | 191 +++++++ > drivers/power/pmic/Makefile | 1 + > drivers/power/pmic/max77686.c | 102 ++++ > drivers/power/pmic/pmic_max77686.c | 2 +- > drivers/power/regulator-uclass.c | 227 ++++++++ > drivers/power/regulator/Makefile | 8 + > drivers/power/regulator/max77686.c | 926 +++++++++++++++++++++++++++++++++ > include/configs/exynos5-common.h | 4 + > include/configs/odroid.h | 9 +- > include/dm/device.h | 16 + > include/dm/uclass-id.h | 4 + > include/power/max77686_pmic.h | 26 +- > include/power/pmic.h | 265 ++++++++++ > include/power/regulator.h | 310 +++++++++++ > 24 files changed, 3573 insertions(+), 33 deletions(-) > create mode 100644 doc/driver-model/dm-pmic-framework.txt > create mode 100644 drivers/power/cmd_pmic.c > create mode 100644 drivers/power/pmic-uclass.c > create mode 100644 drivers/power/pmic/max77686.c > create mode 100644 drivers/power/regulator-uclass.c > create mode 100644 drivers/power/regulator/Makefile > create mode 100644 drivers/power/regulator/max77686.c > create mode 100644 include/power/regulator.h > Missed one e-mail: +cc: trini at konsulko.com Best regards, -- Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak at samsung.com