static void pmu_suspend(void)
{
- struct regulator *ldo1,*ldo2,*ldo4,*ldo5;
- struct regulator *lilo2;
+ //struct regulator *ldo1,*ldo2,*ldo4,*ldo5;
+ struct regulator *lilo1,*lilo2;
- ldo1 = regulator_get(NULL, "ldo1");
+ /*ldo1 = regulator_get(NULL, "ldo1");
regulator_disable(ldo1);
ldo2 = regulator_get(NULL, "ldo2");
regulator_disable(ldo2);
ldo5 = regulator_get(NULL, "ldo5");
regulator_disable(ldo5);
lilo2 = regulator_get(NULL, "lilo2");
- regulator_disable(lilo2);
+ regulator_disable(lilo2);*/
+
+ lilo1 = regulator_get(NULL, "lilo1");
+ regulator_set_voltage(lilo1,2800000,2800000);
+ lilo2 = regulator_get(NULL, "lilo2");
+ regulator_set_voltage(lilo2,2800000,2800000);
}
static void pmu_resume(void)
{
- struct regulator *ldo1,*ldo2,*ldo4,*ldo5;
- struct regulator *lilo2;
- int tmp = 0;
+ //struct regulator *ldo1,*ldo2,*ldo4,*ldo5;
+ struct regulator *lilo1,*lilo2;
+ //int tmp = 0;
- ldo1 = regulator_get(NULL, "ldo1");
+ /*ldo1 = regulator_get(NULL, "ldo1");
regulator_enable(ldo1);
tmp = regulator_get_voltage(ldo1);
lilo2 = regulator_get(NULL, "lilo2");
regulator_enable(lilo2);
- tmp = regulator_get_voltage(lilo2);
+ tmp = regulator_get_voltage(lilo2);*/
+
+ lilo1 = regulator_get(NULL, "lilo1");
+ regulator_set_voltage(lilo1,3000000,3000000);
+ lilo2 = regulator_get(NULL, "lilo2");
+ regulator_set_voltage(lilo2,3000000,3000000);
}
static int __tcmfunc rk2818_tcm_idle(void)
printk(KERN_DEBUG "before core halt\n");
- //pmu_suspend( );
+ #if defined(CONFIG_MACH_RAHO)||defined(CONFIG_MACH_RAHO_0928)
+ pmu_suspend( );
+ #endif
clk_set_rate(arm_clk, 24000000);
dump_register();
rockchip_timer_clocksource_suspend_resume(0);
#endif
- //pmu_resume( );
+ #if defined(CONFIG_MACH_RAHO)||defined(CONFIG_MACH_RAHO_0928)
+ pmu_resume( );
+ #endif
dump_register();
clk_set_rate(arm_clk, arm_rate);
//rk2818_socpm_print();
}\r
\r
return -1;\r
+}
+
+static void fpga_close_power_support(void)
+{
+ //cmmb power down
+ gpio_request(FPGA_PIO4_03, NULL);
+ gpio_direction_output(FPGA_PIO4_03,GPIO_LOW);
+ gpio_free(FPGA_PIO4_03);
+ gpio_request(FPGA_PIO2_09, NULL);
+ gpio_direction_output(FPGA_PIO2_09,GPIO_LOW);
+ gpio_free(FPGA_PIO2_09);
+ gpio_request(FPGA_PIO2_06, NULL);
+ gpio_direction_output(FPGA_PIO2_06,GPIO_LOW);
+ gpio_free(FPGA_PIO2_06);
+
+ //KEY LED control
+ gpio_request(FPGA_PIO1_13, NULL);
+ gpio_direction_output(FPGA_PIO1_13,GPIO_LOW);
+ gpio_free(FPGA_PIO1_13);
+}
+
+static void fpga_open_power_support(void)
+{
+ //cmmb do not control here
+
+ //KEY LED resume
+ gpio_request(FPGA_PIO1_13, NULL);
+ gpio_direction_output(FPGA_PIO1_13,GPIO_HIGH);
+ gpio_free(FPGA_PIO1_13);
}\r
\r
static int spi_fpga_suspend(struct spi_device *spi, pm_message_t state)\r
{\r
\r
- struct spi_fpga_port *port = dev_get_drvdata(&spi->dev);\r
+ struct spi_fpga_port *port = dev_get_drvdata(&spi->dev);
+ fpga_close_power_support( );\r
int ret;\r
ret = spi_fpga_wait_suspend(port);\r
if(!ret)\r
spi_fpga_set_sysclk(GPIO_HIGH);\r
udelay(1);\r
spi_fpga_set_status(port, ICE_STATUS_WAKE);\r
-\r
+ fpga_open_power_support( );\r
printk("%s\n",__FUNCTION__);\r
\r
return 0;\r