]> Pileus Git - ~andy/linux/commitdiff
Merge branch 'omap/pm-voltdomain-cleanup' into next/soc
authorArnd Bergmann <arnd@arndb.de>
Thu, 20 Jun 2013 15:35:16 +0000 (17:35 +0200)
committerArnd Bergmann <arnd@arndb.de>
Thu, 20 Jun 2013 15:35:16 +0000 (17:35 +0200)
Conflicts:
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/io.c

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
1  2 
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/powerdomain.h
arch/arm/mach-omap2/voltage.h

index f8bc62fd48fb53dac91ed656207f280ceaafc8db,a4f1d2a78d986196ac3fa97fc0dd7bf37c8b96ba..ec2e128074d8a9e9a5b8afb4156d30162cf09fcc
@@@ -22,7 -22,6 +22,7 @@@ obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-
  obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common) $(secure-common)
  obj-$(CONFIG_SOC_AM33XX) += irq.o $(hwmod-common)
  obj-$(CONFIG_SOC_OMAP5)        += prm44xx.o $(hwmod-common) $(secure-common)
 +obj-$(CONFIG_SOC_AM43XX) += $(hwmod-common) $(secure-common)
  
  ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),)
  obj-y += mcbsp.o
@@@ -39,7 -38,6 +39,7 @@@ omap-4-5-common                               =  omap4-common.o om
                                           sleep44xx.o
  obj-$(CONFIG_ARCH_OMAP4)              += $(omap-4-5-common) $(smp-y)
  obj-$(CONFIG_SOC_OMAP5)                       += $(omap-4-5-common) $(smp-y)
 +obj-$(CONFIG_SOC_AM43XX)              += $(omap-4-5-common)
  
  plus_sec := $(call as-instr,.arch_extension sec,+sec)
  AFLAGS_omap-headsmp.o                 :=-Wa,-march=armv7-a$(plus_sec)
@@@ -60,8 -58,6 +60,8 @@@ obj-$(CONFIG_SOC_OMAP2420)            += omap2-re
  obj-$(CONFIG_SOC_OMAP2430)            += omap2-restart.o
  obj-$(CONFIG_SOC_AM33XX)              += am33xx-restart.o
  obj-$(CONFIG_ARCH_OMAP3)              += omap3-restart.o
 +obj-$(CONFIG_ARCH_OMAP4)              += omap4-restart.o
 +obj-$(CONFIG_SOC_OMAP5)                       += omap4-restart.o
  
  # Pin multiplexing
  obj-$(CONFIG_SOC_OMAP2420)            += mux2420.o
@@@ -114,7 -110,6 +114,7 @@@ obj-$(CONFIG_ARCH_OMAP2)           += prm2xxx_3x
  obj-$(CONFIG_ARCH_OMAP3)              += prm2xxx_3xxx.o prm3xxx.o cm3xxx.o
  obj-$(CONFIG_ARCH_OMAP3)              += vc3xxx_data.o vp3xxx_data.o
  obj-$(CONFIG_SOC_AM33XX)              += prm33xx.o cm33xx.o
 +obj-$(CONFIG_SOC_AM43XX)              += prm33xx.o cm33xx.o
  omap-prcm-4-5-common                  =  cminst44xx.o cm44xx.o prm44xx.o \
                                           prcm_mpu44xx.o prminst44xx.o \
                                           vc44xx_data.o vp44xx_data.o
@@@ -130,10 -125,7 +130,9 @@@ obj-$(CONFIG_ARCH_OMAP3)          += voltagedom
  obj-$(CONFIG_ARCH_OMAP4)              += $(voltagedomain-common)
  obj-$(CONFIG_ARCH_OMAP4)              += voltagedomains44xx_data.o
  obj-$(CONFIG_SOC_AM33XX)              += $(voltagedomain-common)
