]> Git Repo - linux.git/commitdiff
Merge tag 'omap-for-v3.8/cleanup-headers-prepare-multiplatform-v3-signed' of git...
authorArnd Bergmann <[email protected]>
Mon, 12 Nov 2012 21:53:22 +0000 (22:53 +0100)
committerArnd Bergmann <[email protected]>
Mon, 12 Nov 2012 21:53:22 +0000 (22:53 +0100)
From Tony Lindgren <[email protected]>:

These changes deal with the issues of relative includes
introduced by the earlier clean-up and clean up few more
things for enabling multiplatform support.

The multiplatform kernel has been booted on omaps on
top of this branch with the work-in-progress patches
applied manually.

We cannot yet enable the multiplatform support though.
We still need the common clock framework patches, some
solution for dma-omap.h, and serial-omap.h moved before
we can enable it.

* tag 'omap-for-v3.8/cleanup-headers-prepare-multiplatform-v3-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP: Remove omap_init_consistent_dma_size()
  ARM: OMAP: Remove NEED_MACH_GPIO_H
  ARM: OMAP: Remove unnecessary mach and plat includes
  ARM: OMAP2+: Fix relative includes for serial.h
  ARM: OMAP: Fix relative includes for fpga.h
  ARM: OMAP1: Remove relative includes
  ARM: OMAP: Remove cpu_is_omap usage from plat-omap/dma.c
  ARM: OMAP: Fix relative includes for debug-devices.h
  ARM: OMAP: Remove plat-omap/common.h
  ARM: OMAP: Move omap-pm-noop.c local to mach-omap2
  ARM: OMAP: Fix relative includes for shared i2c.h file
  ARM: OMAP: Make plat-omap/i2c.c port checks local
  ARM: OMAP: Move omap2+ specific parts of sram.c to mach-omap2
  ARM: OMAP: Move omap1 specific code to local sram.c
  ARM: OMAP: Introduce common omap_map_sram() and omap_sram_reset()
  ARM: OMAP: Split sram.h to local headers and minimal shared header
  ARM: OMAP1: usb: fix sparse warnings

Conflicts:
arch/arm/mach-omap2/cm33xx.c

Signed-off-by: Arnd Bergmann <[email protected]>
1  2 
arch/arm/mach-omap1/common.h
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/cm33xx.c
arch/arm/mach-omap2/pm24xx.c
arch/arm/mach-omap2/pm34xx.c
arch/arm/mach-omap2/prm33xx.c
arch/arm/mach-omap2/prm_common.c
arch/arm/mach-omap2/sdrc2xxx.c
arch/arm/mach-omap2/sleep34xx.S

index d6ac18d04da7ae3f091003695957e4d8816c47fc,fc8c9449eba8360e489651115e18a3003b4bbf7e..dab2e102b9d70c6f2931c4d5750020fed3ff6b59
  #ifndef __ARCH_ARM_MACH_OMAP1_COMMON_H
  #define __ARCH_ARM_MACH_OMAP1_COMMON_H
  
- #include "../plat-omap/common.h"
  #include <linux/mtd/mtd.h>
  #include <linux/i2c-omap.h>
  
- #include "../plat-omap/i2c.h"
+ #include <plat/i2c.h>
  
  #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
  void omap7xx_map_io(void);
@@@ -94,6 -93,4 +93,6 @@@ extern int ocpi_enable(void)
  static inline int ocpi_enable(void) { return 0; }
  #endif
  
 +extern int omap1_get_reset_sources(void);
 +
  #endif /* __ARCH_ARM_MACH_OMAP1_COMMON_H */
index ae87a3ea53aefd4d2ff014cca295dfe2301aaf91,b118ed5f61a9007754fccf3e7772a6acc8174e41..c94d495b8d95b4cb63223822ba5c35ef2378cc95
@@@ -5,36 -5,30 +5,36 @@@
  # Common support
  obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer.o pm.o \
         common.o gpio.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \
