Professional Documents
Culture Documents
RPM PMIC Software Driver Overview: Qualcomm Technologies, Inc
RPM PMIC Software Driver Overview: Qualcomm Technologies, Inc
80-NN255-1 B
NO PUBLIC DISCLOSURE PERMITTED: Please report postings of this document on public servers or websites to: DocCtrlAgent@qualcomm.com.
Not to be used, copied, reproduced, or modified in whole or in part, nor its contents revealed in any manner to others without the express written permission of
Qualcomm Technologies, Inc.
Qualcomm is a trademark of Qualcomm Incorporated, registered in the United States and other countries. All Qualcomm Incorporated trademarks are used with
permission. Other product and brand names may be trademarks or registered trademarks of their respective owners.
This technical data may be subject to U.S. and international export, re-export, or transfer (“export”) laws. Diversion contrary to U.S. and international law is strictly
prohibited.
Qualcomm Technologies, Inc.
5775 Morehouse Drive
San Diego, CA 92121
U.S.A.
© 2014-2015 Qualcomm Technologies, Inc. and/or its affiliated companies. All rights reserved.
PAGE 2 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Revision History
PAGE 3 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Contents
Introduction
RPM Firmware – PMIC Software Driver Support
Communication – SPMI
Configurations
Target
NPA
Other Drivers
References
Questions?
PAGE 4 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Objectives
At the end of this presentation, you will understand RPM PMIC driver
usage.
PAGE 5 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Introduction
PAGE 6 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM Firmware – PMIC Software Driver Support
PAGE 7 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM Firmware – PMIC Software Driver Support (cont.)
PAGE 8 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM Firmware – PMIC Software Driver
Support
PAGE 9 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
PMIC Software Drivers
PAGE 10 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
PMIC Software Drivers (cont.)
RPM
Power
PMIC
NPA Target
PWR
SPMI
PMIC hardware
PAGE 11 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
CLK Driver
PAGE 12 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
CLK XO
PAGE 13 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
PON Driver
PAGE 14 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Boost Driver
PAGE 15 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
LDO Driver
PAGE 16 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
SMPS Driver
PAGE 17 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
VS Driver
PAGE 18 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
PWR Driver
PAGE 19 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Communication – SPMI
PAGE 20 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
SPMI R/W
It is not recommended performing direct register writes to PMIC except during sleep
entry/exit.
APIs
Reads 1 byte from address – pm_spmi_lite_read_byte (uSlaveId, address, data, priority)
Reads unmasked bits from address – pm_spmi_lite_read_byte_mask (uSlaveId, address, mask,
data, priority)
Reads numBYtes bytes from address – pm_spmi_lite_read_byte_array (uSlaveId, addr ,
numBYtes, data, priority)
Writes 1 byte from address – pm_spmi_lite_write_byte (uSlaveId, address, data, priority)
Writes unmasked bits from address – pm_spmi_lite_write_byte_mask (uSlaveId, address,
NumBytes, data, priority)
Writes numBYtes bytes from address – pm_spmi_lite_write_byte_array (uSlaveId, address,
NumBytes, data, priority)
uSlaveId :
0 for register address < 0x10000 on PM89xx
1 for register address > 0x10000 on PM89xx
2 for register address < 0x10000 on PMI89xx
3 for register address > 0x10000 on PMI89xx
4 for register address < 0x10000 on PM8841
5 for register address > 0x10000 on PM8841
Address – Low 16 bits of address, e.g, 0x4B09 for register – 0x14B09
Set priority = 0
Example
pm_spmi_lite_write_byte(1, 0x4746, 0x00, 0);
PAGE 21 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Configurations
PAGE 22 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Power Dependency
There is a dependency in LDO and SMPS; see the power grid for
dependencies in PM8841 and PM8941 Power Management Design
Guidelines (80-NA555-5).
Source file, which lists the dependency between regulators
rpm_proc\core\systemdrivers\pmic\config\<chipset>_pm_config_npa_dep.c
static pm_pwr_resource *<chipset>_smps1_a_child_dep[] static pm_pwr_resource *<chipset>_boost1_a_child_dep[] ={
={ &<chipset>_vs_a[4],
&<chipset>_ldo_a[1], &<chipset>_vs_a[5],};
&<chipset>_ldo_a[3],
&<chipset>_ldo_a[4],
&<chipset>_ldo_a[11],
};
typedef struct pm_pwr_resource_dependency_info
static pm_pwr_resource {
*<chipset>_smps2_a_child_dep[] ={ pm_pwr_resource *parent_source_dependency; // parent
&<chipset>_ldo_a[12], resource
&<chipset>_ldo_a[14], pm_pwr_resource
&<chipset>_ldo_a[15], **child_resource_dependents; // array of child
&<chipset>_ldo_a[5], resources
&<chipset>_ldo_a[6], unsigned
&<chipset>_ldo_a[7], parent_source_dependency_client_handle; // internal
}; client handle to make calls to the parent resource
}pm_pwr_resource_dependency_info;
static pm_pwr_resource
*<chipset>_smps3_a_child_dep[] ={
&<chipset>_vs_a[1],
&<chipset>_vs_a[2],
&<chipset>_vs_a[3],
&<chipset>_ldo_a[2],
};
PAGE 23 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM NPA Nodes
PAGE 24 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM NPA Nodes – RPM INIT
<chipset>_pm_rpm_proc_client_dev_deps_rpm_init_info =
{
NPA_ARRAY_SIZE(<chipset>_pm_rpm_proc_client_dev_deps_rpm_init),
<chipset>_pm_rpm_proc_client_dev_deps_rpm_init
};
PAGE 25 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM NPA PAM Table
PAGE 26 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Target-Specific PMIC Resource Configurations
PAGE 27 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Target-Specific PMIC Resource Configurations (cont.)
Boost/VS/CLK configuration
pm_rpm_boost_rail_info_type <chipset>_boost_rail_a[<chipset>_NUM_OF_BOOST_A] = {
1, // 0 – NO NPA Access; 1 – NPA Access Granted,
0 // 0 - allow to be turned off; 1 - always on
};
pm_rpm_vs_rail_info_type <chipset>_vs_rail_a[<chipset>_NUM_OF_VS_A] = {
1, // 0 – NO NPA Access; 1 – NPA Access Granted,
0 // 0 - allow to be turned off; 1 - always on
};
pm_rpm_clk_info_type <chipset>_clk_info_a[<chipset>_NUM_OF_CLK_A]= {
{0, 1}
};
PAGE 28 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM PMIC Init
Source file
rpm_proc\core\systemdrivers\pmic\npa\src\rpm\pm_rpm_npa_device.c.c
pm_rpm_device_init(void) {
Resource Count Info
Initialize all Device A Resources Types
Initialize all Device B Resources Types
Initialize all Device A Resources Types dependencies
Initialize all Device B Resources Types dependencies
}
PAGE 29 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Target
PAGE 30 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
LED APP
PAGE 31 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM Sleep/Wake Config
PAGE 32 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM Sleep/Wake Config (cont.)
sleep_register_type sleep_exit_info[] =
{
{1, 0x1A45, 0x40}, //Set S3 to Automode
{1, 0x1D45, 0x40}, //Set S4 to Automode
{1, 0x1A41, 0x4E}, //Set S3 to 1.35V (range 0)
{1, 0x1D41, 0x18}, //Set S4 to 2.15V (range 1)
{1, 0x4946, 0x80}, //Enable LDO10
//Temp fix for SPMI INT MISS
//INT_INT_RESEND_ALL => 0x540 (register)
//INT_RESEND_ALL => 0x1 (field)
{0 , 0x540, 0x01},
//SPMI_INT_LATCHED_CLR => 0x614 (register)
//SPMI_INT_LATCHED_CLR =>0x1 (field)
{0 , 0x614, 0x01},
//--------------------------------------------------------------------
{0, 0xFFFF, 0x00}, // invalid setting, used to check the end of the array.
};
PAGE 33 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
NPA
PAGE 34 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM NPA
PAGE 35 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Other Drivers
PAGE 36 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM Railway Driver
PAGE 37 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
RPM Rapid Bridge Core Power Reduction (RBCPR)
RBCPR uses adaptive voltage scaling (AVS); it sets the initial operating
voltages by AVS fuse bits and then dynamically adjusts the operating
voltages by AVS controller via RPM, based on internal sensors
The steps are as follows:
RPM firmware reads eFuses
RPM firmware sets initial voltages in PMIC.ef
PMIC outputs updated voltage to MSM
Updated voltage affects AVS sensors
AVS sensors generate AVS data
AVS controller computes voltage readjustment and
interrupts the RPM
RPM firmware writes voltage readjustment to PMIC
PMIC outputs updated voltage to MSM
Updated voltage affects AVS sensors
Source file
rpm_proc\core\power\rbcpr\src\target\<chipset>\rbcpr_bsp.c
Due to RBCPR, voltage at the corner might be different from set voltage
PAGE 38 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
References
Documents
Acronyms
Term Definition
apps processor application processor
AVS adaptive voltage scaling
Core BSP core board software/support package
LDO low dropout
NPA node power architecture
PBS programmable boot sequence
PC pin control
PD pull-down
PON power-on
RBCPR RPM Rapid Bridge Core Power Reduction
PAGE 39 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
References (cont.)
Acronyms
Term Definition
RPM Resource Power Manager
RTC real-time clock
SMPS switch mode power supply
SPMI system power management interface
TCXO temperature-compensated crystal oscillator
VREG voltage regulator
VS voltage switches
PAGE 40 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Questions?
https://createpoint.qti.qualcomm.com
PAGE 41 80-NN255-1 B September 2015 Confidential and Proprietary – Qualcomm Technologies, Inc. | MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION