msm: rpm: Refactor Low Power Mgmt drivers to support single binary
Move enumeration into uint arrays that can be chosen based on
the device file configuration.
rpm.h will have a superset of all enumeration for all targets.
The device file configuration will map the enumeration defined
in rpm.h to the target specific enumeration defined in rpm-XXXX.h.
Device drivers that need to communicate with RPM will continue to
use the enumeration defined in rpm.h and the RPM driver will translate
the generic enumeration to a device specific enumeration before sending
the RPM message to the RPM processor.
Also refactor SPM and MPM data for the supported targets.
Add RPM, SPM, LPM and MPM driver support for APQ8064 and MSM8930 targets.
Supported targets: 8660, 8960, 9615, 8930, 8064
Change-Id: I0d4ed7634cb221c124bc59a946932f7ac557ef58
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
diff --git a/arch/arm/mach-msm/devices-msm8x60.c b/arch/arm/mach-msm/devices-msm8x60.c
index 4196462..a433a89 100644
--- a/arch/arm/mach-msm/devices-msm8x60.c
+++ b/arch/arm/mach-msm/devices-msm8x60.c
@@ -52,6 +52,7 @@
#include <mach/rpm.h>
#include <mach/board.h>
#include <sound/apr_audio.h>
+#include "rpm_log.h"
#include "rpm_stats.h"
#include "mpm.h"
#include "msm_watchdog.h"
@@ -170,7 +171,13 @@
void __init msm8x60_init_irq(void)
{
- msm_mpm_irq_extn_init();
+ struct msm_mpm_device_data *data = NULL;
+
+#ifdef CONFIG_MSM_MPM
+ data = &msm8660_mpm_dev_data;
+#endif
+
+ msm_mpm_irq_extn_init(data);
gic_init(0, GIC_PPI_START, MSM_QGIC_DIST_BASE, (void *)MSM_QGIC_CPU_BASE);
/* Edge trigger PPIs except AVS_SVICINT and AVS_SVICINTSWDONE */
@@ -2175,13 +2182,34 @@
},
};
+#if defined(CONFIG_MSM_RPM_LOG) || defined(CONFIG_MSM_RPM_LOG_MODULE)
+static struct msm_rpm_log_platform_data msm_rpm_log_pdata = {
+ .phys_addr_base = 0x00106000,
+ .reg_offsets = {
+ [MSM_RPM_LOG_PAGE_INDICES] = 0x00000C80,
+ [MSM_RPM_LOG_PAGE_BUFFER] = 0x00000CA0,
+ },
+ .phys_size = SZ_8K,
+ .log_len = 4096, /* log's buffer length in bytes */
+ .log_len_mask = (4096 >> 2) - 1, /* length mask in units of u32 */
+};
+
+struct platform_device msm8660_rpm_log_device = {
+ .name = "msm_rpm_log",
+ .id = -1,
+ .dev = {
+ .platform_data = &msm_rpm_log_pdata,
+ },
+};
+#endif
+
#if defined(CONFIG_MSM_RPM_STATS_LOG)
static struct msm_rpmstats_platform_data msm_rpm_stat_pdata = {
.phys_addr_base = 0x00107E04,
.phys_size = SZ_8K,
};
-struct platform_device msm_rpm_stat_device = {
+struct platform_device msm8660_rpm_stat_device = {
.name = "msm_rpm_stat",
.id = -1,
.dev = {
@@ -2191,7 +2219,7 @@
#endif
#ifdef CONFIG_MSM_MPM
-static uint16_t msm_mpm_irqs_m2a[MSM_MPM_NR_MPM_IRQS] = {
+static uint16_t msm_mpm_irqs_m2a[MSM_MPM_NR_MPM_IRQS] __initdata = {
[1] = MSM_GPIO_TO_INT(61),
[4] = MSM_GPIO_TO_INT(87),
[5] = MSM_GPIO_TO_INT(88),
@@ -2246,7 +2274,7 @@
[59] = MSM_GPIO_TO_INT(129),
};
-static uint16_t msm_mpm_bypassed_apps_irqs[] = {
+static uint16_t msm_mpm_bypassed_apps_irqs[] __initdata = {
TLMM_MSM_SUMMARY_IRQ,
RPM_SCSS_CPU0_GP_HIGH_IRQ,
RPM_SCSS_CPU0_GP_MEDIUM_IRQ,
@@ -2273,7 +2301,7 @@
SPS_MTI_31,
};
-struct msm_mpm_device_data msm_mpm_dev_data = {
+struct msm_mpm_device_data msm8660_mpm_dev_data __initdata = {
.irqs_m2a = msm_mpm_irqs_m2a,
.irqs_m2a_size = ARRAY_SIZE(msm_mpm_irqs_m2a),
.bypassed_apps_irqs = msm_mpm_bypassed_apps_irqs,
@@ -2433,104 +2461,265 @@
};
unsigned msm_num_footswitch_devices = ARRAY_SIZE(msm_footswitch_devices);
-#ifdef CONFIG_MSM_RPM
-struct msm_rpm_map_data rpm_map_data[] __initdata = {
- MSM_RPM_MAP(TRIGGER_TIMED_TO, TRIGGER_TIMED, 1),
- MSM_RPM_MAP(TRIGGER_TIMED_SCLK_COUNT, TRIGGER_TIMED, 1),
- MSM_RPM_MAP(TRIGGER_SET_FROM, TRIGGER_SET, 1),
- MSM_RPM_MAP(TRIGGER_SET_TO, TRIGGER_SET, 1),
- MSM_RPM_MAP(TRIGGER_SET_TRIGGER, TRIGGER_SET, 1),
- MSM_RPM_MAP(TRIGGER_CLEAR_FROM, TRIGGER_CLEAR, 1),
- MSM_RPM_MAP(TRIGGER_CLEAR_TO, TRIGGER_CLEAR, 1),
- MSM_RPM_MAP(TRIGGER_CLEAR_TRIGGER, TRIGGER_CLEAR, 1),
+struct msm_rpm_platform_data msm8660_rpm_data __initdata = {
+ .reg_base_addrs = {
+ [MSM_RPM_PAGE_STATUS] = MSM_RPM_BASE,
+ [MSM_RPM_PAGE_CTRL] = MSM_RPM_BASE + 0x400,
+ [MSM_RPM_PAGE_REQ] = MSM_RPM_BASE + 0x600,
+ [MSM_RPM_PAGE_ACK] = MSM_RPM_BASE + 0xa00,
+ },
+ .irq_ack = RPM_SCSS_CPU0_GP_HIGH_IRQ,
+ .ipc_rpm_reg = MSM_GCC_BASE + 0x008,
+ .ipc_rpm_val = 4,
+ .target_id = {
+ MSM_RPM_MAP(8660, NOTIFICATION_CONFIGURED_0, NOTIFICATION, 8),
+ MSM_RPM_MAP(8660, NOTIFICATION_REGISTERED_0, NOTIFICATION, 8),
+ MSM_RPM_MAP(8660, INVALIDATE_0, INVALIDATE, 8),
+ MSM_RPM_MAP(8660, TRIGGER_TIMED_TO, TRIGGER_TIMED, 1),
+ MSM_RPM_MAP(8660, TRIGGER_TIMED_SCLK_COUNT, TRIGGER_TIMED, 1),
+ MSM_RPM_MAP(8660, TRIGGER_SET_FROM, TRIGGER_SET, 1),
+ MSM_RPM_MAP(8660, TRIGGER_SET_TO, TRIGGER_SET, 1),
+ MSM_RPM_MAP(8660, TRIGGER_SET_TRIGGER, TRIGGER_SET, 1),
+ MSM_RPM_MAP(8660, TRIGGER_CLEAR_FROM, TRIGGER_CLEAR, 1),
+ MSM_RPM_MAP(8660, TRIGGER_CLEAR_TO, TRIGGER_CLEAR, 1),
+ MSM_RPM_MAP(8660, TRIGGER_CLEAR_TRIGGER, TRIGGER_CLEAR, 1),
- MSM_RPM_MAP(CXO_CLK, CXO_CLK, 1),
- MSM_RPM_MAP(PXO_CLK, PXO_CLK, 1),
- MSM_RPM_MAP(PLL_4, PLL_4, 1),
- MSM_RPM_MAP(APPS_FABRIC_CLK, APPS_FABRIC_CLK, 1),
- MSM_RPM_MAP(SYSTEM_FABRIC_CLK, SYSTEM_FABRIC_CLK, 1),
- MSM_RPM_MAP(MM_FABRIC_CLK, MM_FABRIC_CLK, 1),
- MSM_RPM_MAP(DAYTONA_FABRIC_CLK, DAYTONA_FABRIC_CLK, 1),
- MSM_RPM_MAP(SFPB_CLK, SFPB_CLK, 1),
- MSM_RPM_MAP(CFPB_CLK, CFPB_CLK, 1),
- MSM_RPM_MAP(MMFPB_CLK, MMFPB_CLK, 1),
- MSM_RPM_MAP(SMI_CLK, SMI_CLK, 1),
- MSM_RPM_MAP(EBI1_CLK, EBI1_CLK, 1),
+ MSM_RPM_MAP(8660, CXO_CLK, CXO_CLK, 1),
+ MSM_RPM_MAP(8660, PXO_CLK, PXO_CLK, 1),
+ MSM_RPM_MAP(8660, PLL_4, PLL_4, 1),
+ MSM_RPM_MAP(8660, APPS_FABRIC_CLK, APPS_FABRIC_CLK, 1),
+ MSM_RPM_MAP(8660, SYSTEM_FABRIC_CLK, SYSTEM_FABRIC_CLK, 1),
+ MSM_RPM_MAP(8660, MM_FABRIC_CLK, MM_FABRIC_CLK, 1),
+ MSM_RPM_MAP(8660, DAYTONA_FABRIC_CLK, DAYTONA_FABRIC_CLK, 1),
+ MSM_RPM_MAP(8660, SFPB_CLK, SFPB_CLK, 1),
+ MSM_RPM_MAP(8660, CFPB_CLK, CFPB_CLK, 1),
+ MSM_RPM_MAP(8660, MMFPB_CLK, MMFPB_CLK, 1),
+ MSM_RPM_MAP(8660, SMI_CLK, SMI_CLK, 1),
+ MSM_RPM_MAP(8660, EBI1_CLK, EBI1_CLK, 1),
- MSM_RPM_MAP(APPS_L2_CACHE_CTL, APPS_L2_CACHE_CTL, 1),
+ MSM_RPM_MAP(8660, APPS_L2_CACHE_CTL, APPS_L2_CACHE_CTL, 1),
- MSM_RPM_MAP(APPS_FABRIC_HALT_0, APPS_FABRIC_HALT, 2),
- MSM_RPM_MAP(APPS_FABRIC_CLOCK_MODE_0, APPS_FABRIC_CLOCK_MODE, 3),
- MSM_RPM_MAP(APPS_FABRIC_ARB_0, APPS_FABRIC_ARB, 6),
+ MSM_RPM_MAP(8660, APPS_FABRIC_HALT_0, APPS_FABRIC_HALT, 2),
+ MSM_RPM_MAP(8660, APPS_FABRIC_CLOCK_MODE_0,
+ APPS_FABRIC_CLOCK_MODE, 3),
+ MSM_RPM_MAP(8660, APPS_FABRIC_ARB_0, APPS_FABRIC_ARB, 6),
- MSM_RPM_MAP(SYSTEM_FABRIC_HALT_0, SYSTEM_FABRIC_HALT, 2),
- MSM_RPM_MAP(SYSTEM_FABRIC_CLOCK_MODE_0, SYSTEM_FABRIC_CLOCK_MODE, 3),
- MSM_RPM_MAP(SYSTEM_FABRIC_ARB_0, SYSTEM_FABRIC_ARB, 22),
+ MSM_RPM_MAP(8660, SYSTEM_FABRIC_HALT_0, SYSTEM_FABRIC_HALT, 2),
+ MSM_RPM_MAP(8660, SYSTEM_FABRIC_CLOCK_MODE_0,
+ SYSTEM_FABRIC_CLOCK_MODE, 3),
+ MSM_RPM_MAP(8660, SYSTEM_FABRIC_ARB_0, SYSTEM_FABRIC_ARB, 22),
- MSM_RPM_MAP(MM_FABRIC_HALT_0, MM_FABRIC_HALT, 2),
- MSM_RPM_MAP(MM_FABRIC_CLOCK_MODE_0, MM_FABRIC_CLOCK_MODE, 3),
- MSM_RPM_MAP(MM_FABRIC_ARB_0, MM_FABRIC_ARB, 23),
+ MSM_RPM_MAP(8660, MM_FABRIC_HALT_0, MM_FABRIC_HALT, 2),
+ MSM_RPM_MAP(8660, MM_FABRIC_CLOCK_MODE_0,
+ MM_FABRIC_CLOCK_MODE, 3),
+ MSM_RPM_MAP(8660, MM_FABRIC_ARB_0, MM_FABRIC_ARB, 23),
- MSM_RPM_MAP(SMPS0B_0, SMPS0B, 2),
- MSM_RPM_MAP(SMPS1B_0, SMPS1B, 2),
- MSM_RPM_MAP(SMPS2B_0, SMPS2B, 2),
- MSM_RPM_MAP(SMPS3B_0, SMPS3B, 2),
- MSM_RPM_MAP(SMPS4B_0, SMPS4B, 2),
- MSM_RPM_MAP(LDO0B_0, LDO0B, 2),
- MSM_RPM_MAP(LDO1B_0, LDO1B, 2),
- MSM_RPM_MAP(LDO2B_0, LDO2B, 2),
- MSM_RPM_MAP(LDO3B_0, LDO3B, 2),
- MSM_RPM_MAP(LDO4B_0, LDO4B, 2),
- MSM_RPM_MAP(LDO5B_0, LDO5B, 2),
- MSM_RPM_MAP(LDO6B_0, LDO6B, 2),
- MSM_RPM_MAP(LVS0B, LVS0B, 1),
- MSM_RPM_MAP(LVS1B, LVS1B, 1),
- MSM_RPM_MAP(LVS2B, LVS2B, 1),
- MSM_RPM_MAP(LVS3B, LVS3B, 1),
- MSM_RPM_MAP(MVS, MVS, 1),
+ MSM_RPM_MAP(8660, SMPS0B_0, SMPS0B, 2),
+ MSM_RPM_MAP(8660, SMPS1B_0, SMPS1B, 2),
+ MSM_RPM_MAP(8660, SMPS2B_0, SMPS2B, 2),
+ MSM_RPM_MAP(8660, SMPS3B_0, SMPS3B, 2),
+ MSM_RPM_MAP(8660, SMPS4B_0, SMPS4B, 2),
+ MSM_RPM_MAP(8660, LDO0B_0, LDO0B, 2),
+ MSM_RPM_MAP(8660, LDO1B_0, LDO1B, 2),
+ MSM_RPM_MAP(8660, LDO2B_0, LDO2B, 2),
+ MSM_RPM_MAP(8660, LDO3B_0, LDO3B, 2),
+ MSM_RPM_MAP(8660, LDO4B_0, LDO4B, 2),
+ MSM_RPM_MAP(8660, LDO5B_0, LDO5B, 2),
+ MSM_RPM_MAP(8660, LDO6B_0, LDO6B, 2),
+ MSM_RPM_MAP(8660, LVS0B, LVS0B, 1),
+ MSM_RPM_MAP(8660, LVS1B, LVS1B, 1),
+ MSM_RPM_MAP(8660, LVS2B, LVS2B, 1),
+ MSM_RPM_MAP(8660, LVS3B, LVS3B, 1),
+ MSM_RPM_MAP(8660, MVS, MVS, 1),
- MSM_RPM_MAP(SMPS0_0, SMPS0, 2),
- MSM_RPM_MAP(SMPS1_0, SMPS1, 2),
- MSM_RPM_MAP(SMPS2_0, SMPS2, 2),
- MSM_RPM_MAP(SMPS3_0, SMPS3, 2),
- MSM_RPM_MAP(SMPS4_0, SMPS4, 2),
- MSM_RPM_MAP(LDO0_0, LDO0, 2),
- MSM_RPM_MAP(LDO1_0, LDO1, 2),
- MSM_RPM_MAP(LDO2_0, LDO2, 2),
- MSM_RPM_MAP(LDO3_0, LDO3, 2),
- MSM_RPM_MAP(LDO4_0, LDO4, 2),
- MSM_RPM_MAP(LDO5_0, LDO5, 2),
- MSM_RPM_MAP(LDO6_0, LDO6, 2),
- MSM_RPM_MAP(LDO7_0, LDO7, 2),
- MSM_RPM_MAP(LDO8_0, LDO8, 2),
- MSM_RPM_MAP(LDO9_0, LDO9, 2),
- MSM_RPM_MAP(LDO10_0, LDO10, 2),
- MSM_RPM_MAP(LDO11_0, LDO11, 2),
- MSM_RPM_MAP(LDO12_0, LDO12, 2),
- MSM_RPM_MAP(LDO13_0, LDO13, 2),
- MSM_RPM_MAP(LDO14_0, LDO14, 2),
- MSM_RPM_MAP(LDO15_0, LDO15, 2),
- MSM_RPM_MAP(LDO16_0, LDO16, 2),
- MSM_RPM_MAP(LDO17_0, LDO17, 2),
- MSM_RPM_MAP(LDO18_0, LDO18, 2),
- MSM_RPM_MAP(LDO19_0, LDO19, 2),
- MSM_RPM_MAP(LDO20_0, LDO20, 2),
- MSM_RPM_MAP(LDO21_0, LDO21, 2),
- MSM_RPM_MAP(LDO22_0, LDO22, 2),
- MSM_RPM_MAP(LDO23_0, LDO23, 2),
- MSM_RPM_MAP(LDO24_0, LDO24, 2),
- MSM_RPM_MAP(LDO25_0, LDO25, 2),
- MSM_RPM_MAP(LVS0, LVS0, 1),
- MSM_RPM_MAP(LVS1, LVS1, 1),
- MSM_RPM_MAP(NCP_0, NCP, 2),
+ MSM_RPM_MAP(8660, SMPS0_0, SMPS0, 2),
+ MSM_RPM_MAP(8660, SMPS1_0, SMPS1, 2),
+ MSM_RPM_MAP(8660, SMPS2_0, SMPS2, 2),
+ MSM_RPM_MAP(8660, SMPS3_0, SMPS3, 2),
+ MSM_RPM_MAP(8660, SMPS4_0, SMPS4, 2),
+ MSM_RPM_MAP(8660, LDO0_0, LDO0, 2),
+ MSM_RPM_MAP(8660, LDO1_0, LDO1, 2),
+ MSM_RPM_MAP(8660, LDO2_0, LDO2, 2),
+ MSM_RPM_MAP(8660, LDO3_0, LDO3, 2),
+ MSM_RPM_MAP(8660, LDO4_0, LDO4, 2),
+ MSM_RPM_MAP(8660, LDO5_0, LDO5, 2),
+ MSM_RPM_MAP(8660, LDO6_0, LDO6, 2),
+ MSM_RPM_MAP(8660, LDO7_0, LDO7, 2),
+ MSM_RPM_MAP(8660, LDO8_0, LDO8, 2),
+ MSM_RPM_MAP(8660, LDO9_0, LDO9, 2),
+ MSM_RPM_MAP(8660, LDO10_0, LDO10, 2),
+ MSM_RPM_MAP(8660, LDO11_0, LDO11, 2),
+ MSM_RPM_MAP(8660, LDO12_0, LDO12, 2),
+ MSM_RPM_MAP(8660, LDO13_0, LDO13, 2),
+ MSM_RPM_MAP(8660, LDO14_0, LDO14, 2),
+ MSM_RPM_MAP(8660, LDO15_0, LDO15, 2),
+ MSM_RPM_MAP(8660, LDO16_0, LDO16, 2),
+ MSM_RPM_MAP(8660, LDO17_0, LDO17, 2),
+ MSM_RPM_MAP(8660, LDO18_0, LDO18, 2),
+ MSM_RPM_MAP(8660, LDO19_0, LDO19, 2),
+ MSM_RPM_MAP(8660, LDO20_0, LDO20, 2),
+ MSM_RPM_MAP(8660, LDO21_0, LDO21, 2),
+ MSM_RPM_MAP(8660, LDO22_0, LDO22, 2),
+ MSM_RPM_MAP(8660, LDO23_0, LDO23, 2),
+ MSM_RPM_MAP(8660, LDO24_0, LDO24, 2),
+ MSM_RPM_MAP(8660, LDO25_0, LDO25, 2),
+ MSM_RPM_MAP(8660, LVS0, LVS0, 1),
+ MSM_RPM_MAP(8660, LVS1, LVS1, 1),
+ MSM_RPM_MAP(8660, NCP_0, NCP, 2),
+ MSM_RPM_MAP(8660, CXO_BUFFERS, CXO_BUFFERS, 1),
+ },
+ .target_status = {
+ MSM_RPM_STATUS_ID_MAP(8660, VERSION_MAJOR),
+ MSM_RPM_STATUS_ID_MAP(8660, VERSION_MINOR),
+ MSM_RPM_STATUS_ID_MAP(8660, VERSION_BUILD),
+ MSM_RPM_STATUS_ID_MAP(8660, SUPPORTED_RESOURCES_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SUPPORTED_RESOURCES_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SUPPORTED_RESOURCES_2),
+ MSM_RPM_STATUS_ID_MAP(8660, SEQUENCE),
- MSM_RPM_MAP(CXO_BUFFERS, CXO_BUFFERS, 1),
+ MSM_RPM_STATUS_ID_MAP(8660, CXO_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, PXO_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, PLL_4),
+ MSM_RPM_STATUS_ID_MAP(8660, APPS_FABRIC_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, SYSTEM_FABRIC_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, MM_FABRIC_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, DAYTONA_FABRIC_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, SFPB_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, CFPB_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, MMFPB_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, SMI_CLK),
+ MSM_RPM_STATUS_ID_MAP(8660, EBI1_CLK),
+
+ MSM_RPM_STATUS_ID_MAP(8660, APPS_L2_CACHE_CTL),
+
+ MSM_RPM_STATUS_ID_MAP(8660, APPS_FABRIC_HALT),
+ MSM_RPM_STATUS_ID_MAP(8660, APPS_FABRIC_CLOCK_MODE),
+ MSM_RPM_STATUS_ID_MAP(8660, APPS_FABRIC_ARB),
+
+ MSM_RPM_STATUS_ID_MAP(8660, SYSTEM_FABRIC_HALT),
+ MSM_RPM_STATUS_ID_MAP(8660, SYSTEM_FABRIC_CLOCK_MODE),
+ MSM_RPM_STATUS_ID_MAP(8660, SYSTEM_FABRIC_ARB),
+
+ MSM_RPM_STATUS_ID_MAP(8660, MM_FABRIC_HALT),
+ MSM_RPM_STATUS_ID_MAP(8660, MM_FABRIC_CLOCK_MODE),
+ MSM_RPM_STATUS_ID_MAP(8660, MM_FABRIC_ARB),
+
+
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS0B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS0B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS1B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS1B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS2B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS2B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS3B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS3B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS4B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS4B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO0B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO0B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO1B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO1B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO2B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO2B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO3B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO3B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO4B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO4B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO5B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO5B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO6B_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO6B_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LVS0B),
+ MSM_RPM_STATUS_ID_MAP(8660, LVS1B),
+ MSM_RPM_STATUS_ID_MAP(8660, LVS2B),
+ MSM_RPM_STATUS_ID_MAP(8660, LVS3B),
+ MSM_RPM_STATUS_ID_MAP(8660, MVS),
+
+
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS0_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS0_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS1_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS1_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS2_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS2_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS3_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS3_1),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS4_0),
+ MSM_RPM_STATUS_ID_MAP(8660, SMPS4_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO0_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO0_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO1_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO1_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO2_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO2_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO3_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO3_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO4_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO4_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO5_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO5_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO6_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO6_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO7_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO7_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO8_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO8_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO9_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO9_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO10_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO10_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO11_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO11_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO12_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO12_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO13_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO13_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO14_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO14_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO15_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO15_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO16_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO16_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO17_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO17_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO18_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO18_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO19_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO19_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO20_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO20_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO21_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO21_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO22_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO22_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO23_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO23_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO24_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO24_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO25_0),
+ MSM_RPM_STATUS_ID_MAP(8660, LDO25_1),
+ MSM_RPM_STATUS_ID_MAP(8660, LVS0),
+ MSM_RPM_STATUS_ID_MAP(8660, LVS1),
+ MSM_RPM_STATUS_ID_MAP(8660, NCP_0),
+ MSM_RPM_STATUS_ID_MAP(8660, NCP_1),
+ MSM_RPM_STATUS_ID_MAP(8660, CXO_BUFFERS),
+ },
+ .target_ctrl_id = {
+ MSM_RPM_CTRL_MAP(8660, VERSION_MAJOR),
+ MSM_RPM_CTRL_MAP(8660, VERSION_MINOR),
+ MSM_RPM_CTRL_MAP(8660, VERSION_BUILD),
+ MSM_RPM_CTRL_MAP(8660, REQ_CTX_0),
+ MSM_RPM_CTRL_MAP(8660, REQ_SEL_0),
+ MSM_RPM_CTRL_MAP(8660, ACK_CTX_0),
+ MSM_RPM_CTRL_MAP(8660, ACK_SEL_0),
+ },
+ .sel_invalidate = MSM_RPM_8660_SEL_INVALIDATE,
+ .sel_notification = MSM_RPM_8660_SEL_NOTIFICATION,
+ .sel_last = MSM_RPM_8660_SEL_LAST,
+ .ver = {2, 0, 0},
};
-unsigned int rpm_map_data_size = ARRAY_SIZE(rpm_map_data);
-struct platform_device msm_rpm_device = {
+struct platform_device msm8660_rpm_device = {
.name = "msm_rpm",
.id = -1,
};
-
-#endif