-        omap_device.o
+        omap_device.o sram.o
  
 -# INTCPS IP block support - XXX should be moved to drivers/
 -obj-$(CONFIG_ARCH_OMAP2)              += irq.o
 -obj-$(CONFIG_ARCH_OMAP3)              += irq.o
 -obj-$(CONFIG_SOC_AM33XX)              += irq.o
 -
 -# Secure monitor API support
 -obj-$(CONFIG_ARCH_OMAP3)              += omap-smc.o omap-secure.o
 -obj-$(CONFIG_ARCH_OMAP4)              += omap-smc.o omap-secure.o
 -obj-$(CONFIG_SOC_OMAP5)                       += omap-smc.o omap-secure.o
 +omap-2-3-common                               = irq.o
 +hwmod-common                          = omap_hwmod.o \
 +                                        omap_hwmod_common_data.o
 +clock-common                          = clock.o clock_common_data.o \
 +                                        clkt_dpll.o clkt_clksel.o
 +secure-common                         = omap-smc.o omap-secure.o
 +
 +obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common)
 +obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common)
 +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)
  
  ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),)
  obj-y += mcbsp.o
  endif
  
 -obj-$(CONFIG_TWL4030_CORE)            += omap_twl.o
 +obj-$(CONFIG_TWL4030_CORE) += omap_twl.o
 +obj-$(CONFIG_SOC_HAS_OMAP2_SDRC)      += sdrc.o
  
  # SMP support ONLY available for OMAP4
  
  obj-$(CONFIG_SMP)                     += omap-smp.o omap-headsmp.o
  obj-$(CONFIG_HOTPLUG_CPU)             += omap-hotplug.o
 -obj-$(CONFIG_ARCH_OMAP4)              += omap4-common.o omap-wakeupgen.o
 -obj-$(CONFIG_SOC_OMAP5)                       += omap4-common.o omap-wakeupgen.o
 +omap-4-5-common                               =  omap4-common.o omap-wakeupgen.o \
 +                                         sleep44xx.o
 +obj-$(CONFIG_ARCH_OMAP4)              += $(omap-4-5-common)
 +obj-$(CONFIG_SOC_OMAP5)                       += $(omap-4-5-common)
  
  plus_sec := $(call as-instr,.arch_extension sec,+sec)
  AFLAGS_omap-headsmp.o                 :=-Wa,-march=armv7-a$(plus_sec)
@@@ -59,6 -53,7 +59,6 @@@ obj-$(CONFIG_ARCH_OMAP4)              += mux44xx.
  # SMS/SDRC
  obj-$(CONFIG_ARCH_OMAP2)              += sdrc2xxx.o
  # obj-$(CONFIG_ARCH_OMAP3)            += sdrc3xxx.o
 -obj-$(CONFIG_SOC_HAS_OMAP2_SDRC)      += sdrc.o
  
  # OPP table initialization
  ifeq ($(CONFIG_PM_OPP),y)
@@@ -69,15 -64,16 +69,16 @@@ endi
  
  # Power Management
  ifeq ($(CONFIG_PM),y)
 -obj-$(CONFIG_ARCH_OMAP2)              += pm24xx.o sleep24xx.o
 +obj-$(CONFIG_ARCH_OMAP2)              += pm24xx.o
 +obj-$(CONFIG_ARCH_OMAP2)              += sleep24xx.o
  obj-$(CONFIG_ARCH_OMAP3)              += pm34xx.o sleep34xx.o
  obj-$(CONFIG_ARCH_OMAP4)              += pm44xx.o omap-mpuss-lowpower.o
 -obj-$(CONFIG_ARCH_OMAP4)              += sleep44xx.o
 -obj-$(CONFIG_SOC_OMAP5)                       += omap-mpuss-lowpower.o sleep44xx.o
 +obj-$(CONFIG_SOC_OMAP5)                       += omap-mpuss-lowpower.o
  obj-$(CONFIG_PM_DEBUG)                        += pm-debug.o
+ obj-$(CONFIG_OMAP_PM_NOOP)            += omap-pm-noop.o
  
  obj-$(CONFIG_POWER_AVS_OMAP)          += sr_device.o
 -obj-$(CONFIG_POWER_AVS_OMAP_CLASS3)   += smartreflex-class3.o
 +obj-$(CONFIG_POWER_AVS_OMAP_CLASS3)    += smartreflex-class3.o
  
  AFLAGS_sleep24xx.o                    :=-Wa,-march=armv6
  AFLAGS_sleep34xx.o                    :=-Wa,-march=armv7-a$(plus_sec)
