mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-01 12:22:01 +07:00
ARM: OMAP2+: common: remove mach-omap2/common.c globals and map_common_io code
Get rid of the mach-omap2/common.c globals by moving the global initialization for IP block addresses that must occur early into mach-omap2/io.c. In the process, remove the *_map_common_io*() and SoC-specific *set_globals* functions. Signed-off-by: Paul Walmsley <paul@pwsan.com> Tested-by: Vaibhav Hiremath <hvaibhav@ti.com>
This commit is contained in:
parent
76e0e16d91
commit
b6a4226c14
@ -21,5 +21,6 @@
|
|||||||
#define AM33XX_SCM_BASE 0x44E10000
|
#define AM33XX_SCM_BASE 0x44E10000
|
||||||
#define AM33XX_CTRL_BASE AM33XX_SCM_BASE
|
#define AM33XX_CTRL_BASE AM33XX_SCM_BASE
|
||||||
#define AM33XX_PRCM_BASE 0x44E00000
|
#define AM33XX_PRCM_BASE 0x44E00000
|
||||||
|
#define AM33XX_TAP_BASE (AM33XX_CTRL_BASE + 0x3FC)
|
||||||
|
|
||||||
#endif /* __ASM_ARCH_AM33XX_H */
|
#endif /* __ASM_ARCH_AM33XX_H */
|
||||||
|
@ -14,196 +14,13 @@
|
|||||||
*/
|
*/
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/clk.h>
|
|
||||||
#include <linux/io.h>
|
|
||||||
#include <linux/platform_data/dsp-omap.h>
|
#include <linux/platform_data/dsp-omap.h>
|
||||||
|
|
||||||
#include <plat/vram.h>
|
#include <plat/vram.h>
|
||||||
|
|
||||||
#include "soc.h"
|
|
||||||
#include "iomap.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "clock.h"
|
|
||||||
#include "sdrc.h"
|
|
||||||
#include "control.h"
|
|
||||||
#include "omap-secure.h"
|
#include "omap-secure.h"
|
||||||
|
|
||||||
/* Global address base setup code */
|
|
||||||
|
|
||||||
static void __init __omap2_set_globals(struct omap_globals *omap2_globals)
|
|
||||||
{
|
|
||||||
omap2_set_globals_tap(omap2_globals);
|
|
||||||
omap2_set_globals_sdrc(omap2_globals);
|
|
||||||
omap2_set_globals_control(omap2_globals);
|
|
||||||
omap2_set_globals_prcm(omap2_globals);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(CONFIG_SOC_OMAP2420)
|
|
||||||
|
|
||||||
static struct omap_globals omap242x_globals = {
|
|
||||||
.class = OMAP242X_CLASS,
|
|
||||||
.tap = OMAP2_L4_IO_ADDRESS(0x48014000),
|
|
||||||
.sdrc = OMAP2_L3_IO_ADDRESS(OMAP2420_SDRC_BASE),
|
|
||||||
.sms = OMAP2_L3_IO_ADDRESS(OMAP2420_SMS_BASE),
|
|
||||||
.ctrl = OMAP2_L4_IO_ADDRESS(OMAP242X_CTRL_BASE),
|
|
||||||
.prm = OMAP2_L4_IO_ADDRESS(OMAP2420_PRM_BASE),
|
|
||||||
.cm = OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE),
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init omap2_set_globals_242x(void)
|
|
||||||
{
|
|
||||||
__omap2_set_globals(&omap242x_globals);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init omap242x_map_io(void)
|
|
||||||
{
|
|
||||||
omap242x_map_common_io();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_SOC_OMAP2430)
|
|
||||||
|
|
||||||
static struct omap_globals omap243x_globals = {
|
|
||||||
.class = OMAP243X_CLASS,
|
|
||||||
.tap = OMAP2_L4_IO_ADDRESS(0x4900a000),
|
|
||||||
.sdrc = OMAP2_L3_IO_ADDRESS(OMAP243X_SDRC_BASE),
|
|
||||||
.sms = OMAP2_L3_IO_ADDRESS(OMAP243X_SMS_BASE),
|
|
||||||
.ctrl = OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE),
|
|
||||||
.prm = OMAP2_L4_IO_ADDRESS(OMAP2430_PRM_BASE),
|
|
||||||
.cm = OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE),
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init omap2_set_globals_243x(void)
|
|
||||||
{
|
|
||||||
__omap2_set_globals(&omap243x_globals);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init omap243x_map_io(void)
|
|
||||||
{
|
|
||||||
omap243x_map_common_io();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_ARCH_OMAP3)
|
|
||||||
|
|
||||||
static struct omap_globals omap3_globals = {
|
|
||||||
.class = OMAP343X_CLASS,
|
|
||||||
.tap = OMAP2_L4_IO_ADDRESS(0x4830A000),
|
|
||||||
.sdrc = OMAP2_L3_IO_ADDRESS(OMAP343X_SDRC_BASE),
|
|
||||||
.sms = OMAP2_L3_IO_ADDRESS(OMAP343X_SMS_BASE),
|
|
||||||
.ctrl = OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE),
|
|
||||||
.prm = OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE),
|
|
||||||
.cm = OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE),
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init omap2_set_globals_3xxx(void)
|
|
||||||
{
|
|
||||||
__omap2_set_globals(&omap3_globals);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init omap3_map_io(void)
|
|
||||||
{
|
|
||||||
omap34xx_map_common_io();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Adjust TAP register base such that omap3_check_revision accesses the correct
|
|
||||||
* TI81XX register for checking device ID (it adds 0x204 to tap base while
|
|
||||||
* TI81XX DEVICE ID register is at offset 0x600 from control base).
|
|
||||||
*/
|
|
||||||
#define TI81XX_TAP_BASE (TI81XX_CTRL_BASE + \
|
|
||||||
TI81XX_CONTROL_DEVICE_ID - 0x204)
|
|
||||||
|
|
||||||
static struct omap_globals ti81xx_globals = {
|
|
||||||
.class = OMAP343X_CLASS,
|
|
||||||
.tap = OMAP2_L4_IO_ADDRESS(TI81XX_TAP_BASE),
|
|
||||||
.ctrl = OMAP2_L4_IO_ADDRESS(TI81XX_CTRL_BASE),
|
|
||||||
.prm = OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE),
|
|
||||||
.cm = OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE),
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init omap2_set_globals_ti81xx(void)
|
|
||||||
{
|
|
||||||
__omap2_set_globals(&ti81xx_globals);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init ti81xx_map_io(void)
|
|
||||||
{
|
|
||||||
omapti81xx_map_common_io();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_SOC_AM33XX)
|
|
||||||
#define AM33XX_TAP_BASE (AM33XX_CTRL_BASE + \
|
|
||||||
TI81XX_CONTROL_DEVICE_ID - 0x204)
|
|
||||||
|
|
||||||
static struct omap_globals am33xx_globals = {
|
|
||||||
.class = AM335X_CLASS,
|
|
||||||
.tap = AM33XX_L4_WK_IO_ADDRESS(AM33XX_TAP_BASE),
|
|
||||||
.ctrl = AM33XX_L4_WK_IO_ADDRESS(AM33XX_CTRL_BASE),
|
|
||||||
.prm = AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE),
|
|
||||||
.cm = AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE),
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init omap2_set_globals_am33xx(void)
|
|
||||||
{
|
|
||||||
__omap2_set_globals(&am33xx_globals);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init am33xx_map_io(void)
|
|
||||||
{
|
|
||||||
omapam33xx_map_common_io();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_ARCH_OMAP4)
|
|
||||||
static struct omap_globals omap4_globals = {
|
|
||||||
.class = OMAP443X_CLASS,
|
|
||||||
.tap = OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE),
|
|
||||||
.ctrl = OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE),
|
|
||||||
.ctrl_pad = OMAP2_L4_IO_ADDRESS(OMAP443X_CTRL_BASE),
|
|
||||||
.prm = OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE),
|
|
||||||
.cm = OMAP2_L4_IO_ADDRESS(OMAP4430_CM_BASE),
|
|
||||||
.cm2 = OMAP2_L4_IO_ADDRESS(OMAP4430_CM2_BASE),
|
|
||||||
.prcm_mpu = OMAP2_L4_IO_ADDRESS(OMAP4430_PRCM_MPU_BASE),
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init omap2_set_globals_443x(void)
|
|
||||||
{
|
|
||||||
__omap2_set_globals(&omap4_globals);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init omap4_map_io(void)
|
|
||||||
{
|
|
||||||
omap44xx_map_common_io();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_SOC_OMAP5)
|
|
||||||
static struct omap_globals omap5_globals = {
|
|
||||||
.class = OMAP54XX_CLASS,
|
|
||||||
.tap = OMAP2_L4_IO_ADDRESS(OMAP54XX_SCM_BASE),
|
|
||||||
.ctrl = OMAP2_L4_IO_ADDRESS(OMAP54XX_SCM_BASE),
|
|
||||||
.ctrl_pad = OMAP2_L4_IO_ADDRESS(OMAP54XX_CTRL_BASE),
|
|
||||||
.prm = OMAP2_L4_IO_ADDRESS(OMAP54XX_PRM_BASE),
|
|
||||||
.cm = OMAP2_L4_IO_ADDRESS(OMAP54XX_CM_CORE_AON_BASE),
|
|
||||||
.cm2 = OMAP2_L4_IO_ADDRESS(OMAP54XX_CM_CORE_BASE),
|
|
||||||
.prcm_mpu = OMAP2_L4_IO_ADDRESS(OMAP54XX_PRCM_MPU_BASE),
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init omap2_set_globals_5xxx(void)
|
|
||||||
{
|
|
||||||
omap2_set_globals_tap(&omap5_globals);
|
|
||||||
omap2_set_globals_control(&omap5_globals);
|
|
||||||
omap2_set_globals_prcm(&omap5_globals);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init omap5_map_io(void)
|
|
||||||
{
|
|
||||||
omap5_map_common_io();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Stub function for OMAP2 so that common files
|
* Stub function for OMAP2 so that common files
|
||||||
* continue to build when custom builds are used
|
* continue to build when custom builds are used
|
||||||
|
@ -43,54 +43,6 @@
|
|||||||
|
|
||||||
#define OMAP_INTC_START NR_IRQS
|
#define OMAP_INTC_START NR_IRQS
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_OMAP2420
|
|
||||||
extern void omap242x_map_common_io(void);
|
|
||||||
#else
|
|
||||||
static inline void omap242x_map_common_io(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_OMAP2430
|
|
||||||
extern void omap243x_map_common_io(void);
|
|
||||||
#else
|
|
||||||
static inline void omap243x_map_common_io(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_OMAP3
|
|
||||||
extern void omap34xx_map_common_io(void);
|
|
||||||
#else
|
|
||||||
static inline void omap34xx_map_common_io(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_TI81XX
|
|
||||||
extern void omapti81xx_map_common_io(void);
|
|
||||||
#else
|
|
||||||
static inline void omapti81xx_map_common_io(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_AM33XX
|
|
||||||
extern void omapam33xx_map_common_io(void);
|
|
||||||
#else
|
|
||||||
static inline void omapam33xx_map_common_io(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_OMAP4
|
|
||||||
extern void omap44xx_map_common_io(void);
|
|
||||||
#else
|
|
||||||
static inline void omap44xx_map_common_io(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2)
|
#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2)
|
||||||
int omap2_pm_init(void);
|
int omap2_pm_init(void);
|
||||||
#else
|
#else
|
||||||
@ -127,14 +79,6 @@ static inline int omap_mux_late_init(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_OMAP5
|
|
||||||
extern void omap5_map_common_io(void);
|
|
||||||
#else
|
|
||||||
static inline void omap5_map_common_io(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern void omap2_init_common_infrastructure(void);
|
extern void omap2_init_common_infrastructure(void);
|
||||||
|
|
||||||
extern struct sys_timer omap2_timer;
|
extern struct sys_timer omap2_timer;
|
||||||
@ -169,50 +113,18 @@ void omap4430_init_late(void);
|
|||||||
int omap2_common_pm_late_init(void);
|
int omap2_common_pm_late_init(void);
|
||||||
void omap_prcm_restart(char, const char *);
|
void omap_prcm_restart(char, const char *);
|
||||||
|
|
||||||
/*
|
/* This gets called from mach-omap2/io.c, do not call this */
|
||||||
* IO bases for various OMAP processors
|
void __init omap2_set_globals_tap(u32 class, void __iomem *tap);
|
||||||
* Except the tap base, rest all the io bases
|
|
||||||
* listed are physical addresses.
|
|
||||||
*/
|
|
||||||
struct omap_globals {
|
|
||||||
u32 class; /* OMAP class to detect */
|
|
||||||
void __iomem *tap; /* Control module ID code */
|
|
||||||
void __iomem *sdrc; /* SDRAM Controller */
|
|
||||||
void __iomem *sms; /* SDRAM Memory Scheduler */
|
|
||||||
void __iomem *ctrl; /* System Control Module */
|
|
||||||
void __iomem *ctrl_pad; /* PAD Control Module */
|
|
||||||
void __iomem *prm; /* Power and Reset Management */
|
|
||||||
void __iomem *cm; /* Clock Management */
|
|
||||||
void __iomem *cm2;
|
|
||||||
void __iomem *prcm_mpu;
|
|
||||||
};
|
|
||||||
|
|
||||||
void omap2_set_globals_242x(void);
|
void __init omap242x_map_io(void);
|
||||||
void omap2_set_globals_243x(void);
|
void __init omap243x_map_io(void);
|
||||||
void omap2_set_globals_3xxx(void);
|
void __init omap3_map_io(void);
|
||||||
void omap2_set_globals_443x(void);
|
void __init am33xx_map_io(void);
|
||||||
void omap2_set_globals_5xxx(void);
|
void __init omap4_map_io(void);
|
||||||
void omap2_set_globals_ti81xx(void);
|
void __init omap5_map_io(void);
|
||||||
void omap2_set_globals_am33xx(void);
|
void __init ti81xx_map_io(void);
|
||||||
|
|
||||||
/* These get called from omap2_set_globals_xxxx(), do not call these */
|
/* omap_barriers_init() is OMAP4 only */
|
||||||
void omap2_set_globals_tap(struct omap_globals *);
|
|
||||||
#if defined(CONFIG_SOC_HAS_OMAP2_SDRC)
|
|
||||||
void omap2_set_globals_sdrc(struct omap_globals *);
|
|
||||||
#else
|
|
||||||
static inline void omap2_set_globals_sdrc(struct omap_globals *omap2_globals)
|
|
||||||
{ }
|
|
||||||
#endif
|
|
||||||
void omap2_set_globals_control(struct omap_globals *);
|
|
||||||
void omap2_set_globals_prcm(struct omap_globals *);
|
|
||||||
|
|
||||||
void omap242x_map_io(void);
|
|
||||||
void omap243x_map_io(void);
|
|
||||||
void omap3_map_io(void);
|
|
||||||
void am33xx_map_io(void);
|
|
||||||
void omap4_map_io(void);
|
|
||||||
void omap5_map_io(void);
|
|
||||||
void ti81xx_map_io(void);
|
|
||||||
void omap_barriers_init(void);
|
void omap_barriers_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -147,13 +147,11 @@ static struct omap3_control_regs control_context;
|
|||||||
#define OMAP_CTRL_REGADDR(reg) (omap2_ctrl_base + (reg))
|
#define OMAP_CTRL_REGADDR(reg) (omap2_ctrl_base + (reg))
|
||||||
#define OMAP4_CTRL_PAD_REGADDR(reg) (omap4_ctrl_pad_base + (reg))
|
#define OMAP4_CTRL_PAD_REGADDR(reg) (omap4_ctrl_pad_base + (reg))
|
||||||
|
|
||||||
void __init omap2_set_globals_control(struct omap_globals *omap2_globals)
|
void __init omap2_set_globals_control(void __iomem *ctrl,
|
||||||
|
void __iomem *ctrl_pad)
|
||||||
{
|
{
|
||||||
if (omap2_globals->ctrl)
|
omap2_ctrl_base = ctrl;
|
||||||
omap2_ctrl_base = omap2_globals->ctrl;
|
omap4_ctrl_pad_base = ctrl_pad;
|
||||||
|
|
||||||
if (omap2_globals->ctrl_pad)
|
|
||||||
omap4_ctrl_pad_base = omap2_globals->ctrl_pad;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __iomem *omap_ctrl_base_get(void)
|
void __iomem *omap_ctrl_base_get(void)
|
||||||
|
@ -414,6 +414,8 @@ extern void omap_ctrl_write_dsp_boot_addr(u32 bootaddr);
|
|||||||
extern void omap_ctrl_write_dsp_boot_mode(u8 bootmode);
|
extern void omap_ctrl_write_dsp_boot_mode(u8 bootmode);
|
||||||
extern void omap3630_ctrl_disable_rta(void);
|
extern void omap3630_ctrl_disable_rta(void);
|
||||||
extern int omap3_ctrl_save_padconf(void);
|
extern int omap3_ctrl_save_padconf(void);
|
||||||
|
extern void omap2_set_globals_control(void __iomem *ctrl,
|
||||||
|
void __iomem *ctrl_pad);
|
||||||
#else
|
#else
|
||||||
#define omap_ctrl_base_get() 0
|
#define omap_ctrl_base_get() 0
|
||||||
#define omap_ctrl_readb(x) 0
|
#define omap_ctrl_readb(x) 0
|
||||||
|
@ -559,11 +559,12 @@ void __init omap5xxx_check_revision(void)
|
|||||||
* detect the exact revision later on in omap2_detect_revision() once map_io
|
* detect the exact revision later on in omap2_detect_revision() once map_io
|
||||||
* is done.
|
* is done.
|
||||||
*/
|
*/
|
||||||
void __init omap2_set_globals_tap(struct omap_globals *omap2_globals)
|
void __init omap2_set_globals_tap(u32 class, void __iomem *tap)
|
||||||
{
|
{
|
||||||
omap_revision = omap2_globals->class;
|
omap_revision = class;
|
||||||
tap_base = omap2_globals->tap;
|
tap_base = tap;
|
||||||
|
|
||||||
|
/* XXX What is this intended to do? */
|
||||||
if (cpu_is_omap34xx())
|
if (cpu_is_omap34xx())
|
||||||
tap_prod_id = 0x0210;
|
tap_prod_id = 0x0210;
|
||||||
else
|
else
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include <plat-omap/dma-omap.h>
|
#include <plat-omap/dma-omap.h>
|
||||||
|
|
||||||
#include "../plat-omap/sram.h"
|
#include "../plat-omap/sram.h"
|
||||||
|
#include <plat/prcm.h>
|
||||||
|
|
||||||
#include "omap_hwmod.h"
|
#include "omap_hwmod.h"
|
||||||
#include "soc.h"
|
#include "soc.h"
|
||||||
@ -42,6 +43,7 @@
|
|||||||
#include "clock44xx.h"
|
#include "clock44xx.h"
|
||||||
#include "omap-pm.h"
|
#include "omap-pm.h"
|
||||||
#include "sdrc.h"
|
#include "sdrc.h"
|
||||||
|
#include "control.h"
|
||||||
#include "serial.h"
|
#include "serial.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -265,7 +267,7 @@ static struct map_desc omap54xx_io_desc[] __initdata = {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_OMAP2420
|
#ifdef CONFIG_SOC_OMAP2420
|
||||||
void __init omap242x_map_common_io(void)
|
void __init omap242x_map_io(void)
|
||||||
{
|
{
|
||||||
iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc));
|
iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc));
|
||||||
iotable_init(omap242x_io_desc, ARRAY_SIZE(omap242x_io_desc));
|
iotable_init(omap242x_io_desc, ARRAY_SIZE(omap242x_io_desc));
|
||||||
@ -273,7 +275,7 @@ void __init omap242x_map_common_io(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_OMAP2430
|
#ifdef CONFIG_SOC_OMAP2430
|
||||||
void __init omap243x_map_common_io(void)
|
void __init omap243x_map_io(void)
|
||||||
{
|
{
|
||||||
iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc));
|
iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc));
|
||||||
iotable_init(omap243x_io_desc, ARRAY_SIZE(omap243x_io_desc));
|
iotable_init(omap243x_io_desc, ARRAY_SIZE(omap243x_io_desc));
|
||||||
@ -281,28 +283,28 @@ void __init omap243x_map_common_io(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_OMAP3
|
#ifdef CONFIG_ARCH_OMAP3
|
||||||
void __init omap34xx_map_common_io(void)
|
void __init omap3_map_io(void)
|
||||||
{
|
{
|
||||||
iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc));
|
iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_TI81XX
|
#ifdef CONFIG_SOC_TI81XX
|
||||||
void __init omapti81xx_map_common_io(void)
|
void __init ti81xx_map_io(void)
|
||||||
{
|
{
|
||||||
iotable_init(omapti81xx_io_desc, ARRAY_SIZE(omapti81xx_io_desc));
|
iotable_init(omapti81xx_io_desc, ARRAY_SIZE(omapti81xx_io_desc));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_AM33XX
|
#ifdef CONFIG_SOC_AM33XX
|
||||||
void __init omapam33xx_map_common_io(void)
|
void __init am33xx_map_io(void)
|
||||||
{
|
{
|
||||||
iotable_init(omapam33xx_io_desc, ARRAY_SIZE(omapam33xx_io_desc));
|
iotable_init(omapam33xx_io_desc, ARRAY_SIZE(omapam33xx_io_desc));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_OMAP4
|
#ifdef CONFIG_ARCH_OMAP4
|
||||||
void __init omap44xx_map_common_io(void)
|
void __init omap4_map_io(void)
|
||||||
{
|
{
|
||||||
iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc));
|
iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc));
|
||||||
omap_barriers_init();
|
omap_barriers_init();
|
||||||
@ -310,7 +312,7 @@ void __init omap44xx_map_common_io(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_OMAP5
|
#ifdef CONFIG_SOC_OMAP5
|
||||||
void __init omap5_map_common_io(void)
|
void __init omap5_map_io(void)
|
||||||
{
|
{
|
||||||
iotable_init(omap54xx_io_desc, ARRAY_SIZE(omap54xx_io_desc));
|
iotable_init(omap54xx_io_desc, ARRAY_SIZE(omap54xx_io_desc));
|
||||||
}
|
}
|
||||||
@ -377,7 +379,14 @@ static void __init omap_hwmod_init_postsetup(void)
|
|||||||
#ifdef CONFIG_SOC_OMAP2420
|
#ifdef CONFIG_SOC_OMAP2420
|
||||||
void __init omap2420_init_early(void)
|
void __init omap2420_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_set_globals_242x();
|
omap2_set_globals_tap(OMAP242X_CLASS, OMAP2_L4_IO_ADDRESS(0x48014000));
|
||||||
|
omap2_set_globals_sdrc(OMAP2_L3_IO_ADDRESS(OMAP2420_SDRC_BASE),
|
||||||
|
OMAP2_L3_IO_ADDRESS(OMAP2420_SMS_BASE));
|
||||||
|
omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP242X_CTRL_BASE),
|
||||||
|
NULL);
|
||||||
|
omap2_set_globals_prcm(OMAP2_L4_IO_ADDRESS(OMAP2420_PRM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE),
|
||||||
|
NULL, NULL);
|
||||||
omap2xxx_check_revision();
|
omap2xxx_check_revision();
|
||||||
omap_common_init_early();
|
omap_common_init_early();
|
||||||
omap2xxx_voltagedomains_init();
|
omap2xxx_voltagedomains_init();
|
||||||
@ -399,7 +408,14 @@ void __init omap2420_init_late(void)
|
|||||||
#ifdef CONFIG_SOC_OMAP2430
|
#ifdef CONFIG_SOC_OMAP2430
|
||||||
void __init omap2430_init_early(void)
|
void __init omap2430_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_set_globals_243x();
|
omap2_set_globals_tap(OMAP243X_CLASS, OMAP2_L4_IO_ADDRESS(0x4900a000));
|
||||||
|
omap2_set_globals_sdrc(OMAP2_L3_IO_ADDRESS(OMAP243X_SDRC_BASE),
|
||||||
|
OMAP2_L3_IO_ADDRESS(OMAP243X_SMS_BASE));
|
||||||
|
omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE),
|
||||||
|
NULL);
|
||||||
|
omap2_set_globals_prcm(OMAP2_L4_IO_ADDRESS(OMAP2430_PRM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE),
|
||||||
|
NULL, NULL);
|
||||||
omap2xxx_check_revision();
|
omap2xxx_check_revision();
|
||||||
omap_common_init_early();
|
omap_common_init_early();
|
||||||
omap2xxx_voltagedomains_init();
|
omap2xxx_voltagedomains_init();
|
||||||
@ -425,7 +441,14 @@ void __init omap2430_init_late(void)
|
|||||||
#ifdef CONFIG_ARCH_OMAP3
|
#ifdef CONFIG_ARCH_OMAP3
|
||||||
void __init omap3_init_early(void)
|
void __init omap3_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_set_globals_3xxx();
|
omap2_set_globals_tap(OMAP343X_CLASS, OMAP2_L4_IO_ADDRESS(0x4830A000));
|
||||||
|
omap2_set_globals_sdrc(OMAP2_L3_IO_ADDRESS(OMAP343X_SDRC_BASE),
|
||||||
|
OMAP2_L3_IO_ADDRESS(OMAP343X_SMS_BASE));
|
||||||
|
omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE),
|
||||||
|
NULL);
|
||||||
|
omap2_set_globals_prcm(OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE),
|
||||||
|
NULL, NULL);
|
||||||
omap3xxx_check_revision();
|
omap3xxx_check_revision();
|
||||||
omap3xxx_check_features();
|
omap3xxx_check_features();
|
||||||
omap_common_init_early();
|
omap_common_init_early();
|
||||||
@ -459,7 +482,13 @@ void __init am35xx_init_early(void)
|
|||||||
|
|
||||||
void __init ti81xx_init_early(void)
|
void __init ti81xx_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_set_globals_ti81xx();
|
omap2_set_globals_tap(OMAP343X_CLASS,
|
||||||
|
OMAP2_L4_IO_ADDRESS(TI81XX_TAP_BASE));
|
||||||
|
omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(TI81XX_CTRL_BASE),
|
||||||
|
NULL);
|
||||||
|
omap2_set_globals_prcm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE),
|
||||||
|
NULL, NULL);
|
||||||
omap3xxx_check_revision();
|
omap3xxx_check_revision();
|
||||||
ti81xx_check_features();
|
ti81xx_check_features();
|
||||||
omap_common_init_early();
|
omap_common_init_early();
|
||||||
@ -517,7 +546,13 @@ void __init ti81xx_init_late(void)
|
|||||||
#ifdef CONFIG_SOC_AM33XX
|
#ifdef CONFIG_SOC_AM33XX
|
||||||
void __init am33xx_init_early(void)
|
void __init am33xx_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_set_globals_am33xx();
|
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_prcm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE),
|
||||||
|
AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE),
|
||||||
|
NULL, NULL);
|
||||||
omap3xxx_check_revision();
|
omap3xxx_check_revision();
|
||||||
ti81xx_check_features();
|
ti81xx_check_features();
|
||||||
omap_common_init_early();
|
omap_common_init_early();
|
||||||
@ -533,7 +568,14 @@ void __init am33xx_init_early(void)
|
|||||||
#ifdef CONFIG_ARCH_OMAP4
|
#ifdef CONFIG_ARCH_OMAP4
|
||||||
void __init omap4430_init_early(void)
|
void __init omap4430_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_set_globals_443x();
|
omap2_set_globals_tap(OMAP443X_CLASS,
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE));
|
||||||
|
omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP443X_CTRL_BASE));
|
||||||
|
omap2_set_globals_prcm(OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP4430_CM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP4430_CM2_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP4430_PRCM_MPU_BASE));
|
||||||
omap4xxx_check_revision();
|
omap4xxx_check_revision();
|
||||||
omap4xxx_check_features();
|
omap4xxx_check_features();
|
||||||
omap_common_init_early();
|
omap_common_init_early();
|
||||||
@ -556,7 +598,14 @@ void __init omap4430_init_late(void)
|
|||||||
#ifdef CONFIG_SOC_OMAP5
|
#ifdef CONFIG_SOC_OMAP5
|
||||||
void __init omap5_init_early(void)
|
void __init omap5_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_set_globals_5xxx();
|
omap2_set_globals_tap(OMAP54XX_CLASS,
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP54XX_SCM_BASE));
|
||||||
|
omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP54XX_SCM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP54XX_CTRL_BASE));
|
||||||
|
omap2_set_globals_prcm(OMAP2_L4_IO_ADDRESS(OMAP54XX_PRM_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP54XX_CM_CORE_AON_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP54XX_CM_CORE_BASE),
|
||||||
|
OMAP2_L4_IO_ADDRESS(OMAP54XX_PRCM_MPU_BASE));
|
||||||
omap5xxx_check_revision();
|
omap5xxx_check_revision();
|
||||||
omap_common_init_early();
|
omap_common_init_early();
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include "omap-wakeupgen.h"
|
#include "omap-wakeupgen.h"
|
||||||
#include "soc.h"
|
#include "soc.h"
|
||||||
|
#include "iomap.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "mmc.h"
|
#include "mmc.h"
|
||||||
#include "hsmmc.h"
|
#include "hsmmc.h"
|
||||||
|
@ -137,16 +137,13 @@ int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, u8 idlest,
|
|||||||
return (i < MAX_MODULE_ENABLE_WAIT) ? 1 : 0;
|
return (i < MAX_MODULE_ENABLE_WAIT) ? 1 : 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init omap2_set_globals_prcm(struct omap_globals *omap2_globals)
|
void __init omap2_set_globals_prcm(void __iomem *prm, void __iomem *cm,
|
||||||
|
void __iomem *cm2, void __iomem *prcm_mpu)
|
||||||
{
|
{
|
||||||
if (omap2_globals->prm)
|
prm_base = prm;
|
||||||
prm_base = omap2_globals->prm;
|
cm_base = cm;
|
||||||
if (omap2_globals->cm)
|
cm2_base = cm2;
|
||||||
cm_base = omap2_globals->cm;
|
prcm_mpu_base = prcm_mpu;
|
||||||
if (omap2_globals->cm2)
|
|
||||||
cm2_base = omap2_globals->cm2;
|
|
||||||
if (omap2_globals->prcm_mpu)
|
|
||||||
prcm_mpu_base = omap2_globals->prcm_mpu;
|
|
||||||
|
|
||||||
if (cpu_is_omap44xx() || soc_is_omap54xx()) {
|
if (cpu_is_omap44xx() || soc_is_omap54xx()) {
|
||||||
omap_prm_base_init();
|
omap_prm_base_init();
|
||||||
|
@ -114,12 +114,10 @@ int omap2_sdrc_get_params(unsigned long r,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void __init omap2_set_globals_sdrc(struct omap_globals *omap2_globals)
|
void __init omap2_set_globals_sdrc(void __iomem *sdrc, void __iomem *sms)
|
||||||
{
|
{
|
||||||
if (omap2_globals->sdrc)
|
omap2_sdrc_base = sdrc;
|
||||||
omap2_sdrc_base = omap2_globals->sdrc;
|
omap2_sms_base = sms;
|
||||||
if (omap2_globals->sms)
|
|
||||||
omap2_sms_base = omap2_globals->sms;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -51,6 +51,8 @@ static inline u32 sms_read_reg(u16 reg)
|
|||||||
return __raw_readl(OMAP_SMS_REGADDR(reg));
|
return __raw_readl(OMAP_SMS_REGADDR(reg));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern void omap2_set_globals_sdrc(void __iomem *sdrc, void __iomem *sms);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct omap_sdrc_params - SDRC parameters for a given SDRC clock rate
|
* struct omap_sdrc_params - SDRC parameters for a given SDRC clock rate
|
||||||
|
@ -22,6 +22,15 @@
|
|||||||
#define TI81XX_CTRL_BASE TI81XX_SCM_BASE
|
#define TI81XX_CTRL_BASE TI81XX_SCM_BASE
|
||||||
#define TI81XX_PRCM_BASE 0x48180000
|
#define TI81XX_PRCM_BASE 0x48180000
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Adjust TAP register base such that omap3_check_revision accesses the correct
|
||||||
|
* TI81XX register for checking device ID (it adds 0x204 to tap base while
|
||||||
|
* TI81XX DEVICE ID register is at offset 0x600 from control base).
|
||||||
|
*/
|
||||||
|
#define TI81XX_TAP_BASE (TI81XX_CTRL_BASE + \
|
||||||
|
TI81XX_CONTROL_DEVICE_ID - 0x204)
|
||||||
|
|
||||||
|
|
||||||
#define TI81XX_ARM_INTC_BASE 0x48200000
|
#define TI81XX_ARM_INTC_BASE 0x48200000
|
||||||
|
|
||||||
#endif /* __ASM_ARCH_TI81XX_H */
|
#endif /* __ASM_ARCH_TI81XX_H */
|
||||||
|
@ -27,8 +27,13 @@
|
|||||||
#ifndef __ASM_ARM_ARCH_OMAP_PRCM_H
|
#ifndef __ASM_ARM_ARCH_OMAP_PRCM_H
|
||||||
#define __ASM_ARM_ARCH_OMAP_PRCM_H
|
#define __ASM_ARM_ARCH_OMAP_PRCM_H
|
||||||
|
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/io.h>
|
||||||
|
|
||||||
int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, u8 idlest,
|
int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, u8 idlest,
|
||||||
const char *name);
|
const char *name);
|
||||||
|
void __init omap2_set_globals_prcm(void __iomem *prm, void __iomem *cm,
|
||||||
|
void __iomem *cm2, void __iomem *prcm_mpu);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user