Re: [PATCH 4/4] ARM: EXYNOS4: Add power domain to use generic Power domain Framework

2011-10-04 Thread Chanwoo Choi
Kukjin Kim wrote:
 Chanwoo Choi wrote:
 This patch initializes the power domain of EXYNOS4210. The devices
 which suppot runtime-PM have to be added in specific power domain.

 Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
 Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
 ---
  arch/arm/mach-exynos4/mach-nuri.c   |   18 ++
  arch/arm/mach-exynos4/mach-smdkc210.c   |   18
 ++
  arch/arm/mach-exynos4/mach-smdkv310.c   |   15 +++
  arch/arm/mach-exynos4/mach-universal_c210.c |   18 ++
  4 files changed, 69 insertions(+), 0 deletions(-)

 diff --git a/arch/arm/mach-exynos4/mach-nuri.c b/arch/arm/mach-exynos4/mach-
 nuri.c
 index 4c358cb..5844c55 100644
 --- a/arch/arm/mach-exynos4/mach-nuri.c
 +++ b/arch/arm/mach-exynos4/mach-nuri.c
 @@ -44,6 +44,7 @@
  #include plat/mfc.h

  #include mach/map.h
 +#include mach/pm-exynos4210.h

  /* Following are default values for UCON, ULCON and UFCON UART registers */
  #define NURI_UCON_DEFAULT   (S3C2410_UCON_TXILEVEL |\
 @@ -1125,6 +1126,21 @@ static void __init nuri_reserve(void)
  s5p_mfc_reserve_mem(0x4300, 8  20, 0x5100, 8  20);
  }

 +static void __init nuri_power_domain_init(void)
 +{
 +/* Initialize Power domain */
 +exynos4210_init_pm_domain(exynos4210_pd_mfc);
 +exynos4210_init_pm_domain(exynos4210_pd_g3d);
 +exynos4210_init_pm_domain(exynos4210_pd_lcd0);
 +exynos4210_init_pm_domain(exynos4210_pd_lcd1);
 +exynos4210_init_pm_domain(exynos4210_pd_tv);
 +exynos4210_init_pm_domain(exynos4210_pd_cam);
 +exynos4210_init_pm_domain(exynos4210_pd_gps);
 
 As you know, the EXYNOS421 boards have same power domains so how about to 
 make array of struct exynos4210_pm_domain and just one calling 
 exynos4210_init_pm_domain()?
 
OK, I will reimplement it to remove duplicate function call for initializing 
the generic power-domain of exynos4210.

 +
 +/* Add device to MFC power domain */
 +exynos4210_add_device_to_domain(exynos4210_pd_mfc,
 s5p_device_mfc);
 +}
 +
  static void __init nuri_machine_init(void)
  {
  nuri_sdhci_init();
 @@ -1145,6 +1161,8 @@ static void __init nuri_machine_init(void)

  /* Last */
  platform_add_devices(nuri_devices, ARRAY_SIZE(nuri_devices));
 +
 +nuri_power_domain_init();
  }

  MACHINE_START(NURI, NURI)
 diff --git a/arch/arm/mach-exynos4/mach-smdkc210.c b/arch/arm/mach-
 exynos4/mach-smdkc210.c
 index 4d1976c..0a3b2a9 100644
 --- a/arch/arm/mach-exynos4/mach-smdkc210.c
 +++ b/arch/arm/mach-exynos4/mach-smdkc210.c
 
 The mach-smdkc210.c and mach-smdkv310.c are merged one mach-smdkv310.c file.
 
OK, I will modify it according to merged state of mach-smdkv310.c.

Thanks  Regards,
Chanwoo Choi
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 4/4] ARM: EXYNOS4: Add power domain to use generic Power domain Framework

