From: xieyi <xieyi@rock-chips.com>
Date: Thu, 27 Sep 2012 09:49:51 +0000 (+0800)
Subject: rk2928: rk2926_m713: change pwm_log from pwm2 to pwm1, and fix gpio_readl & gpio_writel
X-Git-Tag: firefly_0821_release~8543
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ab9209c423b56192755dee07e5c805d93e9c3e9b;p=firefly-linux-kernel-4.4.55.git

rk2928: rk2926_m713: change pwm_log from pwm2 to pwm1, and fix gpio_readl & gpio_writel
---

diff --git a/arch/arm/mach-rk2928/board-rk2928-a720.c b/arch/arm/mach-rk2928/board-rk2928-a720.c
index 70b73b02e300..06eee08cac54 100755
--- a/arch/arm/mach-rk2928/board-rk2928-a720.c
+++ b/arch/arm/mach-rk2928/board-rk2928-a720.c
@@ -437,11 +437,19 @@ struct regulator_init_data pwm_regulator_init_dcdc[1] =
 
 static struct pwm_platform_data pwm_regulator_info[1] = {
 	{
+#ifdef CONFIG_MACH_RK2926_M713
+		.pwm_id = 1,
+		.pwm_gpio = RK2928_PIN0_PD3,
+		.pwm_iomux_name = GPIO0D3_PWM_1_NAME,
+		.pwm_iomux_pwm = GPIO0D_PWM_1, 
+		.pwm_iomux_gpio = GPIO0D_GPIO0D3,
+#else
 		.pwm_id = 2,
 		.pwm_gpio = RK2928_PIN0_PD4,
 		.pwm_iomux_name = GPIO0D4_PWM_2_NAME,
 		.pwm_iomux_pwm = GPIO0D_PWM_2, 
 		.pwm_iomux_gpio = GPIO0D_GPIO0D4,
+#endif
 		.pwm_voltage = 1200000,
 		.suspend_voltage = 1050000,
 		.min_uV = 1000000,
@@ -646,36 +654,56 @@ static struct i2c_board_info __initdata i2c0_info[] = {
 };
 #endif
 
+#ifdef CONFIG_MACH_RK2926_M713
+int __sramdata gpio0d3_iomux,gpio0d3_do,gpio0d3_dir;
+#else
 int __sramdata gpio0d4_iomux,gpio0d4_do,gpio0d4_dir;
-
-#ifndef gpio_readl
-#define gpio_readl(offset)	readl_relaxed(RK2928_GPIO0_BASE + offset)
-#define gpio_writel(v, offset)	do { writel_relaxed(v, RK2928_GPIO0_BASE + offset); dsb(); } while (0)
 #endif
 
+#define gpio0_readl(offset)	readl_relaxed(RK2928_GPIO0_BASE + offset)
+#define gpio0_writel(v, offset)	do { writel_relaxed(v, RK2928_GPIO0_BASE + offset); dsb(); } while (0)
+
 void __sramfunc rk30_pwm_logic_suspend_voltage(void)
 {
 #ifdef CONFIG_RK30_PWM_REGULATOR
 
+#ifdef CONFIG_MACH_RK2926_M713
+	sram_udelay(10000);
+	gpio0d3_iomux = readl_relaxed(GRF_GPIO0D_IOMUX);
+	gpio0d3_do = gpio0_readl(GPIO_SWPORTA_DR);
+	gpio0d3_dir = gpio0_readl(GPIO_SWPORTA_DDR);
+
+	writel_relaxed((gpio0d3_iomux |(1<<22)) & (~(1<<6)), GRF_GPIO0D_IOMUX);
+	gpio0_writel(gpio0d3_dir |(1<<27), GPIO_SWPORTA_DDR);
+	gpio0_writel(gpio0d3_do |(1<<27), GPIO_SWPORTA_DR);
+#else
 //	int gpio0d7_iomux,gpio0d7_do,gpio0d7_dir,gpio0d7_en;
 	sram_udelay(10000);
 	gpio0d4_iomux = readl_relaxed(GRF_GPIO0D_IOMUX);
-	gpio0d4_do = gpio_readl(GPIO_SWPORTA_DR);
-	gpio0d4_dir = gpio_readl(GPIO_SWPORTA_DDR);
+	gpio0d4_do = gpio0_readl(GPIO_SWPORTA_DR);
+	gpio0d4_dir = gpio0_readl(GPIO_SWPORTA_DDR);
 
 	writel_relaxed((gpio0d4_iomux |(1<<24)) & (~(1<<8)), GRF_GPIO0D_IOMUX);
-	gpio_writel(gpio0d4_dir |(1<<28), GPIO_SWPORTA_DDR);
-	gpio_writel(gpio0d4_do |(1<<28), GPIO_SWPORTA_DR);
+	gpio0_writel(gpio0d4_dir |(1<<28), GPIO_SWPORTA_DDR);
+	gpio0_writel(gpio0d4_do |(1<<28), GPIO_SWPORTA_DR);
+#endif
 	
 #endif 
 }
 void __sramfunc rk30_pwm_logic_resume_voltage(void)
 {
 #ifdef CONFIG_RK30_PWM_REGULATOR
+#ifdef CONFIG_MACH_RK2926_M713
+	writel_relaxed((1<<22)|gpio0d3_iomux, GRF_GPIO0D_IOMUX);
+	gpio_writel(gpio0d3_dir, GPIO_SWPORTA_DDR);
+	gpio_writel(gpio0d3_do, GPIO_SWPORTA_DR);
+	sram_udelay(10000);
+#else
 	writel_relaxed((1<<24)|gpio0d4_iomux, GRF_GPIO0D_IOMUX);
 	gpio_writel(gpio0d4_dir, GPIO_SWPORTA_DDR);
 	gpio_writel(gpio0d4_do, GPIO_SWPORTA_DR);
 	sram_udelay(10000);
+#endif
 
 #endif