@@@ -89,82 -85,76 +90,82 @@@ endi
  endif
  
  ifeq ($(CONFIG_CPU_IDLE),y)
 -obj-$(CONFIG_ARCH_OMAP3)              += cpuidle34xx.o
 -obj-$(CONFIG_ARCH_OMAP4)              += cpuidle44xx.o
 +obj-$(CONFIG_ARCH_OMAP3)                += cpuidle34xx.o
 +obj-$(CONFIG_ARCH_OMAP4)                += cpuidle44xx.o
  endif
  
  # PRCM
 -obj-y                                 += prcm.o prm_common.o
 -obj-$(CONFIG_ARCH_OMAP2)              += cm2xxx_3xxx.o prm2xxx_3xxx.o
 -obj-$(CONFIG_ARCH_OMAP3)              += cm2xxx_3xxx.o prm2xxx_3xxx.o
 +obj-y                                 += prcm.o prm_common.o cm_common.o
 +obj-$(CONFIG_ARCH_OMAP2)              += prm2xxx_3xxx.o prm2xxx.o cm2xxx.o
 +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
  omap-prcm-4-5-common                  =  cminst44xx.o cm44xx.o prm44xx.o \
                                           prcm_mpu44xx.o prminst44xx.o \
 -                                         vc44xx_data.o vp44xx_data.o \
 -                                         prm44xx.o
 +                                         vc44xx_data.o vp44xx_data.o
  obj-$(CONFIG_ARCH_OMAP4)              += $(omap-prcm-4-5-common)
  obj-$(CONFIG_SOC_OMAP5)                       += $(omap-prcm-4-5-common)
  
  # OMAP voltage domains
 -obj-y                                 += voltage.o vc.o vp.o
 +voltagedomain-common                  := voltage.o vc.o vp.o
 +obj-$(CONFIG_ARCH_OMAP2)              += $(voltagedomain-common)
  obj-$(CONFIG_ARCH_OMAP2)              += voltagedomains2xxx_data.o
 +obj-$(CONFIG_ARCH_OMAP3)              += $(voltagedomain-common)
  obj-$(CONFIG_ARCH_OMAP3)              += voltagedomains3xxx_data.o
 +obj-$(CONFIG_ARCH_OMAP4)              += $(voltagedomain-common)
  obj-$(CONFIG_ARCH_OMAP4)              += voltagedomains44xx_data.o
 -obj-$(CONFIG_SOC_AM33XX)              += voltagedomains33xx_data.o
 +obj-$(CONFIG_SOC_AM33XX)              += $(voltagedomain-common)
 +obj-$(CONFIG_SOC_AM33XX)                += voltagedomains33xx_data.o
 +obj-$(CONFIG_SOC_OMAP5)                       += $(voltagedomain-common)
  
  # OMAP powerdomain framework
 -obj-y                                 += powerdomain.o powerdomain-common.o
 +powerdomain-common                    += powerdomain.o powerdomain-common.o
 +obj-$(CONFIG_ARCH_OMAP2)              += $(powerdomain-common)
  obj-$(CONFIG_ARCH_OMAP2)              += powerdomains2xxx_data.o
 -obj-$(CONFIG_ARCH_OMAP2)              += powerdomain2xxx_3xxx.o
  obj-$(CONFIG_ARCH_OMAP2)              += powerdomains2xxx_3xxx_data.o
 -obj-$(CONFIG_ARCH_OMAP3)              += powerdomain2xxx_3xxx.o
 +obj-$(CONFIG_ARCH_OMAP3)              += $(powerdomain-common)
  obj-$(CONFIG_ARCH_OMAP3)              += powerdomains3xxx_data.o
  obj-$(CONFIG_ARCH_OMAP3)              += powerdomains2xxx_3xxx_data.o
 -obj-$(CONFIG_ARCH_OMAP4)              += powerdomain44xx.o
 +obj-$(CONFIG_ARCH_OMAP4)              += $(powerdomain-common)
  obj-$(CONFIG_ARCH_OMAP4)              += powerdomains44xx_data.o
 -obj-$(CONFIG_SOC_AM33XX)              += powerdomain33xx.o
 +obj-$(CONFIG_SOC_AM33XX)              += $(powerdomain-common)
  obj-$(CONFIG_SOC_AM33XX)              += powerdomains33xx_data.o
 -obj-$(CONFIG_SOC_OMAP5)                       += powerdomain44xx.o
 +obj-$(CONFIG_SOC_OMAP5)                       += $(powerdomain-common)
  
  # PRCM clockdomain control
 -obj-y                                 += clockdomain.o
 -obj-$(CONFIG_ARCH_OMAP2)              += clockdomain2xxx_3xxx.o
 +clockdomain-common                    += clockdomain.o
 +obj-$(CONFIG_ARCH_OMAP2)              += $(clockdomain-common)
  obj-$(CONFIG_ARCH_OMAP2)              += clockdomains2xxx_3xxx_data.o
  obj-$(CONFIG_SOC_OMAP2420)            += clockdomains2420_data.o
  obj-$(CONFIG_SOC_OMAP2430)            += clockdomains2430_data.o
 -obj-$(CONFIG_ARCH_OMAP3)              += clockdomain2xxx_3xxx.o
 +obj-$(CONFIG_ARCH_OMAP3)              += $(clockdomain-common)
  obj-$(CONFIG_ARCH_OMAP3)              += clockdomains2xxx_3xxx_data.o
  obj-$(CONFIG_ARCH_OMAP3)              += clockdomains3xxx_data.o
 -obj-$(CONFIG_ARCH_OMAP4)              += clockdomain44xx.o
 +obj-$(CONFIG_ARCH_OMAP4)              += $(clockdomain-common)
  obj-$(CONFIG_ARCH_OMAP4)              += clockdomains44xx_data.o
 -obj-$(CONFIG_SOC_AM33XX)              += clockdomain33xx.o
 +obj-$(CONFIG_SOC_AM33XX)              += $(clockdomain-common)
  obj-$(CONFIG_SOC_AM33XX)              += clockdomains33xx_data.o
 -obj-$(CONFIG_SOC_OMAP5)                       += clockdomain44xx.o
 +obj-$(CONFIG_SOC_OMAP5)                       += $(clockdomain-common)
  
  # Clock framework
 -obj-y                                 += clock.o clock_common_data.o \
 -                                         clkt_dpll.o clkt_clksel.o
 -obj-$(CONFIG_ARCH_OMAP2)              += clock2xxx.o
 -obj-$(CONFIG_ARCH_OMAP2)              += clkt2xxx_dpllcore.o clkt2xxx_sys.o
 +obj-$(CONFIG_ARCH_OMAP2)              += $(clock-common) clock2xxx.o
 +obj-$(CONFIG_ARCH_OMAP2)              += clkt2xxx_sys.o
 +obj-$(CONFIG_ARCH_OMAP2)              += clkt2xxx_dpllcore.o
  obj-$(CONFIG_ARCH_OMAP2)              += clkt2xxx_virt_prcm_set.o
  obj-$(CONFIG_ARCH_OMAP2)              += clkt2xxx_apll.o clkt2xxx_osc.o
  obj-$(CONFIG_ARCH_OMAP2)              += clkt2xxx_dpll.o clkt_iclk.o
  obj-$(CONFIG_SOC_OMAP2420)            += clock2420_data.o
  obj-$(CONFIG_SOC_OMAP2430)            += clock2430.o clock2430_data.o
 -obj-$(CONFIG_ARCH_OMAP3)              += clock3xxx.o
 +obj-$(CONFIG_ARCH_OMAP3)              += $(clock-common) clock3xxx.o
  obj-$(CONFIG_ARCH_OMAP3)              += clock34xx.o clkt34xx_dpll3m2.o
 -obj-$(CONFIG_ARCH_OMAP3)              += clock3517.o clock36xx.o clkt_iclk.o
 +obj-$(CONFIG_ARCH_OMAP3)              += clock3517.o clock36xx.o
  obj-$(CONFIG_ARCH_OMAP3)              += dpll3xxx.o clock3xxx_data.o
 -obj-$(CONFIG_ARCH_OMAP4)              += clock44xx_data.o
 +obj-$(CONFIG_ARCH_OMAP3)              += clkt_iclk.o
 +obj-$(CONFIG_ARCH_OMAP4)              += $(clock-common) clock44xx_data.o
  obj-$(CONFIG_ARCH_OMAP4)              += dpll3xxx.o dpll44xx.o
 -obj-$(CONFIG_SOC_AM33XX)              += dpll3xxx.o clock33xx_data.o
 +obj-$(CONFIG_SOC_AM33XX)              += $(clock-common) dpll3xxx.o
 +obj-$(CONFIG_SOC_AM33XX)              += clock33xx_data.o
 +obj-$(CONFIG_SOC_OMAP5)                       += $(clock-common)
  obj-$(CONFIG_SOC_OMAP5)                       += dpll3xxx.o dpll44xx.o
  
  # OMAP2 clock rate set data (old "OPP" data)
