LDO(L7,   "8018_l7",   "8018_l7_pc",  pldo,     LDO_300,  0),
	LDO(L8,   "8018_l8",   "8018_l8_pc",  nldo,     LDO_150,  1),
	LDO(L9,   "8018_l9",   NULL,          nldo1200, LDO_1200, 0),
	LDO(L10,  "8018_l10",  NULL,          nldo1200, LDO_1200, 0),
	LDO(L11,  "8018_l11",  NULL,          nldo1200, LDO_1200, 0),
	LDO(L12,  "8018_l12",  NULL,          nldo1200, LDO_1200, 0),
	LDO(L13,  "8018_l13",  "8018_l13_pc", pldo,     LDO_50,   0),
	LDO(L14,  "8018_l14",  "8018_l14_pc", pldo,     LDO_50,   0),

	SMPS(S1,  "8018_s1",   "8018_s1_pc",  smps,     SMPS_1500),
	SMPS(S2,  "8018_s2",   "8018_s2_pc",  smps,     SMPS_1500),
	SMPS(S3,  "8018_s3",   "8018_s3_pc",  smps,     SMPS_1500),
	SMPS(S4,  "8018_s4",   "8018_s4_pc",  smps,     SMPS_1500),
	SMPS(S5,  "8018_s5",   "8018_s5_pc",  smps,     SMPS_1500),

	LVS(LVS1, "8018_lvs1", "8018_lvs1_pc"),

	CORNER(VDD_DIG_CORNER, VOLTAGE_CORNER, "vdd_dig_corner", corner),
};

static const char *pin_control_label[] = {
	" D1",
	" A0",
	" A1",
	" A2",
};

static const char *pin_func_label[] = {
	[RPM_VREG_PIN_FN_9615_DONT_CARE]	= "don't care",
	[RPM_VREG_PIN_FN_9615_ENABLE]		= "on/off",
	[RPM_VREG_PIN_FN_9615_MODE]		= "HPM/LPM",
	LDO(8038_L21,  "8038_l21",  "8038_l21_pc", pldo,     LDO_150,  0),
	LDO(8038_L22,  "8038_l22",  "8038_l22_pc", pldo,     LDO_50,   0),
	LDO(8038_L23,  "8038_l23",  "8038_l23_pc", pldo,     LDO_50,   0),
	LDO(8038_L24,  "8038_l24",  NULL,          nldo1200, LDO_1200, 1),
	LDO(8038_L25,  "8038_l25",  NULL,          ln_ldo,   LDO_5,    0),
	LDO(8038_L26,  "8038_l26",  "8038_l26_pc", nldo,     LDO_150,  1),
	LDO(8038_L27,  "8038_l27",  NULL,          nldo1200, LDO_1200, 1),

	SMPS(8038_S1,  "8038_s1",   "8038_s1_pc",  smps,     SMPS_1500),
	SMPS(8038_S2,  "8038_s2",   "8038_s2_pc",  smps,     SMPS_1500),
	SMPS(8038_S3,  "8038_s3",   "8038_s3_pc",  smps,     SMPS_1500),
	SMPS(8038_S4,  "8038_s4",   "8038_s4_pc",  smps,     SMPS_1500),
	SMPS(8038_S5,  "8038_s5",   NULL,          ftsmps,   SMPS_2000),
	SMPS(8038_S6,  "8038_s6",   NULL,          ftsmps,   SMPS_2000),

	LVS(8038_LVS1, "8038_lvs1", "8038_lvs1_pc"),
	LVS(8038_LVS2, "8038_lvs2", "8038_lvs2_pc"),

	CORNER(8038_VDD_DIG_CORNER, VOLTAGE_CORNER, "vdd_dig_corner", corner),
};

static struct vreg vregs_msm8930_pm8917[] = {
	LDO(8917_L1,   "8917_l1",   "8917_l1_pc",  nldo,     LDO_150,  1),
	LDO(8917_L2,   "8917_l2",   "8917_l2_pc",  nldo,     LDO_150,  1),
	LDO(8917_L3,   "8917_l3",   "8917_l3_pc",  pldo,     LDO_150,  0),
	LDO(8917_L4,   "8917_l4",   "8917_l4_pc",  pldo,     LDO_50,   0),
	LDO(8917_L5,   "8917_l5",   "8917_l5_pc",  pldo,     LDO_300,  0),
	LDO(8917_L6,   "8917_l6",   "8917_l6_pc",  pldo,     LDO_600,  0),
	LDO(8917_L7,   "8917_l7",   "8917_l7_pc",  pldo,     LDO_150,  0),
	LDO(8917_L8,   "8917_l8",   "8917_l8_pc",  pldo,     LDO_300,  0),
	LDO(8917_L9,   "8917_l9",   "8917_l9_pc",  pldo,     LDO_300,  0),
	LDO(L25,  "8921_l25",  NULL,          nldo1200, LDO_1200, 0),
	LDO(L26,  "8921_l26",  NULL,          nldo1200, LDO_1200, 0),
	LDO(L27,  "8921_l27",  NULL,          nldo1200, LDO_1200, 0),
	LDO(L28,  "8921_l28",  NULL,          nldo1200, LDO_1200, 0),
	LDO(L29,  "8921_l29",  "8921_l29_pc", pldo,     LDO_150,  0),

