diff options
author | RajithaY <rajithax.yerrumsetty@intel.com> | 2017-04-25 03:31:15 -0700 |
---|---|---|
committer | Rajitha Yerrumchetty <rajithax.yerrumsetty@intel.com> | 2017-05-22 06:48:08 +0000 |
commit | bb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch) | |
tree | ca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/roms/u-boot/doc/README.power-framework | |
parent | a14b48d18a9ed03ec191cf16b162206998a895ce (diff) |
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to
kvmfornfv repo and make use of the updated latest qemu for the
execution of all testcase
Change-Id: I1280af507a857675c7f81d30c95255635667bdd7
Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/roms/u-boot/doc/README.power-framework')
-rw-r--r-- | qemu/roms/u-boot/doc/README.power-framework | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/qemu/roms/u-boot/doc/README.power-framework b/qemu/roms/u-boot/doc/README.power-framework deleted file mode 100644 index 1f6fd4320..000000000 --- a/qemu/roms/u-boot/doc/README.power-framework +++ /dev/null @@ -1,166 +0,0 @@ -# -# (C) Copyright 2014 Samsung Electronics -# Lukasz Majewski <l.majewski@samsung.com> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -Introduction ------------- - -This document describes the second version of the u-boot's PMIC (Power -Management IC) framework. As a reference boards please consider Samsungs' Trats -and Trats2. - -Background ----------- - -Boards supported by u-boot are getting increasingly complex. Developers and -designers strive to cut down power consumption. Hence several different types of -devices are now available on the board - namely power managers (PMIC), fuel -gauges (FG), micro USB interface controllers (MUIC), batteries, multi-function -devices (MFD). - -Explanation of key design decisions ------------------------------------ - -One package can integrate PMIC and MUIC with different addresses on the I2C bus. -The same device - e.g. MAX8997 uses two different I2C busses and addresses. - -Power devices use not only I2C for communication, but SPI as well. Additionally -different ICs use different endianess. For this reason struct pmic holds -information about I2C/SPI transmission, which is used with generic -pmic_req_write() function. - -The "flat" hierarchy for power devices works well when each device performs only -one operation - e.g. PMIC enables LDO. - -The problem emerges when we have a device (battery) which conceptually shall be -the master and uses methods exported by other devices. We need to control MUIC -to start charging the battery, use PMIC to reduce board's overall power -consumption (by disabling not needed LDOs, BUCKs) and get current state of -energy on the battery from FG. -Up till now u-boot doesn't support device model, so a simple one had to be -added. - -The directory hierarchy has following structure: -./include/power/<device_name>_<device_function>.h -e.g. ./include/power/max8997_pmic.h - -./drivers/power/pmic/power_{core files}.c -e.g. ./drivers/power/pmic/power_core.c - -./drivers/power/pmic/<device_function>/<device_function>_<device_name>.c -e.g. ./drivers/power/pmic/pmic_max8997.c -e.g. ./drivers/power/battery/trats/bat_trats.c -e.g. ./drivers/power/fuel_gauge/fg_max17042.c - -The framework classifies devices by their function - separate directories should -be maintained for different classes of devices. - -Current design --------------- - -Everything is a power device described by struct pmic. Even battery is -considered as a valid power device. This helps for better management of those -devices. - -- Block diagram of the hierarchy: - ----------------- - --------| BAT |------------ - | | | | - | ----------------- | - | | | - \|/ \|/ \|/ - ----------- ----------------- --------- - |FG | |MUIC | |CHRG | - | | | | | | - ----------- ----------------- --------- - - -1. When hierarchy is not needed (no complex battery charge): - -Definition of the struct pmic is only required with proper name and parameters -for communication. This is enough to use the "pmic" command in the u-boot -prompt to change values of device's register (enable/disable LDO, BUCK). - -The PG, MUIC and CHRG above are regarded to be in the same level in the -hierarchy. - -2. Complex battery charging. - -To charge a battery, information from several "abstract" power devices is -needed (defined at ./include/power/pmic.h): -- FG device (struct power_fg): - -- *fg_battery_check - check if battery is not above its limits - -- *fg_battery_update - update the pmic framework with current - battery state(voltage and current capacity) - -- Charger device (struct power_chrq): - -- *chrg_type - type/capacity of the charger (including information - about USB cable disconnection) - -- *chrg_bat_present - detection if battery to be charged is - present - -- *chrg_state - status of the charger - if it is enabled or - disabled - -- Battery device (struct power_battery): - -- *battery_init - assign proper callbacks to be used by top - hierarchy battery device - -- *battery_charge - called from "pmic" command, responsible - for performing the charging - -Now two batteries are supported; trats and trats2 [*]. Those differ in the way -how they handle the exact charging. Trats uses polling (MAX8997) and trats2 -relies on the PMIC/MUIC HW completely (MAX77693). - -__Example for trats (this can be very different for other board):__ - -- *fg_battery_check -> FG device (fg_max17042.c) - -- *fg_battery_update -> FG device (fg_max17042.c) - -- *chrg_type -> MUIC device (muic_max8997.c) - -- *chrg_bat_present -> PMIC device (pmic_max8997.c) - -- *chrg_state -> PMIC device (pmic_max8997.c) - -- *battery_init -> BAT device (bat_trats.c) - -- *battery_charge -> BAT device (bat_trats.c) - -Also the struct pmic holds method (*low_power_mode) for reducing board's -power consumption when one calls "pmic BAT_TRATS bat charge" command. - -How to add a new power device ------------------------------ - -1. Simple device should be added with creation of file -<pmic_function>_<pmic_name>.c, <pmic_name>_<pmic_function>.h according to the -proposed and described above scheme. - -Then "pmic" command supports reading/writing/dump of device's internal -registers. - -2. Charging battery with hierarchy -Define devices as listed at 1. - -Define battery file (bat_<board>.c). Please also note that one might need a -corresponding battery model description for FG. - -For points 1 and 2 use a generic function power_init_board() to initialise the -power framework on your board. - -For reference, please look into the trats/trats2 boards. - -TO DO list (for PMICv3) - up till v2014.04 ------------------------------------------- - -1. Description of the devices related to power via device tree is not available. -This is the main problem when a developer tries to build a multi-boot u-boot -binary. The best would be to parse the DTS from Linux kernel. - -2. To support many instances of the same IC, like two MAX8997, one needs to -copy the corresponding pmic_max8997.c file with changed name to "MAX8997_PMICX", -where X is the device number. This problem will be addressed when extended -pmic_core.c will support storing available devices in a list. - -3. Definition of batteries [*] (for trats/trats2) should be excluded from the -code responsible for charging them and since it in fact describes the charging -profile it should be put to a separate file. - -4. Adjust the framework to work with the device model. |