@@@ -172,6 -162,7 +173,6 @@@ obj-$(CONFIG_SOC_OMAP2420)         += opp2420_
  obj-$(CONFIG_SOC_OMAP2430)            += opp2430_data.o
  
  # hwmod data
 -obj-y                                 += omap_hwmod_common_data.o
  obj-$(CONFIG_SOC_OMAP2420)            += omap_hwmod_2xxx_ipblock_data.o
  obj-$(CONFIG_SOC_OMAP2420)            += omap_hwmod_2xxx_3xxx_ipblock_data.o
  obj-$(CONFIG_SOC_OMAP2420)            += omap_hwmod_2xxx_interconnect_data.o
@@@ -217,10 -208,10 +218,10 @@@ obj-$(CONFIG_MACH_OMAP_H4)              += board-h4
  obj-$(CONFIG_MACH_OMAP_2430SDP)               += board-2430sdp.o
  obj-$(CONFIG_MACH_OMAP_APOLLON)               += board-apollon.o
  obj-$(CONFIG_MACH_OMAP3_BEAGLE)               += board-omap3beagle.o
 -obj-$(CONFIG_MACH_DEVKIT8000)         += board-devkit8000.o
 +obj-$(CONFIG_MACH_DEVKIT8000)         += board-devkit8000.o
  obj-$(CONFIG_MACH_OMAP_LDP)           += board-ldp.o
 -obj-$(CONFIG_MACH_OMAP3530_LV_SOM)    += board-omap3logic.o
 -obj-$(CONFIG_MACH_OMAP3_TORPEDO)      += board-omap3logic.o
 +obj-$(CONFIG_MACH_OMAP3530_LV_SOM)      += board-omap3logic.o
 +obj-$(CONFIG_MACH_OMAP3_TORPEDO)        += board-omap3logic.o
  obj-$(CONFIG_MACH_ENCORE)             += board-omap3encore.o
  obj-$(CONFIG_MACH_OVERO)              += board-overo.o
  obj-$(CONFIG_MACH_OMAP3EVM)           += board-omap3evm.o
index b2dfcd777194119463d3e82e110f026ac489033c,ed8dcaf4c849288a3d98a60bfb32d613a3b698f6..058ce3c0873ecb7aa0f4356d4d596c152aea5f03
@@@ -22,9 -22,6 +22,7 @@@
  #include <linux/err.h>
  #include <linux/io.h>
  
- #include "../plat-omap/common.h"
 +#include "clockdomain.h"
  #include "cm.h"
  #include "cm33xx.h"
  #include "cm-regbits-34xx.h"