	SMPS(S1,  "8921_s1",   "8921_s1_pc",  smps,     SMPS_1500),
	SMPS(S2,  "8921_s2",   "8921_s2_pc",  smps,     SMPS_1500),
	SMPS(S3,  "8921_s3",   "8921_s3_pc",  smps,     SMPS_1500),
	SMPS(S4,  "8921_s4",   "8921_s4_pc",  smps,     SMPS_1500),
	SMPS(S5,  "8921_s5",   NULL,          ftsmps,   SMPS_2000),
	SMPS(S6,  "8921_s6",   NULL,          ftsmps,   SMPS_2000),
	SMPS(S7,  "8921_s7",   "8921_s7_pc",  smps,     SMPS_1500),
	SMPS(S8,  "8921_s8",   "8921_s8_pc",  smps,     SMPS_1500),

	LVS(LVS1, "8921_lvs1", "8921_lvs1_pc"),
	LVS(LVS2, "8921_lvs2", NULL),
	LVS(LVS3, "8921_lvs3", "8921_lvs3_pc"),
	LVS(LVS4, "8921_lvs4", "8921_lvs4_pc"),
	LVS(LVS5, "8921_lvs5", "8921_lvs5_pc"),
	LVS(LVS6, "8921_lvs6", "8921_lvs6_pc"),
	LVS(LVS7, "8921_lvs7", "8921_lvs7_pc"),
	MVS(USB_OTG,  "8921_usb_otg",  NULL, USB_OTG_SWITCH),
	MVS(HDMI_MVS, "8921_hdmi_mvs", NULL, HDMI_SWITCH),

	NCP(NCP,  "8921_ncp",  NULL),
};

static const char *pin_func_label[] = {
	[RPM_VREG_PIN_FN_8960_DONT_CARE]	= "don't care",
	[RPM_VREG_PIN_FN_8960_ENABLE]		= "on/off",
	LDO(PM8058_VREG_ID_L20, 0x11F, 0x127, 0),
	LDO(PM8058_VREG_ID_L21, 0x120, 0x128, 1),
	LDO(PM8058_VREG_ID_L22, 0x121, 0x129, 1),
	LDO(PM8058_VREG_ID_L23, 0x122, 0x12A, 1),
	LDO(PM8058_VREG_ID_L24, 0x123, 0x12B, 1),
	LDO(PM8058_VREG_ID_L25, 0x124, 0x12C, 1),

	/*   id                 ctrl   test2  clk_ctrl */
	SMPS(PM8058_VREG_ID_S0, 0x004, 0x084, 0x1D1),
	SMPS(PM8058_VREG_ID_S1, 0x005, 0x085, 0x1D2),
	SMPS(PM8058_VREG_ID_S2, 0x110, 0x119, 0x1D3),
	SMPS(PM8058_VREG_ID_S3, 0x111, 0x11A, 0x1D4),
	SMPS(PM8058_VREG_ID_S4, 0x112, 0x11B, 0x1D5),

	/*   id                   ctrl  */
	LVS(PM8058_VREG_ID_LVS0, 0x12D),
	LVS(PM8058_VREG_ID_LVS1, 0x12F),

	/*   id                  ctrl */
	NCP(PM8058_VREG_ID_NCP, 0x090),
};

static int pm8058_vreg_write(struct pm8058_chip *chip,
		u16 addr, u8 val, u8 mask, u8 *reg_save)
{
	int rc;
	u8 reg;

	reg = (*reg_save & ~mask) | (val & mask);
	rc = pm8058_write(chip, addr, &reg, 1);
	if (rc)
	LDO(PM8058_L20,  LDO20,  "8058_l20",  "8058_l20_pc", pldo, LDO_150),
	LDO(PM8058_L21,  LDO21,  "8058_l21",  "8058_l21_pc", nldo, LDO_150),
	LDO(PM8058_L22,  LDO22,  "8058_l22",  "8058_l22_pc", nldo, LDO_300),
	LDO(PM8058_L23,  LDO23,  "8058_l23",  "8058_l23_pc", nldo, LDO_300),
	LDO(PM8058_L24,  LDO24,  "8058_l24",  "8058_l24_pc", nldo, LDO_150),
	LDO(PM8058_L25,  LDO25,  "8058_l25",  "8058_l25_pc", nldo, LDO_150),

	SMPS(PM8058_S0,  SMPS0,  "8058_s0",   "8058_s0_pc",  smps, SMPS),
	SMPS(PM8058_S1,  SMPS1,  "8058_s1",   "8058_s1_pc",  smps, SMPS),

	SMPS(PM8058_S2,  SMPS2,  "8058_s2",   "8058_s2_pc",  smps, SMPS),
	SMPS(PM8058_S3,  SMPS3,  "8058_s3",   "8058_s3_pc",  smps, SMPS),
	SMPS(PM8058_S4,  SMPS4,  "8058_s4",   "8058_s4_pc",  smps, SMPS),

#ifdef CONFIG_TOUCHSCREEN_CYTTSP_I2C
	LVS(PM8058_LVS0, LVS0,   "8058_lvs0", "8058_lvs0_pc"),
#else
	LVS(PM8058_LVS0, LVS0,   "8058_lvs0", "8058_lvs0_pc"),
#endif
// P12095 110301 added
#ifdef CONFIG_SENSORS_MPU3050
	LVS(PM8058_LVS1, LVS1,   "8058_lvs1", "8058_lvs1_pc"),
#else
	LVS(PM8058_LVS1, LVS1,   "8058_lvs1", "8058_lvs1_pc"),
#endif
	NCP(PM8058_NCP,  NCP,    "8058_ncp",  NULL),

	LDO(PM8901_L0,   LDO0B,  "8901_l0",   "8901_l0_pc",  nldo, LDO_300),
#ifdef F_SKYCAM_S5K6AAFX13
	LDO(PM8901_L1,   LDO1B,  "8901_l1",   "8901_l1_pc",  pldo, LDO_300),
#else