arm: tegra: soctherm: Support configuring OC alarms
[linux-2.6.git] / arch / arm / mach-tegra / board-pluto-power.c
index 11df50a..8b89032 100644 (file)
@@ -96,6 +96,8 @@ static struct regulator_consumer_supply palmas_smps8_supply[] = {
        REGULATOR_SUPPLY("vdd_gps", NULL),
        REGULATOR_SUPPLY("vdd_nfc", NULL),
        REGULATOR_SUPPLY("vlogic", "0-0069"),
+       REGULATOR_SUPPLY("vid", "0-000d"),
+       REGULATOR_SUPPLY("vddio", "0-0078"),
        REGULATOR_SUPPLY("vdd_dtv", NULL),
        REGULATOR_SUPPLY("vdd_bb", NULL),
        REGULATOR_SUPPLY("vcore1_lpddr", NULL),
@@ -182,6 +184,8 @@ static struct regulator_consumer_supply palmas_ldo6_supply[] = {
        REGULATOR_SUPPLY("vdd", "0-004c"),
        REGULATOR_SUPPLY("avdd", "spi3.2"),
        REGULATOR_SUPPLY("vdd", "0-0069"),
+       REGULATOR_SUPPLY("vdd", "0-000d"),
+       REGULATOR_SUPPLY("vdd", "0-0078"),
 };
 
 static struct regulator_consumer_supply palmas_ldo7_supply[] = {
@@ -606,19 +610,35 @@ struct palmas_clk32k_init_data palmas_clk32k_idata[] = {
        },
 };
 
+static struct palmas_pinctrl_config palmas_pincfg[] = {
+       PALMAS_PINMUX(POWERGOOD, POWERGOOD, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(VAC, VAC, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(GPIO0, GPIO, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(GPIO1, GPIO, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(GPIO2, GPIO, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(GPIO3, GPIO, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(GPIO4, GPIO, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(GPIO5, CLK32KGAUDIO, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(GPIO6, GPIO, DEFAULT, DEFAULT),
+       PALMAS_PINMUX(GPIO7, GPIO, DEFAULT, DEFAULT),
+};
+
+static struct palmas_pinctrl_platform_data palmas_pinctrl_pdata = {
+       .pincfg = palmas_pincfg,
+       .num_pinctrl = ARRAY_SIZE(palmas_pincfg),
+       .dvfs1_enable = false,
+       .dvfs2_enable = true,
+};
+
 static struct palmas_platform_data palmas_pdata = {
        .gpio_base = PALMAS_TEGRA_GPIO_BASE,
        .irq_base = PALMAS_TEGRA_IRQ_BASE,
        .pmic_pdata = &pmic_platform,
-       .mux_from_pdata = true,
-       .pad1 = 0,
-       .pad2 = (PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_5_MASK &
-                       (1 << PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_5_SHIFT)),
-       .pad3 = PALMAS_PRIMARY_SECONDARY_PAD3_DVFS2,
        .clk32k_init_data =  palmas_clk32k_idata,
        .clk32k_init_data_size = ARRAY_SIZE(palmas_clk32k_idata),
        .irq_type = IRQ_TYPE_LEVEL_HIGH,
        .use_power_off = true,
+       .pinctrl_pdata = &palmas_pinctrl_pdata,
 };
 
 static struct i2c_board_info palma_device[] = {
@@ -682,7 +702,7 @@ static struct tegra_suspend_platform_data pluto_suspend_data = {
        .i2c_base_addr = TEGRA_I2C5_BASE,
        .pmuslave_addr = 0xB0,
        .core_reg_addr = 0x2B,
-       .lp1_core_volt_low = 0x2E,
+       .lp1_core_volt_low = 0x33,
        .lp1_core_volt_high = 0x42,
 #endif
 };
@@ -733,6 +753,7 @@ static struct soctherm_platform_data pluto_soctherm_data = {
                [THERM_CPU] = {
                        .zone_enable = true,
                        .passive_delay = 1000,
+                       .hotspot_offset = 6000,
                        .num_trips = 3,
                        .trips = {
                                {
@@ -762,6 +783,7 @@ static struct soctherm_platform_data pluto_soctherm_data = {
                [THERM_GPU] = {
                        .zone_enable = true,
                        .passive_delay = 1000,
+                       .hotspot_offset = 6000,
                        .num_trips = 3,
                        .trips = {
                                {
@@ -794,9 +816,40 @@ static struct soctherm_platform_data pluto_soctherm_data = {
        },
        .throttle = {
                [THROTTLE_HEAVY] = {
+                       .priority = 100,
                        .devs = {
                                [THROTTLE_DEV_CPU] = {
-                                       .enable = 1,
+                                       .enable = true,
+                                       .depth = 80,
+                               },
+                       },
+               },
+               [THROTTLE_OC2] = {
+                       .throt_mode = BRIEF,
+                       .polarity = 0,
+                       .devs = {
+                               [THROTTLE_DEV_CPU] = {
+                                       .enable = true,
+                                       .depth = 50,
+                               },
+                               [THROTTLE_DEV_GPU] = {
+                                       .enable = true,
+                                       .depth = 50,
+                               },
+                       },
+               },
+               [THROTTLE_OC4] = {
+                       .throt_mode = BRIEF,
+                       .polarity = 1,
+                       .intr = true,
+                       .devs = {
+                               [THROTTLE_DEV_CPU] = {
+                                       .enable = true,
+                                       .depth = 50,
+                               },
+                               [THROTTLE_DEV_GPU] = {
+                                       .enable = true,
+                                       .depth = 50,
                                },
                        },
                },
@@ -811,77 +864,85 @@ int __init pluto_soctherm_init(void)
                        8000);  /* edp temperature margin */
        tegra_add_tj_trips(pluto_soctherm_data.therm[THERM_CPU].trips,
                        &pluto_soctherm_data.therm[THERM_CPU].num_trips);
+       tegra_add_vc_trips(pluto_soctherm_data.therm[THERM_CPU].trips,
+                       &pluto_soctherm_data.therm[THERM_CPU].num_trips);
 
        return tegra11_soctherm_init(&pluto_soctherm_data);
 }
 
 static struct tegra_sysedp_corecap pluto_sysedp_corecap[] = {
-       {  8000,    0, {  3606, 276, 204 }, {  3606, 276, 204 } },
-       {  8000, 1000, {  4606, 276, 204 }, {  4606, 276, 204 } },
-       {  8000, 2000, {  5606, 276, 204 }, {  5627, 348, 204 } },
-       {  8000, 3000, {  5094, 276, 660 }, {  5241, 420, 408 } },
-       {  8000, 4000, {  6094, 276, 660 }, {  5321, 420, 660 } },
-       {  9000,    0, {  4606, 276, 204 }, {  4606, 276, 204 } },
-       {  9000, 1000, {  5606, 276, 204 }, {  5627, 348, 204 } },
-       {  9000, 2000, {  5094, 276, 660 }, {  5506, 348, 408 } },
-       {  9000, 3000, {  6094, 276, 660 }, {  5792, 492, 408 } },
-       {  9000, 4000, {  7094, 276, 660 }, {  5192, 528, 660 } },
-       { 10000,    0, {  5606, 276, 204 }, {  5627, 348, 204 } },
-       { 10000, 1000, {  5094, 276, 660 }, {  5506, 348, 408 } },
-       { 10000, 2000, {  6094, 276, 660 }, {  5792, 492, 408 } },
-       { 10000, 3000, {  6503, 276, 792 }, {  5192, 528, 660 } },
-       { 10000, 4000, {  7503, 276, 792 }, {  5646, 600, 660 } },
-       { 11000,    0, {  4503, 276, 792 }, {  5506, 348, 408 } },
-       { 11000, 1000, {  5503, 276, 792 }, {  4192, 528, 660 } },
-       { 11000, 2000, {  6503, 276, 792 }, {  4646, 600, 660 } },
-       { 11000, 3000, {  7503, 276, 792 }, {  4810, 600, 792 } },
-       { 11000, 4000, {  8503, 276, 792 }, {  5810, 600, 792 } },
-       { 12000,    0, {  5503, 276, 792 }, {  5782, 348, 660 } },
-       { 12000, 1000, {  6503, 276, 792 }, {  4646, 600, 660 } },
-       { 12000, 2000, {  7503, 276, 792 }, {  4810, 600, 792 } },
-       { 12000, 3000, {  8503, 276, 792 }, {  5810, 600, 792 } },
-       { 12000, 4000, {  9503, 276, 792 }, {  6810, 600, 792 } },
-       { 13000,    0, {  6503, 276, 792 }, {  4646, 600, 660 } },
-       { 13000, 1000, {  7503, 276, 792 }, {  4810, 600, 792 } },
-       { 13000, 2000, {  8503, 276, 792 }, {  5810, 600, 792 } },
-       { 13000, 3000, {  9503, 276, 792 }, {  6810, 600, 792 } },
-       { 13000, 4000, { 10503, 276, 792 }, {  7810, 600, 792 } },
-       { 14000,    0, {  7503, 276, 792 }, {  5646, 600, 660 } },
-       { 14000, 1000, {  8503, 276, 792 }, {  5810, 600, 792 } },
-       { 14000, 2000, {  9503, 276, 792 }, {  6810, 600, 792 } },
-       { 14000, 3000, { 10503, 276, 792 }, {  7810, 600, 792 } },
-       { 14000, 4000, { 11503, 276, 792 }, {  8810, 600, 792 } },
-       { 15000,    0, {  8503, 276, 792 }, {  5810, 600, 792 } },
-       { 15000, 1000, {  9503, 276, 792 }, {  6810, 600, 792 } },
-       { 15000, 2000, { 10503, 276, 792 }, {  7810, 600, 792 } },
-       { 15000, 3000, { 11503, 276, 792 }, {  8810, 600, 792 } },
-       { 15000, 4000, { 12503, 276, 792 }, {  9810, 600, 792 } },
-       { 16000,    0, {  9503, 276, 792 }, {  6810, 600, 792 } },
-       { 16000, 1000, { 10503, 276, 792 }, {  7810, 600, 792 } },
-       { 16000, 2000, { 11503, 276, 792 }, {  8810, 600, 792 } },
-       { 16000, 3000, { 12503, 276, 792 }, {  9810, 600, 792 } },
-       { 16000, 4000, { 13503, 276, 792 }, { 10810, 600, 792 } },
-       { 17000,    0, { 10503, 276, 792 }, {  7810, 600, 792 } },
-       { 17000, 1000, { 11503, 276, 792 }, {  8810, 600, 792 } },
-       { 17000, 2000, { 12503, 276, 792 }, {  9810, 600, 792 } },
-       { 17000, 3000, { 13503, 276, 792 }, { 10810, 600, 792 } },
-       { 17000, 4000, { 14503, 276, 792 }, { 11810, 600, 792 } },
-       { 18000,    0, { 11503, 276, 792 }, {  8810, 600, 792 } },
-       { 18000, 1000, { 12503, 276, 792 }, {  9810, 600, 792 } },
-       { 18000, 2000, { 13503, 276, 792 }, { 10810, 600, 792 } },
-       { 18000, 3000, { 14503, 276, 792 }, { 11810, 600, 792 } },
-       { 18000, 4000, { 15503, 276, 792 }, { 12810, 600, 792 } },
-       { 19000,    0, { 12503, 276, 792 }, {  9810, 600, 792 } },
-       { 19000, 1000, { 13503, 276, 792 }, { 10810, 600, 792 } },
-       { 19000, 2000, { 14503, 276, 792 }, { 11810, 600, 792 } },
-       { 19000, 3000, { 15503, 276, 792 }, { 12810, 600, 792 } },
-       { 19000, 4000, { 16503, 276, 792 }, { 13810, 600, 792 } },
-       { 20000,    0, { 13503, 276, 792 }, { 10810, 600, 792 } },
-       { 20000, 1000, { 14503, 276, 792 }, { 11810, 600, 792 } },
-       { 20000, 2000, { 15503, 276, 792 }, { 12810, 600, 792 } },
-       { 20000, 3000, { 16503, 276, 792 }, { 13810, 600, 792 } },
-       { 20000, 4000, { 17503, 276, 792 }, { 14810, 600, 792 } },
-       { 24000,    0, { 14810, 600, 792 }, { 14810, 600, 792 } }
+       {  1000,    0, {   748, 240, 204 }, {   748, 240, 204 } },
+       {  2000,    0, {   748, 240, 204 }, {   748, 240, 204 } },
+       {  3000,    0, {   748, 240, 204 }, {   748, 240, 204 } },
+       {  4000,    0, {   748, 240, 204 }, {   748, 240, 204 } },
+       {  5000,    0, {   748, 240, 204 }, {   748, 240, 204 } },
+       {  6000,    0, {  1748, 240, 204 }, {  1748, 240, 204 } },
+       {  7000,    0, {  2748, 240, 204 }, {  2748, 240, 204 } },
+       {  7000, 1000, {  3748, 240, 204 }, {  3748, 240, 204 } },
+       {  7000, 2000, {  4748, 240, 204 }, {  4696, 324, 204 } },
+       {  7000, 3000, {  4843, 240, 624 }, {  4913, 420, 408 } },
+       {  7000, 4000, {  5843, 240, 624 }, {  5306, 420, 624 } },
+       {  8000,    0, {  3748, 240, 204 }, {  3748, 240, 204 } },
+       {  8000, 1000, {  4748, 240, 204 }, {  4696, 324, 204 } },
+       {  8000, 2000, {  4843, 240, 624 }, {  4975, 324, 408 } },
+       {  8000, 3000, {  5843, 240, 624 }, {  5913, 420, 408 } },
+       {  8000, 4000, {  6843, 240, 624 }, {  5895, 528, 624 } },
+       {  9000,    0, {  4748, 240, 204 }, {  3975, 324, 408 } },
+       {  9000, 1000, {  4843, 240, 624 }, {  4975, 324, 408 } },
+       {  9000, 2000, {  5843, 240, 624 }, {  5913, 420, 408 } },
+       {  9000, 3000, {  6565, 240, 792 }, {  5895, 528, 624 } },
+       {  9000, 4000, {  7565, 240, 792 }, {  6405, 600, 624 } },
+       { 10000,    0, {  4565, 240, 792 }, {  3895, 528, 624 } },
+       { 10000, 1000, {  5565, 240, 792 }, {  4895, 528, 624 } },
+       { 10000, 2000, {  6565, 240, 792 }, {  5405, 600, 624 } },
+       { 10000, 3000, {  7565, 240, 792 }, {  5277, 600, 792 } },
+       { 10000, 4000, {  8565, 240, 792 }, {  6277, 600, 792 } },
+       { 11000,    0, {  5565, 240, 792 }, {  5553, 324, 624 } },
+       { 11000, 1000, {  6565, 240, 792 }, {  5405, 600, 624 } },
+       { 11000, 2000, {  7565, 240, 792 }, {  5277, 600, 792 } },
+       { 11000, 3000, {  8565, 240, 792 }, {  6277, 600, 792 } },
+       { 11000, 4000, {  9565, 240, 792 }, {  7277, 600, 792 } },
+       { 12000,    0, {  6565, 240, 792 }, {  5405, 600, 624 } },
+       { 12000, 1000, {  7565, 240, 792 }, {  5277, 600, 792 } },
+       { 12000, 2000, {  8565, 240, 792 }, {  6277, 600, 792 } },
+       { 12000, 3000, {  9565, 240, 792 }, {  7277, 600, 792 } },
+       { 12000, 4000, { 10565, 240, 792 }, {  8277, 600, 792 } },
+       { 13000,    0, {  7565, 240, 792 }, {  6405, 600, 624 } },
+       { 13000, 1000, {  8565, 240, 792 }, {  6277, 600, 792 } },
+       { 13000, 2000, {  9565, 240, 792 }, {  7277, 600, 792 } },
+       { 13000, 3000, { 10565, 240, 792 }, {  8277, 600, 792 } },
+       { 13000, 4000, { 11565, 240, 792 }, {  9277, 600, 792 } },
+       { 14000,    0, {  8565, 240, 792 }, {  6277, 600, 792 } },
+       { 14000, 1000, {  9565, 240, 792 }, {  7277, 600, 792 } },
+       { 14000, 2000, { 10565, 240, 792 }, {  8277, 600, 792 } },
+       { 14000, 3000, { 11565, 240, 792 }, {  9277, 600, 792 } },
+       { 14000, 4000, { 12565, 240, 792 }, { 10277, 600, 792 } },
+       { 15000,    0, {  9565, 240, 792 }, {  7277, 600, 792 } },
+       { 15000, 1000, { 10565, 240, 792 }, {  8277, 600, 792 } },
+       { 15000, 2000, { 11565, 240, 792 }, {  9277, 600, 792 } },
+       { 15000, 3000, { 12565, 240, 792 }, { 10277, 600, 792 } },
+       { 15000, 4000, { 13565, 240, 792 }, { 11277, 600, 792 } },
+       { 16000,    0, { 10565, 240, 792 }, {  8277, 600, 792 } },
+       { 16000, 1000, { 11565, 240, 792 }, {  9277, 600, 792 } },
+       { 16000, 2000, { 12565, 240, 792 }, { 10277, 600, 792 } },
+       { 16000, 3000, { 13565, 240, 792 }, { 11277, 600, 792 } },
+       { 16000, 4000, { 14565, 240, 792 }, { 12277, 600, 792 } },
+       { 17000,    0, { 11565, 240, 792 }, {  9277, 600, 792 } },
+       { 17000, 1000, { 12565, 240, 792 }, { 10277, 600, 792 } },
+       { 17000, 2000, { 13565, 240, 792 }, { 11277, 600, 792 } },
+       { 17000, 3000, { 14565, 240, 792 }, { 12277, 600, 792 } },
+       { 17000, 4000, { 15565, 240, 792 }, { 13277, 600, 792 } },
+       { 18000,    0, { 12565, 240, 792 }, { 10277, 600, 792 } },
+       { 18000, 1000, { 13565, 240, 792 }, { 11277, 600, 792 } },
+       { 18000, 2000, { 14565, 240, 792 }, { 12277, 600, 792 } },
+       { 18000, 3000, { 15565, 240, 792 }, { 13277, 600, 792 } },
+       { 18000, 4000, { 16565, 240, 792 }, { 14277, 600, 792 } },
+       { 19000,    0, { 13565, 240, 792 }, { 11277, 600, 792 } },
+       { 19000, 1000, { 14565, 240, 792 }, { 12277, 600, 792 } },
+       { 19000, 2000, { 15565, 240, 792 }, { 13277, 600, 792 } },
+       { 19000, 3000, { 16565, 240, 792 }, { 14277, 600, 792 } },
+       { 19000, 4000, { 17565, 240, 792 }, { 15277, 600, 792 } },
+       { 23000,    0, { 15277, 600, 792 }, { 15277, 600, 792 } }
 };
 
 static struct tegra_sysedp_platform_data pluto_sysedp_platdata = {