@@@ -312,58 -309,3 +310,58 @@@ void am33xx_cm_module_disable(u16 inst
        v &= ~AM33XX_MODULEMODE_MASK;
        am33xx_cm_write_reg(v, inst, clkctrl_offs);
  }
 +
 +/*
 + * Clockdomain low-level functions
 + */
 +
 +static int am33xx_clkdm_sleep(struct clockdomain *clkdm)
 +{
 +      am33xx_cm_clkdm_force_sleep(clkdm->cm_inst, clkdm->clkdm_offs);
 +      return 0;
 +}
 +
 +static int am33xx_clkdm_wakeup(struct clockdomain *clkdm)
 +{
 +      am33xx_cm_clkdm_force_wakeup(clkdm->cm_inst, clkdm->clkdm_offs);
 +      return 0;
 +}
 +
 +static void am33xx_clkdm_allow_idle(struct clockdomain *clkdm)
 +{
 +      am33xx_cm_clkdm_enable_hwsup(clkdm->cm_inst, clkdm->clkdm_offs);
 +}
 +
 +static void am33xx_clkdm_deny_idle(struct clockdomain *clkdm)
 +{
 +      am33xx_cm_clkdm_disable_hwsup(clkdm->cm_inst, clkdm->clkdm_offs);
 +}
 +
 +static int am33xx_clkdm_clk_enable(struct clockdomain *clkdm)
 +{
 +      if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)
 +              return am33xx_clkdm_wakeup(clkdm);
 +
 +      return 0;
 +}
 +
 +static int am33xx_clkdm_clk_disable(struct clockdomain *clkdm)
 +{
 +      bool hwsup = false;
 +
 +      hwsup = am33xx_cm_is_clkdm_in_hwsup(clkdm->cm_inst, clkdm->clkdm_offs);
 +
 +      if (!hwsup && (clkdm->flags & CLKDM_CAN_FORCE_SLEEP))
 +              am33xx_clkdm_sleep(clkdm);
 +
 +      return 0;
 +}
 +
 +struct clkdm_ops am33xx_clkdm_operations = {
 +      .clkdm_sleep            = am33xx_clkdm_sleep,
 +      .clkdm_wakeup           = am33xx_clkdm_wakeup,
 +      .clkdm_allow_idle       = am33xx_clkdm_allow_idle,
 +      .clkdm_deny_idle        = am33xx_clkdm_deny_idle,
 +      .clkdm_clk_enable       = am33xx_clkdm_clk_enable,
 +      .clkdm_clk_disable      = am33xx_clkdm_clk_disable,
 +};
index 83815ddc47866daef00a93696a9796a949c906e1,9a2f5594a7dc937533f868e69d1915e8f9c2aec8..13e1f4303989aeca16241e79637e62f9c429d497
@@@ -31,6 -31,8 +31,8 @@@
  #include <linux/gpio.h>
  #include <linux/platform_data/gpio-omap.h>
  
+ #include <asm/fncpy.h>
  #include <asm/mach/time.h>
  #include <asm/mach/irq.h>
  #include <asm/mach-types.h>
  
  #include <plat-omap/dma-omap.h>
  
- #include "../plat-omap/sram.h"
  #include "soc.h"
  #include "common.h"
  #include "clock.h"
 -#include "prm2xxx_3xxx.h"
 +#include "prm2xxx.h"
  #include "prm-regbits-24xx.h"
 -#include "cm2xxx_3xxx.h"
 +#include "cm2xxx.h"
  #include "cm-regbits-24xx.h"
  #include "sdrc.h"
+ #include "sram.h"
  #include "pm.h"
  #include "control.h"
  #include "powerdomain.h"
index 2f1ad87c1bb076a2b1b124f493479446766e744d,4c85762107bdefc57b08907f92a6df1e0391fbc2..b16caea312ed16be86cd37ce146c812fdf6ac6af
@@@ -32,6 -32,7 +32,7 @@@
  
  #include <trace/events/power.h>
  
+ #include <asm/fncpy.h>
  #include <asm/suspend.h>
  #include <asm/system_misc.h>
  
  #include <plat/prcm.h>
  #include <plat-omap/dma-omap.h>
  
- #include "../plat-omap/sram.h"
  #include "soc.h"
  #include "common.h"
 -#include "cm2xxx_3xxx.h"
 +#include "cm3xxx.h"
  #include "cm-regbits-34xx.h"
  #include "gpmc.h"
  #include "prm-regbits-34xx.h"
 -
 -#include "prm2xxx_3xxx.h"
 +#include "prm3xxx.h"
  #include "pm.h"
  #include "sdrc.h"
+ #include "sram.h"
  #include "control.h"
  
  /* pm34xx errata defined in pm.h */
index 53ec9cbaa3d3577ba40e6afd0952dd60f487076a,0d8abb5776690b16a343ef538730f710346ba607..1ac73883f8913c5894aff5f5267222c9f35343ee
  #include <linux/err.h>
  #include <linux/io.h>
  
- #include "../plat-omap/common.h"
  #include "common.h"
 +#include "powerdomain.h"
  #include "prm33xx.h"
  #include "prm-regbits-33xx.h"
  