2011-10-02 Thread Kukjin Kim
Chanwoo Choi wrote:
 
 This patch initializes the power domain of EXYNOS4210. The devices
 which suppot runtime-PM have to be added in specific power domain.
 
 Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
 Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
 ---
  arch/arm/mach-exynos4/mach-nuri.c   |   18 ++
  arch/arm/mach-exynos4/mach-smdkc210.c   |   18
 ++
  arch/arm/mach-exynos4/mach-smdkv310.c   |   15 +++
  arch/arm/mach-exynos4/mach-universal_c210.c |   18 ++
  4 files changed, 69 insertions(+), 0 deletions(-)
 
 diff --git a/arch/arm/mach-exynos4/mach-nuri.c b/arch/arm/mach-exynos4/mach-
 nuri.c
 index 4c358cb..5844c55 100644
 --- a/arch/arm/mach-exynos4/mach-nuri.c
 +++ b/arch/arm/mach-exynos4/mach-nuri.c
 @@ -44,6 +44,7 @@
  #include plat/mfc.h
 
  #include mach/map.h
 +#include mach/pm-exynos4210.h
 
  /* Following are default values for UCON, ULCON and UFCON UART registers */
  #define NURI_UCON_DEFAULT(S3C2410_UCON_TXILEVEL |\
 @@ -1125,6 +1126,21 @@ static void __init nuri_reserve(void)
   s5p_mfc_reserve_mem(0x4300, 8  20, 0x5100, 8  20);
  }
 
 +static void __init nuri_power_domain_init(void)
 +{
 + /* Initialize Power domain */
 + exynos4210_init_pm_domain(exynos4210_pd_mfc);
 + exynos4210_init_pm_domain(exynos4210_pd_g3d);
 + exynos4210_init_pm_domain(exynos4210_pd_lcd0);
 + exynos4210_init_pm_domain(exynos4210_pd_lcd1);
 + exynos4210_init_pm_domain(exynos4210_pd_tv);
 + exynos4210_init_pm_domain(exynos4210_pd_cam);
 + exynos4210_init_pm_domain(exynos4210_pd_gps);

As you know, the EXYNOS421 boards have same power domains so how about to make 
array of struct exynos4210_pm_domain and just one calling 
exynos4210_init_pm_domain()?

 +
 + /* Add device to MFC power domain */
 + exynos4210_add_device_to_domain(exynos4210_pd_mfc,
 s5p_device_mfc);
 +}
 +
  static void __init nuri_machine_init(void)
  {
   nuri_sdhci_init();
 @@ -1145,6 +1161,8 @@ static void __init nuri_machine_init(void)
 
   /* Last */
   platform_add_devices(nuri_devices, ARRAY_SIZE(nuri_devices));
 +
 + nuri_power_domain_init();
  }
 
  MACHINE_START(NURI, NURI)
 diff --git a/arch/arm/mach-exynos4/mach-smdkc210.c b/arch/arm/mach-
 exynos4/mach-smdkc210.c
 index 4d1976c..0a3b2a9 100644
 --- a/arch/arm/mach-exynos4/mach-smdkc210.c
 +++ b/arch/arm/mach-exynos4/mach-smdkc210.c