- obj-$(CONFIG_SOC_AM33XX)                += voltagedomains33xx_data.o
 +obj-$(CONFIG_SOC_AM43XX)              += $(voltagedomain-common)
  obj-$(CONFIG_SOC_OMAP5)                       += $(voltagedomain-common)
 +obj-$(CONFIG_SOC_OMAP5)                += voltagedomains54xx_data.o
  
  # OMAP powerdomain framework
  powerdomain-common                    += powerdomain.o powerdomain-common.o
@@@ -147,9 -139,7 +146,9 @@@ obj-$(CONFIG_ARCH_OMAP4)           += $(powerdom
  obj-$(CONFIG_ARCH_OMAP4)              += powerdomains44xx_data.o
  obj-$(CONFIG_SOC_AM33XX)              += $(powerdomain-common)
  obj-$(CONFIG_SOC_AM33XX)              += powerdomains33xx_data.o
 +obj-$(CONFIG_SOC_AM43XX)              += $(powerdomain-common)
  obj-$(CONFIG_SOC_OMAP5)                       += $(powerdomain-common)
 +obj-$(CONFIG_SOC_OMAP5)                       += powerdomains54xx_data.o
  
  # PRCM clockdomain control
  clockdomain-common                    += clockdomain.o
@@@ -164,9 -154,7 +163,9 @@@ obj-$(CONFIG_ARCH_OMAP4)           += $(clockdom
  obj-$(CONFIG_ARCH_OMAP4)              += clockdomains44xx_data.o
  obj-$(CONFIG_SOC_AM33XX)              += $(clockdomain-common)
  obj-$(CONFIG_SOC_AM33XX)              += clockdomains33xx_data.o
 +obj-$(CONFIG_SOC_AM43XX)              += $(clockdomain-common)
  obj-$(CONFIG_SOC_OMAP5)                       += $(clockdomain-common)
 +obj-$(CONFIG_SOC_OMAP5)                       += clockdomains54xx_data.o
  
  # Clock framework
  obj-$(CONFIG_ARCH_OMAP2)              += $(clock-common) clock2xxx.o
@@@ -209,7 -197,6 +208,7 @@@ obj-$(CONFIG_ARCH_OMAP3)           += omap_hwmod
  obj-$(CONFIG_ARCH_OMAP3)              += omap_hwmod_3xxx_data.o
  obj-$(CONFIG_SOC_AM33XX)              += omap_hwmod_33xx_data.o
  obj-$(CONFIG_ARCH_OMAP4)              += omap_hwmod_44xx_data.o
 +obj-$(CONFIG_SOC_OMAP5)                       += omap_hwmod_54xx_data.o
  
  # EMU peripherals
  obj-$(CONFIG_OMAP3_EMU)                       += emu.o
diff --combined arch/arm/mach-omap2/io.c
index dd0f23d0085b717852db2f3e7c179a19280c46b8,50b93df458469847ae0b195e4f1388b8ba0af4f0..fe3253a100e740c92688f374557d2470ed6494cb
@@@ -202,7 -202,7 +202,7 @@@ static struct map_desc omapti81xx_io_de
  };
  #endif
  
 -#ifdef CONFIG_SOC_AM33XX
 +#if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
  static struct map_desc omapam33xx_io_desc[] __initdata = {
        {
                .virtual        = L4_34XX_VIRT,
@@@ -318,7 -318,7 +318,7 @@@ void __init ti81xx_map_io(void
  }
  #endif
  
 -#ifdef CONFIG_SOC_AM33XX
 +#if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
  void __init am33xx_map_io(void)
  {
        iotable_init(omapam33xx_io_desc, ARRAY_SIZE(omapam33xx_io_desc));
@@@ -576,8 -576,7 +576,7 @@@ void __init am33xx_init_early(void
        omap2_set_globals_prm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE));
        omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE), NULL);
        omap3xxx_check_revision();
 -      ti81xx_check_features();
 +      am33xx_check_features();
-       am33xx_voltagedomains_init();
        am33xx_powerdomains_init();
        am33xx_clockdomains_init();
        am33xx_hwmod_init();
  }
  #endif
  
 +#ifdef CONFIG_SOC_AM43XX
 +void __init am43xx_init_early(void)
 +{
 +      omap2_set_globals_tap(AM335X_CLASS,
 +                            AM33XX_L4_WK_IO_ADDRESS(AM33XX_TAP_BASE));
 +      omap2_set_globals_control(AM33XX_L4_WK_IO_ADDRESS(AM33XX_CTRL_BASE),
 +                                NULL);
 +      omap2_set_globals_prm(AM33XX_L4_WK_IO_ADDRESS(AM43XX_PRCM_BASE));
 +      omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM43XX_PRCM_BASE), NULL);
 +      omap3xxx_check_revision();
 +}
 +#endif
 +
  #ifdef CONFIG_ARCH_OMAP4
  void __init omap4430_init_early(void)
  {
@@@ -644,13 -630,7 +643,13 @@@ void __init omap5_init_early(void
        omap2_set_globals_prcm_mpu(OMAP2_L4_IO_ADDRESS(OMAP54XX_PRCM_MPU_BASE));
        omap_prm_base_init();
        omap_cm_base_init();
 +      omap44xx_prm_init();
        omap5xxx_check_revision();
 +      omap54xx_voltagedomains_init();
 +      omap54xx_powerdomains_init();
 +      omap54xx_clockdomains_init();
 +      omap54xx_hwmod_init();
 +      omap_hwmod_init_postsetup();
  }
  #endif
  
index 3d82f5035aad5072085224fc662e519ecce1c323,9701ad5778b9b20e26af797406ca587c46b96d2b..e4d7bd6f94b89bda9e20f9e80ed46116d03b1338
@@@ -166,6 -166,7 +166,7 @@@ struct powerdomain 
   * @pwrdm_disable_hdwr_sar: Disable Hardware Save-Restore feature for a pd
   * @pwrdm_set_lowpwrstchange: Enable pd transitions from a shallow to deep sleep
   * @pwrdm_wait_transition: Wait for a pd state transition to complete
+  * @pwrdm_has_voltdm: Check if a voltdm association is needed
   *
   * Regarding @pwrdm_set_lowpwrstchange: On the OMAP2 and 3-family
   * chips, a powerdomain's power state is not allowed to directly
@@@ -196,6 -197,7 +197,7 @@@ struct pwrdm_ops 
        int     (*pwrdm_disable_hdwr_sar)(struct powerdomain *pwrdm);
        int     (*pwrdm_set_lowpwrstchange)(struct powerdomain *pwrdm);
        int     (*pwrdm_wait_transition)(struct powerdomain *pwrdm);
+       int     (*pwrdm_has_voltdm)(void);
  };
  
  int pwrdm_register_platform_funcs(struct pwrdm_ops *custom_funcs);
@@@ -253,7 -255,6 +255,7 @@@ extern void omap243x_powerdomains_init(
  extern void omap3xxx_powerdomains_init(void);
  extern void am33xx_powerdomains_init(void);
  extern void omap44xx_powerdomains_init(void);
 +extern void omap54xx_powerdomains_init(void);
  
  extern struct pwrdm_ops omap2_pwrdm_operations;
  extern struct pwrdm_ops omap3_pwrdm_operations;
index 5998eed3a2d2d13943cda2059f5e54abc1ab4a76,9bf796df1b9e149b47f2dee6609c7240d5a263dd..f7f2879b31b0218b7c9d20a08cc4d2d73e09bb20
@@@ -169,9 -169,7 +169,8 @@@ int omap_voltage_late_init(void)
  
  extern void omap2xxx_voltagedomains_init(void);
  extern void omap3xxx_voltagedomains_init(void);
- extern void am33xx_voltagedomains_init(void);
  extern void omap44xx_voltagedomains_init(void);
 +extern void omap54xx_voltagedomains_init(void);
  
  struct voltagedomain *voltdm_lookup(const char *name);
  void voltdm_init(struct voltagedomain **voltdm_list);