@@@ -134,204 -131,3 +132,204 @@@ int am33xx_prm_deassert_hardreset(u8 sh
  
        return (c == MAX_MODULE_HARDRESET_WAIT) ? -EBUSY : 0;
  }
 +
 +static int am33xx_pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst)
 +{
 +      am33xx_prm_rmw_reg_bits(OMAP_POWERSTATE_MASK,
 +                              (pwrst << OMAP_POWERSTATE_SHIFT),
 +                              pwrdm->prcm_offs, pwrdm->pwrstctrl_offs);
 +      return 0;
 +}
 +
 +static int am33xx_pwrdm_read_next_pwrst(struct powerdomain *pwrdm)
 +{
 +      u32 v;
 +
 +      v = am33xx_prm_read_reg(pwrdm->prcm_offs,  pwrdm->pwrstctrl_offs);
 +      v &= OMAP_POWERSTATE_MASK;
 +      v >>= OMAP_POWERSTATE_SHIFT;
 +
 +      return v;
 +}
 +
 +static int am33xx_pwrdm_read_pwrst(struct powerdomain *pwrdm)
 +{
 +      u32 v;
 +
 +      v = am33xx_prm_read_reg(pwrdm->prcm_offs, pwrdm->pwrstst_offs);
 +      v &= OMAP_POWERSTATEST_MASK;
 +      v >>= OMAP_POWERSTATEST_SHIFT;
 +
 +      return v;
 +}
 +
 +static int am33xx_pwrdm_read_prev_pwrst(struct powerdomain *pwrdm)
 +{
 +      u32 v;
 +
 +      v = am33xx_prm_read_reg(pwrdm->prcm_offs, pwrdm->pwrstst_offs);
 +      v &= AM33XX_LASTPOWERSTATEENTERED_MASK;
 +      v >>= AM33XX_LASTPOWERSTATEENTERED_SHIFT;
 +
 +      return v;
 +}
 +
 +static int am33xx_pwrdm_set_lowpwrstchange(struct powerdomain *pwrdm)
 +{
 +      am33xx_prm_rmw_reg_bits(AM33XX_LOWPOWERSTATECHANGE_MASK,
 +                              (1 << AM33XX_LOWPOWERSTATECHANGE_SHIFT),
 +                              pwrdm->prcm_offs, pwrdm->pwrstctrl_offs);
 +      return 0;
 +}
 +
 +static int am33xx_pwrdm_clear_all_prev_pwrst(struct powerdomain *pwrdm)
 +{
 +      am33xx_prm_rmw_reg_bits(AM33XX_LASTPOWERSTATEENTERED_MASK,
 +                              AM33XX_LASTPOWERSTATEENTERED_MASK,
 +                              pwrdm->prcm_offs, pwrdm->pwrstst_offs);
 +      return 0;
 +}
 +
 +static int am33xx_pwrdm_set_logic_retst(struct powerdomain *pwrdm, u8 pwrst)
 +{
 +      u32 m;
 +
 +      m = pwrdm->logicretstate_mask;
 +      if (!m)
 +              return -EINVAL;
 +
 +      am33xx_prm_rmw_reg_bits(m, (pwrst << __ffs(m)),
 +                              pwrdm->prcm_offs, pwrdm->pwrstctrl_offs);
 +
 +      return 0;
 +}
 +
 +static int am33xx_pwrdm_read_logic_pwrst(struct powerdomain *pwrdm)
 +{
 +      u32 v;
 +
 +      v = am33xx_prm_read_reg(pwrdm->prcm_offs, pwrdm->pwrstst_offs);
 +      v &= AM33XX_LOGICSTATEST_MASK;
 +      v >>= AM33XX_LOGICSTATEST_SHIFT;
 +
 +      return v;
 +}
 +
 +static int am33xx_pwrdm_read_logic_retst(struct powerdomain *pwrdm)
 +{
 +      u32 v, m;
 +
 +      m = pwrdm->logicretstate_mask;
 +      if (!m)
 +              return -EINVAL;
 +
 +      v = am33xx_prm_read_reg(pwrdm->prcm_offs, pwrdm->pwrstctrl_offs);
 +      v &= m;
 +      v >>= __ffs(m);
 +
 +      return v;
 +}
 +
 +static int am33xx_pwrdm_set_mem_onst(struct powerdomain *pwrdm, u8 bank,
 +              u8 pwrst)
 +{
 +      u32 m;
 +
 +      m = pwrdm->mem_on_mask[bank];
 +      if (!m)
 +              return -EINVAL;
 +
 +      am33xx_prm_rmw_reg_bits(m, (pwrst << __ffs(m)),
 +                              pwrdm->prcm_offs, pwrdm->pwrstctrl_offs);
 +
 +      return 0;
 +}
 +
 +static int am33xx_pwrdm_set_mem_retst(struct powerdomain *pwrdm, u8 bank,
 +                                      u8 pwrst)
 +{
 +      u32 m;
 +
 +      m = pwrdm->mem_ret_mask[bank];
 +      if (!m)
 +              return -EINVAL;
 +
 +      am33xx_prm_rmw_reg_bits(m, (pwrst << __ffs(m)),
 +                              pwrdm->prcm_offs, pwrdm->pwrstctrl_offs);
 +
 +      return 0;
 +}
 +
 +static int am33xx_pwrdm_read_mem_pwrst(struct powerdomain *pwrdm, u8 bank)
 +{
 +      u32 m, v;
 +
 +      m = pwrdm->mem_pwrst_mask[bank];
 +      if (!m)
 +              return -EINVAL;
 +
 +      v = am33xx_prm_read_reg(pwrdm->prcm_offs, pwrdm->pwrstst_offs);
 +      v &= m;
 +      v >>= __ffs(m);
 +
 +      return v;
 +}
 +
 +static int am33xx_pwrdm_read_mem_retst(struct powerdomain *pwrdm, u8 bank)
 +{
 +      u32 m, v;
 +
 +      m = pwrdm->mem_retst_mask[bank];
 +      if (!m)
 +              return -EINVAL;
 +
 +      v = am33xx_prm_read_reg(pwrdm->prcm_offs, pwrdm->pwrstctrl_offs);
 +      v &= m;
 +      v >>= __ffs(m);
 +
 +      return v;
 +}
 +
 +static int am33xx_pwrdm_wait_transition(struct powerdomain *pwrdm)
 +{
 +      u32 c = 0;
 +
 +      /*
 +       * REVISIT: pwrdm_wait_transition() may be better implemented
 +       * via a callback and a periodic timer check -- how long do we expect
 +       * powerdomain transitions to take?
 +       */
 +
 +      /* XXX Is this udelay() value meaningful? */
 +      while ((am33xx_prm_read_reg(pwrdm->prcm_offs, pwrdm->pwrstst_offs)
 +                      & OMAP_INTRANSITION_MASK) &&
 +                      (c++ < PWRDM_TRANSITION_BAILOUT))
 +              udelay(1);
 +
 +      if (c > PWRDM_TRANSITION_BAILOUT) {
 +              pr_err("powerdomain: %s: waited too long to complete transition\n",
 +                     pwrdm->name);
 +              return -EAGAIN;
 +      }
 +
 +      pr_debug("powerdomain: completed transition in %d loops\n", c);
 +
 +      return 0;
 +}
 +
 +struct pwrdm_ops am33xx_pwrdm_operations = {
 +      .pwrdm_set_next_pwrst           = am33xx_pwrdm_set_next_pwrst,
 +      .pwrdm_read_next_pwrst          = am33xx_pwrdm_read_next_pwrst,
 +      .pwrdm_read_pwrst               = am33xx_pwrdm_read_pwrst,
 +      .pwrdm_read_prev_pwrst          = am33xx_pwrdm_read_prev_pwrst,
 +      .pwrdm_set_logic_retst          = am33xx_pwrdm_set_logic_retst,
 +      .pwrdm_read_logic_pwrst         = am33xx_pwrdm_read_logic_pwrst,
 +      .pwrdm_read_logic_retst         = am33xx_pwrdm_read_logic_retst,
 +      .pwrdm_clear_all_prev_pwrst     = am33xx_pwrdm_clear_all_prev_pwrst,
 +      .pwrdm_set_lowpwrstchange       = am33xx_pwrdm_set_lowpwrstchange,
 +      .pwrdm_read_mem_pwrst           = am33xx_pwrdm_read_mem_pwrst,
 +      .pwrdm_read_mem_retst           = am33xx_pwrdm_read_mem_retst,
 +      .pwrdm_set_mem_onst             = am33xx_pwrdm_set_mem_onst,
 +      .pwrdm_set_mem_retst            = am33xx_pwrdm_set_mem_retst,
 +      .pwrdm_wait_transition          = am33xx_pwrdm_wait_transition,
 +};