The mach-smdkc210.c and mach-smdkv310.c are merged one mach-smdkv310.c file.

 @@ -37,6 +37,7 @@
  #include plat/backlight.h
 
  #include mach/map.h
 +#include mach/pm-exynos4210.h
 
  /* Following are default values for UCON, ULCON and UFCON UART registers */
  #define SMDKC210_UCON_DEFAULT(S3C2410_UCON_TXILEVEL |\
 @@ -273,6 +274,21 @@ static void __init smdkc210_map_io(void)
   s3c24xx_init_uarts(smdkc210_uartcfgs,
 ARRAY_SIZE(smdkc210_uartcfgs));
  }
 
 +static void __init smdkc210_power_domain_init(void)
 +{
 + /* Initialize Power domain */
 + exynos4210_init_pm_domain(exynos4210_pd_mfc);
 + exynos4210_init_pm_domain(exynos4210_pd_g3d);
 + exynos4210_init_pm_domain(exynos4210_pd_lcd0);
 + exynos4210_init_pm_domain(exynos4210_pd_lcd1);
 + exynos4210_init_pm_domain(exynos4210_pd_tv);
 + exynos4210_init_pm_domain(exynos4210_pd_cam);
 + exynos4210_init_pm_domain(exynos4210_pd_gps);
 +
 + /* Add device to LCD0 power domain */
 + exynos4210_add_device_to_domain(exynos4210_pd_lcd0,
 s5p_device_fimd0);
 +}
 +
  static void __init smdkc210_machine_init(void)
  {
   s3c_i2c1_set_platdata(NULL);
 @@ -289,6 +305,8 @@ static void __init smdkc210_machine_init(void)
   s5p_fimd0_set_platdata(smdkc210_lcd0_pdata);
 
   platform_add_devices(smdkc210_devices,
 ARRAY_SIZE(smdkc210_devices));
 +
 + smdkc210_power_domain_init();
  }
 
  MACHINE_START(SMDKC210, SMDKC210)
 diff --git a/arch/arm/mach-exynos4/mach-smdkv310.c b/arch/arm/mach-
 exynos4/mach-smdkv310.c
 index 8c2819b..320c7f3 100644
 --- a/arch/arm/mach-exynos4/mach-smdkv310.c
 +++ b/arch/arm/mach-exynos4/mach-smdkv310.c
 @@ -33,6 +33,7 @@
  #include plat/backlight.h
 
  #include mach/map.h
 +#include mach/pm-exynos4210.h
 
  /* Following are default values for UCON, ULCON and UFCON UART registers */
  #define SMDKV310_UCON_DEFAULT(S3C2410_UCON_TXILEVEL |\
 @@ -225,6 +226,18 @@ static void __init smdkv310_map_io(void)
   s3c24xx_init_uarts(smdkv310_uartcfgs,
 ARRAY_SIZE(smdkv310_uartcfgs));
  }
 
 +static void __init smdkv310_power_domain_init(void)
 +{
 + /* Initialize Power domain */
 + exynos4210_init_pm_domain(exynos4210_pd_mfc);
 + exynos4210_init_pm_domain(exynos4210_pd_g3d);
 + exynos4210_init_pm_domain(exynos4210_pd_lcd0);
 + exynos4210_init_pm_domain(exynos4210_pd_lcd1);
 + exynos4210_init_pm_domain(exynos4210_pd_tv);
 + exynos4210_init_pm_domain(exynos4210_pd_cam);
 + 

[PATCH 4/4] ARM: EXYNOS4: Add power domain to use generic Power domain Framework

2011-08-10 Thread Chanwoo Choi
This patch initializes the power domain of EXYNOS4210. The devices
which suppot runtime-PM have to be added in specific power domain.

Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
---
 arch/arm/mach-exynos4/mach-nuri.c   |   18 ++
 arch/arm/mach-exynos4/mach-smdkc210.c   |   18 ++
 arch/arm/mach-exynos4/mach-smdkv310.c   |   15 +++
 arch/arm/mach-exynos4/mach-universal_c210.c |   18 ++
 4 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-exynos4/mach-nuri.c 
b/arch/arm/mach-exynos4/mach-nuri.c
index 4c358cb..5844c55 100644
--- a/arch/arm/mach-exynos4/mach-nuri.c
+++ b/arch/arm/mach-exynos4/mach-nuri.c
@@ -44,6 +44,7 @@
 #include plat/mfc.h
 
 #include mach/map.h
+#include mach/pm-exynos4210.h
 
 /* Following are default values for UCON, ULCON and UFCON UART registers */
 #define NURI_UCON_DEFAULT  (S3C2410_UCON_TXILEVEL |\
@@ -1125,6 +1126,21 @@ static void __init nuri_reserve(void)
s5p_mfc_reserve_mem(0x4300, 8  20, 0x5100, 8  20);
 }
 
+static void __init nuri_power_domain_init(void)
+{
+   /* Initialize Power domain */
+   exynos4210_init_pm_domain(exynos4210_pd_mfc);
+   exynos4210_init_pm_domain(exynos4210_pd_g3d);
+   exynos4210_init_pm_domain(exynos4210_pd_lcd0);
+   exynos4210_init_pm_domain(exynos4210_pd_lcd1);
+   exynos4210_init_pm_domain(exynos4210_pd_tv);
+   exynos4210_init_pm_domain(exynos4210_pd_cam);
+   exynos4210_init_pm_domain(exynos4210_pd_gps);
+
+   /* Add device to MFC power domain */
+   exynos4210_add_device_to_domain(exynos4210_pd_mfc, s5p_device_mfc);
+}
+
 static void __init nuri_machine_init(void)
 {
nuri_sdhci_init();
@@ -1145,6 +1161,8 @@ static void __init nuri_machine_init(void)
 
/* Last */
platform_add_devices(nuri_devices, ARRAY_SIZE(nuri_devices));
+
+   nuri_power_domain_init();
 }
 
 MACHINE_START(NURI, NURI)
