ARM: EXYNOS4: Use generic power domain on EXYNOS4210/4212
Subsystems (3)
PATCH v3 2/3 ARM: EXYNOS4: Use generic power domain on EXYNOS4210/4212
This patch use the generic power domain framework instead of specific code depend on samsung SoC.
Signed-off-by Chanwoo Choi <[email protected]>
Signed-off-by Kyungmin Park <[email protected]>
--- arch/arm/mach-exynos4/mach-armlex4210.c | 3 +++ arch/arm/mach-exynos4/mach-nuri.c | 24 ++++++++++++------------ arch/arm/mach-exynos4/mach-origen.c | 19 +++++++------------ arch/arm/mach-exynos4/mach-smdk4x12.c | 3 +++ arch/arm/mach-exynos4/mach-smdkv310.c | 17 ++++++----------- arch/arm/mach-exynos4/mach-universal_c210.c | 26 ++++++++++++-------------- 6 files changed, 43 insertions(+), 49 deletions(-)
arch/arm/mach-exynos4/mach-armlex4210.c +3 -0
@@ -27,6 +27,7 @@#include <plat/sdhci.h> #include <mach/map.h> +#include <mach/pm-exynos4.h> /* Following are default values for UCON, ULCON and UFCON UART registers */ #define ARMLEX4210_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
@@ -195,6 +196,8 @@ static void __init armlex4210_map_io(void)static void __init armlex4210_machine_init (void ) { +exynos4210_init_pm_domains (); +armlex4210_smsc911x_init ();armlex4210_sdhci_init ();
arch/arm/mach-exynos4/mach-nuri.c +12 -12
@@ -47,12 +47,12 @@#include <plat/gpio-cfg.h> #include <plat/iic.h> #include <plat/mfc.h> -#include <plat/pd.h> #include <plat/fimc-core.h> #include <plat/camport.h> #include <plat/mipi_csis.h> #include <mach/map.h> +#include <mach/pm-exynos4.h> /* Following are default values for UCON, ULCON and UFCON UART registers */ #define NURI_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
@@ -1266,9 +1266,6 @@ static struct platform_device *nuri_devices[] __initdata = { &s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, - &exynos4_device_pd[PD_MFC ], - &exynos4_device_pd[PD_LCD0 ], - &exynos4_device_pd[PD_CAM ], &s5p_device_fimc_md,/* NURI Devices */
@@ -1295,6 +1292,8 @@ static void __init nuri_reserve(void)static void __init nuri_machine_init (void ) { +exynos4210_init_pm_domains (); +nuri_sdhci_init ();nuri_tsp_init ();nuri_power_init ();
@@ -1318,14 +1317,15 @@ static void __init nuri_machine_init(void)/* Last */ platform_add_devices (nuri_devices,ARRAY_SIZE (nuri_devices)); - s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC ].dev; - s5p_device_fimd0.dev.parent = &exynos4_device_pd[PD_LCD0 ].dev; - - s5p_device_fimc0.dev.parent = &exynos4_device_pd[PD_CAM ].dev; - s5p_device_fimc1.dev.parent = &exynos4_device_pd[PD_CAM ].dev; - s5p_device_fimc2.dev.parent = &exynos4_device_pd[PD_CAM ].dev; - s5p_device_fimc3.dev.parent = &exynos4_device_pd[PD_CAM ].dev; - s5p_device_mipi_csis0.dev.parent = &exynos4_device_pd[PD_CAM ].dev; + +exynos4_add_device_to_domain (&exynos4_pd_mfc, &s5p_device_mfc); +exynos4_add_device_to_domain (&exynos4_pd_lcd0, &s5p_device_fimd0); + +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_fimc0); +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_fimc1); +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_fimc2); +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_fimc3); +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_mipi_csis0); }MACHINE_START (NURI ,"NURI" )
arch/arm/mach-exynos4/mach-origen.c +7 -12
@@ -37,11 +37,11 @@#include <plat/clock.h> #include <plat/gpio-cfg.h> #include <plat/backlight.h> -#include <plat/pd.h> #include <plat/fb.h> #include <plat/mfc.h> #include <mach/map.h> +#include <mach/pm-exynos4.h> /* Following are default values for UCON, ULCON and UFCON UART registers */ #define ORIGEN_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
@@ -606,13 +606,6 @@ static struct platform_device *origen_devices[] __initdata = { &s5p_device_mfc_l, &s5p_device_mfc_r, &s5p_device_mixer, - &exynos4_device_pd[PD_LCD0 ], - &exynos4_device_pd[PD_TV ], - &exynos4_device_pd[PD_G3D ], - &exynos4_device_pd[PD_LCD1 ], - &exynos4_device_pd[PD_CAM ], - &exynos4_device_pd[PD_GPS ], - &exynos4_device_pd[PD_MFC ], &origen_device_gpiokeys, &origen_lcd_hv070wsa, };
@@ -657,6 +650,8 @@ static void __init origen_reserve(void)static void __init origen_machine_init (void ) { +exynos4210_init_pm_domains (); +origen_power_init ();s3c_i2c0_set_platdata (NULL );
@@ -679,12 +674,12 @@ static void __init origen_machine_init(void)platform_add_devices (origen_devices,ARRAY_SIZE (origen_devices)); - s5p_device_fimd0.dev.parent = &exynos4_device_pd[PD_LCD0 ].dev; +exynos4_add_device_to_domain (&exynos4_pd_lcd0, &s5p_device_fimd0); - s5p_device_hdmi.dev.parent = &exynos4_device_pd[PD_TV ].dev; - s5p_device_mixer.dev.parent = &exynos4_device_pd[PD_TV ].dev; +exynos4_add_device_to_domain (&exynos4_pd_tv, &s5p_device_hdmi); +exynos4_add_device_to_domain (&exynos4_pd_tv, &s5p_device_mixer); - s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC ].dev; +exynos4_add_device_to_domain (&exynos4_pd_mfc, &s5p_device_mfc);samsung_bl_set (&origen_bl_gpio_info, &origen_bl_data); }
arch/arm/mach-exynos4/mach-smdk4x12.c +3 -0
@@ -35,6 +35,7 @@#include <plat/sdhci.h> #include <mach/map.h> +#include <mach/pm-exynos4.h> /* Following are default values for UCON, ULCON and UFCON UART registers */ #define SMDK4X12_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
@@ -256,6 +257,8 @@ static void __init smdk4x12_map_io(void)static void __init smdk4x12_machine_init (void ) { +exynos4x12_init_pm_domains (); +s3c_i2c0_set_platdata (NULL );i2c_register_board_info (0 , smdk4x12_i2c_devs0,ARRAY_SIZE (smdk4x12_i2c_devs0));
arch/arm/mach-exynos4/mach-smdkv310.c +6 -11
@@ -34,7 +34,6 @@#include <plat/keypad.h> #include <plat/sdhci.h> #include <plat/iic.h> -#include <plat/pd.h> #include <plat/gpio-cfg.h> #include <plat/backlight.h> #include <plat/mfc.h>
@@ -42,6 +41,7 @@#include <plat/clock.h> #include <mach/map.h> +#include <mach/pm-exynos4.h> /* Following are default values for UCON, ULCON and UFCON UART registers */ #define SMDKV310_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
@@ -265,13 +265,6 @@ static struct platform_device *smdkv310_devices[] __initdata = { &s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, - &exynos4_device_pd[PD_MFC ], - &exynos4_device_pd[PD_G3D ], - &exynos4_device_pd[PD_LCD0 ], - &exynos4_device_pd[PD_LCD1 ], - &exynos4_device_pd[PD_CAM ], - &exynos4_device_pd[PD_TV ], - &exynos4_device_pd[PD_GPS ], &exynos4_device_spdif, &exynos4_device_sysmmu, &samsung_asoc_dma,
@@ -326,8 +319,8 @@ static void s5p_tv_setup(void)s3c_gpio_setpull (EXYNOS4_GPX3 (7 ),S3C_GPIO_PULL_NONE );/* setup dependencies between TV devices */ - s5p_device_hdmi.dev.parent = &exynos4_device_pd[PD_TV ].dev; - s5p_device_mixer.dev.parent = &exynos4_device_pd[PD_TV ].dev; +exynos4_add_device_to_domain (&exynos4_pd_tv, &s5p_device_hdmi); +exynos4_add_device_to_domain (&exynos4_pd_tv, &s5p_device_mixer); }static void __init smdkv310_map_io (void )
@@ -344,6 +337,8 @@ static void __init smdkv310_reserve(void)static void __init smdkv310_machine_init (void ) { +exynos4210_init_pm_domains (); +s3c_i2c1_set_platdata (NULL );i2c_register_board_info (1 , i2c_devs1,ARRAY_SIZE (i2c_devs1));
@@ -366,7 +361,7 @@ static void __init smdkv310_machine_init(void) clk_xusbxti.rate =24000000 ;platform_add_devices (smdkv310_devices,ARRAY_SIZE (smdkv310_devices)); - s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC ].dev; +exynos4_add_device_to_domain (&exynos4_pd_mfc, &s5p_device_mfc); }MACHINE_START (SMDKV310 ,"SMDKV310" )
arch/arm/mach-exynos4/mach-universal_c210.c +12 -14
@@ -35,13 +35,13 @@#include <plat/fb.h> #include <plat/mfc.h> #include <plat/sdhci.h> -#include <plat/pd.h> #include <plat/regs-fb-v4.h> #include <plat/fimc-core.h> #include <plat/camport.h> #include <plat/mipi_csis.h> #include <mach/map.h> +#include <mach/pm-exynos4.h> #include <media/v4l2-mediabus.h> #include <media/s5p_fimc.h>
@@ -969,7 +969,6 @@ static struct platform_device *universal_devices[] __initdata = { &s3c_device_i2c5, &s5p_device_i2c_hdmiphy, &hdmi_fixed_voltage, - &exynos4_device_pd[PD_TV ], &s5p_device_hdmi, &s5p_device_sdo, &s5p_device_mixer,
@@ -982,9 +981,6 @@ static struct platform_device *universal_devices[] __initdata = { &s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, - &exynos4_device_pd[PD_MFC ], - &exynos4_device_pd[PD_LCD0 ], - &exynos4_device_pd[PD_CAM ], &cam_i_core_fixed_reg_dev, &cam_s_if_fixed_reg_dev, &s5p_device_fimc_md,
@@ -1007,8 +1003,8 @@ void s5p_tv_setup(void)s3c_gpio_setpull (EXYNOS4_GPX3 (7 ),S3C_GPIO_PULL_NONE );/* setup dependencies between TV devices */ - s5p_device_hdmi.dev.parent = &exynos4_device_pd[PD_TV ].dev; - s5p_device_mixer.dev.parent = &exynos4_device_pd[PD_TV ].dev; +exynos4_add_device_to_domain (&exynos4_pd_tv, &s5p_device_hdmi); +exynos4_add_device_to_domain (&exynos4_pd_tv, &s5p_device_mixer); }static void __init universal_reserve (void )
@@ -1018,6 +1014,8 @@ static void __init universal_reserve(void)static void __init universal_machine_init (void ) { +exynos4210_init_pm_domains (); +universal_sdhci_init ();s5p_tv_setup ();
@@ -1043,14 +1041,14 @@ static void __init universal_machine_init(void)/* Last */ platform_add_devices (universal_devices,ARRAY_SIZE (universal_devices)); - s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC ].dev; - s5p_device_fimd0.dev.parent = &exynos4_device_pd[PD_LCD0 ].dev; +exynos4_add_device_to_domain (&exynos4_pd_mfc, &s5p_device_mfc); +exynos4_add_device_to_domain (&exynos4_pd_lcd0, &s5p_device_fimd0); - s5p_device_fimc0.dev.parent = &exynos4_device_pd[PD_CAM ].dev; - s5p_device_fimc1.dev.parent = &exynos4_device_pd[PD_CAM ].dev; - s5p_device_fimc2.dev.parent = &exynos4_device_pd[PD_CAM ].dev; - s5p_device_fimc3.dev.parent = &exynos4_device_pd[PD_CAM ].dev; - s5p_device_mipi_csis0.dev.parent = &exynos4_device_pd[PD_CAM ].dev; +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_fimc0); +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_fimc1); +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_fimc2); +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_fimc3); +exynos4_add_device_to_domain (&exynos4_pd_cam, &s5p_device_mipi_csis0); }MACHINE_START (UNIVERSAL_C210 ,"UNIVERSAL_C210" )
Signature · 1 line
1.7.0.4