index 6c595798c5c528f202ba6d3898242793a8f14c9f,3442227d3f0b2501cc155e6a9ac2afacb641d1d0..945b4ad6ab84c4605ee7d4cdcdd1fac512035824
  #include <linux/interrupt.h>
  #include <linux/slab.h>
  
- #include "../plat-omap/common.h"
  #include <plat/prcm.h>
  
  #include "prm2xxx_3xxx.h"
 +#include "prm2xxx.h"
 +#include "prm3xxx.h"
  #include "prm44xx.h"
  
  /*
@@@ -55,13 -52,6 +54,13 @@@ static struct irq_chip_generic **prcm_i
   */
  static struct omap_prcm_irq_setup *prcm_irq_setup;
  
 +/*
 + * prm_ll_data: function pointers to SoC-specific implementations of
 + * common PRM functions
 + */
 +static struct prm_ll_data null_prm_ll_data;
 +static struct prm_ll_data *prm_ll_data = &null_prm_ll_data;
 +
  /* Private functions */
  
  /*
@@@ -328,71 -318,64 +327,71 @@@ err
        return -ENOMEM;
  }
  
 -/*
 - * Stubbed functions so that common files continue to build when
 - * custom builds are used
 - * XXX These are temporary and should be removed at the earliest possible
 - * opportunity
 +/**
 + * prm_read_reset_sources - return the sources of the SoC's last reset
 + *
 + * Return a u32 bitmask representing the reset sources that caused the
 + * SoC to reset.  The low-level per-SoC functions called by this
 + * function remap the SoC-specific reset source bits into an
 + * OMAP-common set of reset source bits, defined in
 + * arch/arm/mach-omap2/prm.h.  Returns the standardized reset source
 + * u32 bitmask from the hardware upon success, or returns (1 <<
 + * OMAP_UNKNOWN_RST_SRC_ID_SHIFT) if no low-level read_reset_sources()
 + * function was registered.
   */
 -u32 __weak omap2_prm_read_mod_reg(s16 module, u16 idx)
 +u32 prm_read_reset_sources(void)
  {
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
 -      return 0;
 -}
 +      u32 ret = 1 << OMAP_UNKNOWN_RST_SRC_ID_SHIFT;
  
 -void __weak omap2_prm_write_mod_reg(u32 val, s16 module, u16 idx)
 -{
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
 -}
 +      if (prm_ll_data->read_reset_sources)
 +              ret = prm_ll_data->read_reset_sources();
 +      else
 +              WARN_ONCE(1, "prm: %s: no mapping function defined for reset sources\n", __func__);
  
 -u32 __weak omap2_prm_rmw_mod_reg_bits(u32 mask, u32 bits,
 -              s16 module, s16 idx)
 -{
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
 -      return 0;
 +      return ret;
  }
  
 -u32 __weak omap2_prm_set_mod_reg_bits(u32 bits, s16 module, s16 idx)
 +/**
 + * prm_register - register per-SoC low-level data with the PRM
 + * @pld: low-level per-SoC OMAP PRM data & function pointers to register
 + *
 + * Register per-SoC low-level OMAP PRM data and function pointers with
 + * the OMAP PRM common interface.  The caller must keep the data
 + * pointed to by @pld valid until it calls prm_unregister() and
 + * it returns successfully.  Returns 0 upon success, -EINVAL if @pld
 + * is NULL, or -EEXIST if prm_register() has already been called
 + * without an intervening prm_unregister().
 + */
 +int prm_register(struct prm_ll_data *pld)
  {
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
 -      return 0;
 -}
 +      if (!pld)
 +              return -EINVAL;
  
 -u32 __weak omap2_prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx)
 -{
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
 -      return 0;
 -}
 +      if (prm_ll_data != &null_prm_ll_data)
 +              return -EEXIST;
  
 -u32 __weak omap2_prm_read_mod_bits_shift(s16 domain, s16 idx, u32 mask)
 -{
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
 -      return 0;
 -}
 +      prm_ll_data = pld;
  
 -int __weak omap2_prm_is_hardreset_asserted(s16 prm_mod, u8 shift)
 -{
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
        return 0;
  }
  
 -int __weak omap2_prm_assert_hardreset(s16 prm_mod, u8 shift)
 +/**
 + * prm_unregister - unregister per-SoC low-level data & function pointers
 + * @pld: low-level per-SoC OMAP PRM data & function pointers to unregister
 + *
 + * Unregister per-SoC low-level OMAP PRM data and function pointers
 + * that were previously registered with prm_register().  The
 + * caller may not destroy any of the data pointed to by @pld until
 + * this function returns successfully.  Returns 0 upon success, or
 + * -EINVAL if @pld is NULL or if @pld does not match the struct
 + * prm_ll_data * previously registered by prm_register().
 + */
 +int prm_unregister(struct prm_ll_data *pld)
  {
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
 -      return 0;
 -}
 +      if (!pld || prm_ll_data != pld)
 +              return -EINVAL;
 +
 +      prm_ll_data = &null_prm_ll_data;
  
 -int __weak omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift,
 -                                              u8 st_shift)
 -{
 -      WARN(1, "prm: omap2xxx/omap3xxx specific function called on non-omap2xxx/3xxx\n");
        return 0;
  }
 -