diff --git a/arch/arm/mach-exynos4/mach-smdkc210.c 
b/arch/arm/mach-exynos4/mach-smdkc210.c
index 4d1976c..0a3b2a9 100644
--- a/arch/arm/mach-exynos4/mach-smdkc210.c
+++ b/arch/arm/mach-exynos4/mach-smdkc210.c
@@ -37,6 +37,7 @@
 #include plat/backlight.h
 
 #include mach/map.h
+#include mach/pm-exynos4210.h
 
 /* Following are default values for UCON, ULCON and UFCON UART registers */
 #define SMDKC210_UCON_DEFAULT  (S3C2410_UCON_TXILEVEL |\
@@ -273,6 +274,21 @@ static void __init smdkc210_map_io(void)
s3c24xx_init_uarts(smdkc210_uartcfgs, ARRAY_SIZE(smdkc210_uartcfgs));
 }
 
+static void __init smdkc210_power_domain_init(void)
+{
+   /* Initialize Power domain */
+   exynos4210_init_pm_domain(exynos4210_pd_mfc);
+   exynos4210_init_pm_domain(exynos4210_pd_g3d);
+   exynos4210_init_pm_domain(exynos4210_pd_lcd0);
+   exynos4210_init_pm_domain(exynos4210_pd_lcd1);
+   exynos4210_init_pm_domain(exynos4210_pd_tv);
+   exynos4210_init_pm_domain(exynos4210_pd_cam);
+   exynos4210_init_pm_domain(exynos4210_pd_gps);
+
+   /* Add device to LCD0 power domain */
+   exynos4210_add_device_to_domain(exynos4210_pd_lcd0, s5p_device_fimd0);
+}
+
 static void __init smdkc210_machine_init(void)
 {
s3c_i2c1_set_platdata(NULL);
@@ -289,6 +305,8 @@ static void __init smdkc210_machine_init(void)
s5p_fimd0_set_platdata(smdkc210_lcd0_pdata);
 
platform_add_devices(smdkc210_devices, ARRAY_SIZE(smdkc210_devices));
+
+   smdkc210_power_domain_init();
 }
 
 MACHINE_START(SMDKC210, SMDKC210)
diff --git a/arch/arm/mach-exynos4/mach-smdkv310.c 
b/arch/arm/mach-exynos4/mach-smdkv310.c
index 8c2819b..320c7f3 100644
--- a/arch/arm/mach-exynos4/mach-smdkv310.c
+++ b/arch/arm/mach-exynos4/mach-smdkv310.c
@@ -33,6 +33,7 @@
 #include plat/backlight.h
 
 #include mach/map.h
+#include mach/pm-exynos4210.h
 
 /* Following are default values for UCON, ULCON and UFCON UART registers */
 #define SMDKV310_UCON_DEFAULT  (S3C2410_UCON_TXILEVEL |\
@@ -225,6 +226,18 @@ static void __init smdkv310_map_io(void)
s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs));
 }
 
+static void __init smdkv310_power_domain_init(void)
+{
+   /* Initialize Power domain */
+   exynos4210_init_pm_domain(exynos4210_pd_mfc);
+   exynos4210_init_pm_domain(exynos4210_pd_g3d);
+   exynos4210_init_pm_domain(exynos4210_pd_lcd0);
+   exynos4210_init_pm_domain(exynos4210_pd_lcd1);
+   exynos4210_init_pm_domain(exynos4210_pd_tv);
+   exynos4210_init_pm_domain(exynos4210_pd_cam);
+   exynos4210_init_pm_domain(exynos4210_pd_gps);
+}
+
 static void __init smdkv310_machine_init(void)
 {
s3c_i2c1_set_platdata(NULL);
@@ -242,6 +255,8 @@ static void __init smdkv310_machine_init(void)
samsung_bl_set(smdkv310_bl_gpio_info, smdkv310_bl_data);
 
platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices));
+
+