mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
[ARM] tegra: stingray: Optimize regulator modes for better current drain
Change-Id: Ia94830c1aeb7736029711dd5f00a3a7842c839fb Signed-off-by: Greg Meiste <w30289@motorola.com>
This commit is contained in:
@@ -279,9 +279,9 @@ struct cpcap_spi_init_data stingray_cpcap_spi_init[] = {
|
||||
{CPCAP_REG_S1C2, 0x0000},
|
||||
{CPCAP_REG_S2C1, 0x4830},
|
||||
{CPCAP_REG_S2C2, 0x3030},
|
||||
{CPCAP_REG_S3C, 0x0541},
|
||||
{CPCAP_REG_S4C1, 0x4830},
|
||||
{CPCAP_REG_S4C2, 0x3030},
|
||||
{CPCAP_REG_S3C, 0x0439},
|
||||
{CPCAP_REG_S4C1, 0x4930},
|
||||
{CPCAP_REG_S4C2, 0x301C},
|
||||
{CPCAP_REG_S6C, 0x0000},
|
||||
{CPCAP_REG_VRF1C, 0x0000},
|
||||
{CPCAP_REG_VRF2C, 0x0000},
|
||||
@@ -296,26 +296,26 @@ struct cpcap_spi_init_data stingray_cpcap_spi_init[] = {
|
||||
|
||||
unsigned short cpcap_regulator_mode_values[CPCAP_NUM_REGULATORS] = {
|
||||
[CPCAP_SW2] = 0x0800,
|
||||
[CPCAP_SW4] = 0x0800,
|
||||
[CPCAP_SW4] = 0x0900,
|
||||
[CPCAP_SW5] = 0x0000,
|
||||
[CPCAP_VCAM] = 0x0003,
|
||||
[CPCAP_VCSI] = 0x0003,
|
||||
[CPCAP_VCAM] = 0x0007,
|
||||
[CPCAP_VCSI] = 0x0007,
|
||||
[CPCAP_VDAC] = 0x0003,
|
||||
[CPCAP_VDIG] = 0x0003,
|
||||
[CPCAP_VDIG] = 0x0005,
|
||||
[CPCAP_VFUSE] = 0x0080,
|
||||
[CPCAP_VHVIO] = 0x0003,
|
||||
[CPCAP_VSDIO] = 0x0003,
|
||||
[CPCAP_VPLL] = 0x0042,
|
||||
[CPCAP_VHVIO] = 0x0002,
|
||||
[CPCAP_VSDIO] = 0x0002,
|
||||
[CPCAP_VPLL] = 0x0001,
|
||||
[CPCAP_VRF1] = 0x000C,
|
||||
[CPCAP_VRF2] = 0x0003,
|
||||
[CPCAP_VRFREF] = 0x0003,
|
||||
[CPCAP_VWLAN1] = 0x0003,
|
||||
[CPCAP_VWLAN2] = 0x000C,
|
||||
[CPCAP_VWLAN1] = 0x0005,
|
||||
[CPCAP_VWLAN2] = 0x0008,
|
||||
[CPCAP_VSIM] = 0x0003,
|
||||
[CPCAP_VSIMCARD] = 0x1E00,
|
||||
[CPCAP_VVIB] = 0x0001,
|
||||
[CPCAP_VUSB] = 0x000C,
|
||||
[CPCAP_VAUDIO] = 0x0006,
|
||||
[CPCAP_VAUDIO] = 0x0004,
|
||||
};
|
||||
|
||||
unsigned short cpcap_regulator_off_mode_values[CPCAP_NUM_REGULATORS] = {
|
||||
@@ -370,22 +370,10 @@ struct regulator_consumer_supply cpcap_vhvio_consumers[] = {
|
||||
REGULATOR_CONSUMER("vcc", "3-000f" /* accelerometer */),
|
||||
};
|
||||
|
||||
struct regulator_consumer_supply cpcap_vsdio_consumers[] = {
|
||||
REGULATOR_CONSUMER("vsdio", NULL),
|
||||
};
|
||||
|
||||
struct regulator_consumer_supply cpcap_vcsi_consumers[] = {
|
||||
REGULATOR_CONSUMER("vcsi", "tegra_camera"),
|
||||
};
|
||||
|
||||
struct regulator_consumer_supply cpcap_vwlan2_consumers[] = {
|
||||
REGULATOR_CONSUMER("vwlan2", NULL /* sd slot */),
|
||||
};
|
||||
|
||||
struct regulator_consumer_supply cpcap_vvib_consumers[] = {
|
||||
REGULATOR_CONSUMER("vvib", NULL /* vibrator */),
|
||||
};
|
||||
|
||||
struct regulator_consumer_supply cpcap_vusb_consumers[] = {
|
||||
REGULATOR_CONSUMER_BY_DEVICE("vusb", &cpcap_whisper_device.dev),
|
||||
};
|
||||
@@ -492,11 +480,10 @@ static struct regulator_init_data cpcap_regulator[CPCAP_NUM_REGULATORS] = {
|
||||
.constraints = {
|
||||
.min_uV = 3000000,
|
||||
.max_uV = 3000000,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
.valid_ops_mask = 0,
|
||||
.always_on = 1,
|
||||
.apply_uV = 1,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(cpcap_vsdio_consumers),
|
||||
.consumer_supplies = cpcap_vsdio_consumers,
|
||||
},
|
||||
[CPCAP_VPLL] = {
|
||||
.constraints = {
|
||||
@@ -533,17 +520,17 @@ static struct regulator_init_data cpcap_regulator[CPCAP_NUM_REGULATORS] = {
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 1900000,
|
||||
.valid_ops_mask = 0,
|
||||
.always_on = 1,
|
||||
},
|
||||
},
|
||||
[CPCAP_VWLAN2] = {
|
||||
.constraints = {
|
||||
.min_uV = 3300000,
|
||||
.max_uV = 3300000,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
.valid_ops_mask = 0,
|
||||
.always_on = 1,
|
||||
.apply_uV = 1,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(cpcap_vwlan2_consumers),
|
||||
.consumer_supplies = cpcap_vwlan2_consumers,
|
||||
},
|
||||
[CPCAP_VSIM] = {
|
||||
.constraints = {
|
||||
@@ -563,11 +550,8 @@ static struct regulator_init_data cpcap_regulator[CPCAP_NUM_REGULATORS] = {
|
||||
.constraints = {
|
||||
.min_uV = 1300000,
|
||||
.max_uV = 3000000,
|
||||
.valid_ops_mask = (REGULATOR_CHANGE_VOLTAGE |
|
||||
REGULATOR_CHANGE_STATUS),
|
||||
.valid_ops_mask = 0,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(cpcap_vvib_consumers),
|
||||
.consumer_supplies = cpcap_vvib_consumers,
|
||||
},
|
||||
[CPCAP_VUSB] = {
|
||||
.constraints = {
|
||||
@@ -615,6 +599,17 @@ static struct cpcap_platform_data stingray_cpcap_data = {
|
||||
.ac_changed = NULL,
|
||||
.batt_changed = NULL,
|
||||
.usb_changed = NULL,
|
||||
.hwcfg = {
|
||||
(CPCAP_HWCFG0_SEC_STBY_SW3 |
|
||||
CPCAP_HWCFG0_SEC_STBY_SW4 |
|
||||
CPCAP_HWCFG0_SEC_STBY_VAUDIO |
|
||||
CPCAP_HWCFG0_SEC_STBY_VCAM |
|
||||
CPCAP_HWCFG0_SEC_STBY_VCSI |
|
||||
CPCAP_HWCFG0_SEC_STBY_VHVIO |
|
||||
CPCAP_HWCFG0_SEC_STBY_VPLL |
|
||||
CPCAP_HWCFG0_SEC_STBY_VSDIO),
|
||||
(CPCAP_HWCFG1_SEC_STBY_VWLAN1 |
|
||||
CPCAP_HWCFG1_SEC_STBY_VWLAN2)}
|
||||
};
|
||||
|
||||
static struct spi_board_info stingray_spi_board_info[] __initdata = {
|
||||
|
||||
Reference in New Issue
Block a user