index 26c1728e09ca2a7f0ff816aa6ee5b593b37af775,20cc950db4de54e4eae3a1f4bb75649eb8326a2d..90729171464300a908f522730e3572a3d64e5683
  #include <linux/clk.h>
  #include <linux/io.h>
  
- #include "../plat-omap/sram.h"
  #include "soc.h"
  #include "iomap.h"
  #include "common.h"
 -#include "prm2xxx_3xxx.h"
 +#include "prm2xxx.h"
  #include "clock.h"
  #include "sdrc.h"
+ #include "sram.h"
  
  /* Memory timing, DLL mode flags */
  #define M_DDR         1
index 474dba7263e3efc5606f29b79d2e4886f765ea32,7046c3c671810b16f1a44d8c929e8590efa1e18e..d1dedc8195ed2569508e0d522301bdf535aefda8
  
  #include <asm/assembler.h>
  
- #include "../plat-omap/sram.h"
  #include "omap34xx.h"
  #include "iomap.h"
 -#include "cm2xxx_3xxx.h"
 -#include "prm2xxx_3xxx.h"
 +#include "cm3xxx.h"
 +#include "prm3xxx.h"
  #include "sdrc.h"
+ #include "sram.h"
  #include "control.h"
  
  /*
This page took 0.098227 seconds and 4 git commands to generate.