blob: 68fd6ce61c6589a4753f7d9db9b87e01ec104d1e [file] [log] [blame]
/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __ARCH_ARM_MACH_MSM_RPM_9615_H
#define __ARCH_ARM_MACH_MSM_RPM_9615_H
#define RPM_MAJOR_VER 3
#define RPM_MINOR_VER 0
#define RPM_BUILD_VER 0
/* RPM control message RAM enums */
enum {
MSM_RPM_CTRL_VERSION_MAJOR,
MSM_RPM_CTRL_VERSION_MINOR,
MSM_RPM_CTRL_VERSION_BUILD,
MSM_RPM_CTRL_REQ_CTX_0,
MSM_RPM_CTRL_REQ_CTX_7 = MSM_RPM_CTRL_REQ_CTX_0 + 7,
MSM_RPM_CTRL_REQ_SEL_0,
MSM_RPM_CTRL_REQ_SEL_3 = MSM_RPM_CTRL_REQ_SEL_0 + 3,
MSM_RPM_CTRL_ACK_CTX_0,
MSM_RPM_CTRL_ACK_CTX_7 = MSM_RPM_CTRL_ACK_CTX_0 + 7,
MSM_RPM_CTRL_ACK_SEL_0,
MSM_RPM_CTRL_ACK_SEL_7 = MSM_RPM_CTRL_ACK_SEL_0 + 7,
};
/* RPM resource select enums defined for RPM core
NOT IN SEQUENTIAL ORDER */
enum {
MSM_RPM_SEL_NOTIFICATION = 0,
MSM_RPM_SEL_INVALIDATE = 1,
MSM_RPM_SEL_TRIGGER_TIMED = 2,
MSM_RPM_SEL_RPM_CTL = 3,
MSM_RPM_SEL_CXO_CLK = 5,
MSM_RPM_SEL_SYSTEM_FABRIC_CLK = 9,
MSM_RPM_SEL_DAYTONA_FABRIC_CLK = 11,
MSM_RPM_SEL_SFPB_CLK = 12,
MSM_RPM_SEL_CFPB_CLK = 13,
MSM_RPM_SEL_EBI1_CLK = 16,
MSM_RPM_SEL_SYS_FABRIC_CFG_HALT = 22,
MSM_RPM_SEL_SYS_FABRIC_CFG_CLKMOD = 23,
MSM_RPM_SEL_SYS_FABRIC_CFG_IOCTL = 24,
MSM_RPM_SEL_SYSTEM_FABRIC_ARB = 25,
MSM_RPM_SEL_PM8018_S1 = 30,
MSM_RPM_SEL_PM8018_S2 = 31,
MSM_RPM_SEL_PM8018_S3 = 32,
MSM_RPM_SEL_PM8018_S4 = 33,
MSM_RPM_SEL_PM8018_S5 = 34,
MSM_RPM_SEL_PM8018_L1 = 35,
MSM_RPM_SEL_PM8018_L2 = 36,
MSM_RPM_SEL_PM8018_L3 = 37,
MSM_RPM_SEL_PM8018_L4 = 38,
MSM_RPM_SEL_PM8018_L5 = 39,
MSM_RPM_SEL_PM8018_L6 = 40,
MSM_RPM_SEL_PM8018_L7 = 41,
MSM_RPM_SEL_PM8018_L8 = 42,
MSM_RPM_SEL_PM8018_L9 = 43,
MSM_RPM_SEL_PM8018_L10 = 44,
MSM_RPM_SEL_PM8018_L11 = 45,
MSM_RPM_SEL_PM8018_L12 = 46,
MSM_RPM_SEL_PM8018_L13 = 47,
MSM_RPM_SEL_PM8018_L14 = 48,
MSM_RPM_SEL_PM8018_LVS1 = 49,
MSM_RPM_SEL_NCP = 80,
MSM_RPM_SEL_CXO_BUFFERS = 81,
MSM_RPM_SEL_USB_OTG_SWITCH = 82,
MSM_RPM_SEL_HDMI_SWITCH = 83,
MSM_RPM_SEL_LAST = MSM_RPM_SEL_HDMI_SWITCH,
};
/* RPM resource (4 byte) word ID enum */
enum {
MSM_RPM_ID_NOTIFICATION_CONFIGURED_0 = 0,
MSM_RPM_ID_NOTIFICATION_CONFIGURED_3 =
MSM_RPM_ID_NOTIFICATION_CONFIGURED_0 + 3,
MSM_RPM_ID_NOTIFICATION_REGISTERED_0 = 4,
MSM_RPM_ID_NOTIFICATION_REGISTERED_3 =
MSM_RPM_ID_NOTIFICATION_REGISTERED_0 + 3,
MSM_RPM_ID_INVALIDATE_0 = 8,
MSM_RPM_ID_INVALIDATE_7 =
MSM_RPM_ID_INVALIDATE_0 + 7,
MSM_RPM_ID_TRIGGER_TIMED_TO = 16,
MSM_RPM_ID_TRIGGER_TIMED_SCLK_COUNT = 17,
MSM_RPM_ID_RPM_CTL = 18,
/* TRIGGER_CLEAR/SET deprecated in these 24 RESERVED bytes */
MSM_RPM_ID_RESERVED_0 = 19,
MSM_RPM_ID_RESERVED_5 =
MSM_RPM_ID_RESERVED_0 + 5,
MSM_RPM_ID_CXO_CLK = 25,
MSM_RPM_ID_SYSTEM_FABRIC_CLK = 26,
MSM_RPM_ID_DAYTONA_FABRIC_CLK = 27,
MSM_RPM_ID_SFPB_CLK = 28,
MSM_RPM_ID_CFPB_CLK = 29,
MSM_RPM_ID_EBI1_CLK = 30,
MSM_RPM_ID_SYS_FABRIC_CFG_HALT_0 = 31,
MSM_RPM_ID_SYS_FABRIC_CFG_HALT_1 = 32,
MSM_RPM_ID_SYS_FABRIC_CFG_CLKMOD_0 = 33,
MSM_RPM_ID_SYS_FABRIC_CFG_CLKMOD_1 = 34,
MSM_RPM_ID_SYS_FABRIC_CFG_CLKMOD_2 = 35,
MSM_RPM_ID_SYS_FABRIC_CFG_IOCTL = 36,
MSM_RPM_ID_SYSTEM_FABRIC_ARB_0 = 37,
MSM_RPM_ID_SYSTEM_FABRIC_ARB_26 =
MSM_RPM_ID_SYSTEM_FABRIC_ARB_0 + 26,
MSM_RPM_ID_PM8018_S1_0 = 64,
MSM_RPM_ID_PM8018_S1_1 = 65,
MSM_RPM_ID_PM8018_S2_0 = 66,
MSM_RPM_ID_PM8018_S2_1 = 67,
MSM_RPM_ID_PM8018_S3_0 = 68,
MSM_RPM_ID_PM8018_S3_1 = 69,
MSM_RPM_ID_PM8018_S4_0 = 70,
MSM_RPM_ID_PM8018_S4_1 = 71,
MSM_RPM_ID_PM8018_S5_0 = 72,
MSM_RPM_ID_PM8018_S5_1 = 73,
MSM_RPM_ID_PM8018_L1_0 = 74,
MSM_RPM_ID_PM8018_L1_1 = 75,
MSM_RPM_ID_PM8018_L2_0 = 76,
MSM_RPM_ID_PM8018_L2_1 = 77,
MSM_RPM_ID_PM8018_L3_0 = 78,
MSM_RPM_ID_PM8018_L3_1 = 79,
MSM_RPM_ID_PM8018_L4_0 = 80,
MSM_RPM_ID_PM8018_L4_1 = 81,
MSM_RPM_ID_PM8018_L5_0 = 82,
MSM_RPM_ID_PM8018_L5_1 = 83,
MSM_RPM_ID_PM8018_L6_0 = 84,
MSM_RPM_ID_PM8018_L6_1 = 85,
MSM_RPM_ID_PM8018_L7_0 = 86,
MSM_RPM_ID_PM8018_L7_1 = 87,
MSM_RPM_ID_PM8018_L8_0 = 88,
MSM_RPM_ID_PM8018_L8_1 = 89,
MSM_RPM_ID_PM8018_L9_0 = 90,
MSM_RPM_ID_PM8018_L9_1 = 91,
MSM_RPM_ID_PM8018_L10_0 = 92,
MSM_RPM_ID_PM8018_L10_1 = 93,
MSM_RPM_ID_PM8018_L11_0 = 94,
MSM_RPM_ID_PM8018_L11_1 = 95,
MSM_RPM_ID_PM8018_L12_0 = 96,
MSM_RPM_ID_PM8018_L12_1 = 97,
MSM_RPM_ID_PM8018_L13_0 = 98,
MSM_RPM_ID_PM8018_L13_1 = 99,
MSM_RPM_ID_PM8018_L14_0 = 100,
MSM_RPM_ID_PM8018_L14_1 = 101,
MSM_RPM_ID_PM8018_LVS1 = 102,
MSM_RPM_ID_NCP_0 = 103,
MSM_RPM_ID_NCP_1 = 104,
MSM_RPM_ID_CXO_BUFFERS = 105,
MSM_RPM_ID_USB_OTG_SWITCH = 106,
MSM_RPM_ID_HDMI_SWITCH = 107,
MSM_RPM_ID_LAST = MSM_RPM_ID_HDMI_SWITCH,
};
/* RPM resources RPM_ID aliases */
enum {
MSM_RPMRS_ID_RPM_CTL = MSM_RPM_ID_RPM_CTL,
/* XO clock for this target is CXO */
MSM_RPMRS_ID_PXO_CLK = MSM_RPM_ID_CXO_CLK,
MSM_RPMRS_ID_VDD_DIG_0 = MSM_RPM_ID_PM8018_S1_0,
MSM_RPMRS_ID_VDD_DIG_1 = MSM_RPM_ID_PM8018_S1_1,
MSM_RPMRS_ID_VDD_MEM_0 = MSM_RPM_ID_PM8018_L9_0,
MSM_RPMRS_ID_VDD_MEM_1 = MSM_RPM_ID_PM8018_L9_1,
/* MSM9615 L2 cache power control not via RPM
* MSM_RPM_ID_LAST + 1 indicates invalid */
MSM_RPMRS_ID_APPS_L2_CACHE_CTL = MSM_RPM_ID_LAST + 1
};
/* VDD values are in microvolts */
#define MSM_RPMRS_VDD_MASK 0x7fffff
enum {
MSM_RPMRS_VDD_MEM_RET_LOW = 750000,
MSM_RPMRS_VDD_MEM_RET_HIGH = 750000,
MSM_RPMRS_VDD_MEM_ACTIVE = 1050000,
MSM_RPMRS_VDD_MEM_MAX = 1150000,
};
enum {
MSM_RPMRS_VDD_DIG_RET_LOW = 500000,
MSM_RPMRS_VDD_DIG_RET_HIGH = 750000,
MSM_RPMRS_VDD_DIG_ACTIVE = 950000,
MSM_RPMRS_VDD_DIG_MAX = 1150000,
};
/* RPM status ID enum */
enum {
MSM_RPM_STATUS_ID_VERSION_MAJOR = 0,
MSM_RPM_STATUS_ID_VERSION_MINOR = 1,
MSM_RPM_STATUS_ID_VERSION_BUILD = 2,
MSM_RPM_STATUS_ID_SUPPORTED_RESOURCES_0 = 3,
MSM_RPM_STATUS_ID_SUPPORTED_RESOURCES_1 = 4,
MSM_RPM_STATUS_ID_SUPPORTED_RESOURCES_2 = 5,
MSM_RPM_STATUS_ID_RESERVED_SUPPORTED_RESOURCES_0 = 6,
MSM_RPM_STATUS_ID_SEQUENCE = 7,
MSM_RPM_STATUS_ID_RPM_CTL = 8,
MSM_RPM_STATUS_ID_CXO_CLK = 9,
MSM_RPM_STATUS_ID_SYSTEM_FABRIC_CLK = 10,
MSM_RPM_STATUS_ID_DAYTONA_FABRIC_CLK = 11,
MSM_RPM_STATUS_ID_SFPB_CLK = 12,
MSM_RPM_STATUS_ID_CFPB_CLK = 13,
MSM_RPM_STATUS_ID_EBI1_CLK = 14,
MSM_RPM_STATUS_ID_SYS_FABRIC_CFG_HALT = 15,
MSM_RPM_STATUS_ID_SYS_FABRIC_CFG_CLKMOD = 16,
MSM_RPM_STATUS_ID_SYS_FABRIC_CFG_IOCTL = 17,
MSM_RPM_STATUS_ID_SYSTEM_FABRIC_ARB = 18,
MSM_RPM_STATUS_ID_PM8018_S1_0 = 19,
MSM_RPM_STATUS_ID_PM8018_S1_1 = 20,
MSM_RPM_STATUS_ID_PM8018_S2_0 = 21,
MSM_RPM_STATUS_ID_PM8018_S2_1 = 22,
MSM_RPM_STATUS_ID_PM8018_S3_0 = 23,
MSM_RPM_STATUS_ID_PM8018_S3_1 = 24,
MSM_RPM_STATUS_ID_PM8018_S4_0 = 25,
MSM_RPM_STATUS_ID_PM8018_S4_1 = 26,
MSM_RPM_STATUS_ID_PM8018_S5_0 = 27,
MSM_RPM_STATUS_ID_PM8018_S5_1 = 28,
MSM_RPM_STATUS_ID_PM8018_L1_0 = 29,
MSM_RPM_STATUS_ID_PM8018_L1_1 = 30,
MSM_RPM_STATUS_ID_PM8018_L2_0 = 31,
MSM_RPM_STATUS_ID_PM8018_L2_1 = 32,
MSM_RPM_STATUS_ID_PM8018_L3_0 = 33,
MSM_RPM_STATUS_ID_PM8018_L3_1 = 34,
MSM_RPM_STATUS_ID_PM8018_L4_0 = 35,
MSM_RPM_STATUS_ID_PM8018_L4_1 = 36,
MSM_RPM_STATUS_ID_PM8018_L5_0 = 37,
MSM_RPM_STATUS_ID_PM8018_L5_1 = 38,
MSM_RPM_STATUS_ID_PM8018_L6_0 = 39,
MSM_RPM_STATUS_ID_PM8018_L6_1 = 40,
MSM_RPM_STATUS_ID_PM8018_L7_0 = 41,
MSM_RPM_STATUS_ID_PM8018_L7_1 = 42,
MSM_RPM_STATUS_ID_PM8018_L8_0 = 43,
MSM_RPM_STATUS_ID_PM8018_L8_1 = 44,
MSM_RPM_STATUS_ID_PM8018_L9_0 = 45,
MSM_RPM_STATUS_ID_PM8018_L9_1 = 46,
MSM_RPM_STATUS_ID_PM8018_L10_0 = 47,
MSM_RPM_STATUS_ID_PM8018_L10_1 = 48,
MSM_RPM_STATUS_ID_PM8018_L11_0 = 49,
MSM_RPM_STATUS_ID_PM8018_L11_1 = 50,
MSM_RPM_STATUS_ID_PM8018_L12_0 = 51,
MSM_RPM_STATUS_ID_PM8018_L12_1 = 52,
MSM_RPM_STATUS_ID_PM8018_L13_0 = 53,
MSM_RPM_STATUS_ID_PM8018_L13_1 = 54,
MSM_RPM_STATUS_ID_PM8018_L14_0 = 55,
MSM_RPM_STATUS_ID_PM8018_L14_1 = 56,
MSM_RPM_STATUS_ID_PM8018_LVS1 = 57,
MSM_RPM_STATUS_ID_NCP_0 = 58,
MSM_RPM_STATUS_ID_NCP_1 = 59,
MSM_RPM_STATUS_ID_CXO_BUFFERS = 60,
MSM_RPM_STATUS_ID_USB_OTG_SWITCH = 61,
MSM_RPM_STATUS_ID_HDMI_SWITCH = 62,
MSM_RPM_STATUS_ID_LAST = MSM_RPM_STATUS_ID_HDMI_SWITCH,
};
#endif /* __ARCH_ARM_MACH_MSM_RPM_9615_H */