mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 01:31:44 +00:00
[OMAP850] Add base support for omap850 cpu
Add base support for omap850 cpu. Signed-off-by: Zebediah C. McClure <zmc@lurian.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
6b0147cda6
commit
ae302f4006
@ -38,6 +38,7 @@ static struct omap_id omap_ids[] __initdata = {
|
||||
{ .jtag_id = 0xb574, .die_rev = 0x2, .omap_id = 0x03310315, .type = 0x03100000},
|
||||
{ .jtag_id = 0x355f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300100},
|
||||
{ .jtag_id = 0xb55f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300300},
|
||||
{ .jtag_id = 0xb55f, .die_rev = 0x0, .omap_id = 0x03320500, .type = 0x08500000},
|
||||
{ .jtag_id = 0xb470, .die_rev = 0x0, .omap_id = 0x03310100, .type = 0x15100000},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x16100000},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x2, .omap_id = 0x03320100, .type = 0x16110000},
|
||||
@ -77,7 +78,7 @@ static u16 __init omap_get_jtag_id(void)
|
||||
prod_id = omap_readl(OMAP_PRODUCTION_ID_1);
|
||||
omap_id = omap_readl(OMAP32_ID_1);
|
||||
|
||||
/* Check for unusable OMAP_PRODUCTION_ID_1 on 1611B/5912 and 730 */
|
||||
/* Check for unusable OMAP_PRODUCTION_ID_1 on 1611B/5912 and 730/850 */
|
||||
if (((prod_id >> 20) == 0) || (prod_id == omap_id))
|
||||
prod_id = 0;
|
||||
else
|
||||
@ -178,6 +179,7 @@ void __init omap_check_revision(void)
|
||||
|
||||
switch (cpu_type) {
|
||||
case 0x07:
|
||||
case 0x08:
|
||||
omap_revision |= 0x07;
|
||||
break;
|
||||
case 0x03:
|
||||
|
@ -56,6 +56,14 @@ unsigned int omap_rev(void);
|
||||
# define OMAP_NAME omap730
|
||||
# endif
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP850
|
||||
# ifdef OMAP_NAME
|
||||
# undef MULTI_OMAP1
|
||||
# define MULTI_OMAP1
|
||||
# else
|
||||
# define OMAP_NAME omap850
|
||||
# endif
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP15XX
|
||||
# ifdef OMAP_NAME
|
||||
# undef MULTI_OMAP1
|
||||
@ -105,7 +113,7 @@ unsigned int omap_rev(void);
|
||||
/*
|
||||
* Macros to group OMAP into cpu classes.
|
||||
* These can be used in most places.
|
||||
* cpu_is_omap7xx(): True for OMAP730
|
||||
* cpu_is_omap7xx(): True for OMAP730, OMAP850
|
||||
* cpu_is_omap15xx(): True for OMAP1510, OMAP5910 and OMAP310
|
||||
* cpu_is_omap16xx(): True for OMAP1610, OMAP5912 and OMAP1710
|
||||
* cpu_is_omap24xx(): True for OMAP2420, OMAP2422, OMAP2423, OMAP2430
|
||||
@ -153,6 +161,10 @@ IS_OMAP_SUBCLASS(343x, 0x343)
|
||||
# undef cpu_is_omap7xx
|
||||
# define cpu_is_omap7xx() is_omap7xx()
|
||||
# endif
|
||||
# if defined(CONFIG_ARCH_OMAP850)
|
||||
# undef cpu_is_omap7xx
|
||||
# define cpu_is_omap7xx() is_omap7xx()
|
||||
# endif
|
||||
# if defined(CONFIG_ARCH_OMAP15XX)
|
||||
# undef cpu_is_omap15xx
|
||||
# define cpu_is_omap15xx() is_omap15xx()
|
||||
@ -166,6 +178,10 @@ IS_OMAP_SUBCLASS(343x, 0x343)
|
||||
# undef cpu_is_omap7xx
|
||||
# define cpu_is_omap7xx() 1
|
||||
# endif
|
||||
# if defined(CONFIG_ARCH_OMAP850)
|
||||
# undef cpu_is_omap7xx
|
||||
# define cpu_is_omap7xx() 1
|
||||
# endif
|
||||
# if defined(CONFIG_ARCH_OMAP15XX)
|
||||
# undef cpu_is_omap15xx
|
||||
# define cpu_is_omap15xx() 1
|
||||
@ -219,6 +235,7 @@ IS_OMAP_SUBCLASS(343x, 0x343)
|
||||
* These are only rarely needed.
|
||||
* cpu_is_omap330(): True for OMAP330
|
||||
* cpu_is_omap730(): True for OMAP730
|
||||
* cpu_is_omap850(): True for OMAP850
|
||||
* cpu_is_omap1510(): True for OMAP1510
|
||||
* cpu_is_omap1610(): True for OMAP1610
|
||||
* cpu_is_omap1611(): True for OMAP1611
|
||||
@ -241,6 +258,7 @@ static inline int is_omap ##type (void) \
|
||||
|
||||
IS_OMAP_TYPE(310, 0x0310)
|
||||
IS_OMAP_TYPE(730, 0x0730)
|
||||
IS_OMAP_TYPE(850, 0x0850)
|
||||
IS_OMAP_TYPE(1510, 0x1510)
|
||||
IS_OMAP_TYPE(1610, 0x1610)
|
||||
IS_OMAP_TYPE(1611, 0x1611)
|
||||
@ -255,6 +273,7 @@ IS_OMAP_TYPE(3430, 0x3430)
|
||||
|
||||
#define cpu_is_omap310() 0
|
||||
#define cpu_is_omap730() 0
|
||||
#define cpu_is_omap850() 0
|
||||
#define cpu_is_omap1510() 0
|
||||
#define cpu_is_omap1610() 0
|
||||
#define cpu_is_omap5912() 0
|
||||
@ -272,12 +291,22 @@ IS_OMAP_TYPE(3430, 0x3430)
|
||||
# undef cpu_is_omap730
|
||||
# define cpu_is_omap730() is_omap730()
|
||||
# endif
|
||||
# if defined(CONFIG_ARCH_OMAP850)
|
||||
# undef cpu_is_omap850
|
||||
# define cpu_is_omap850() is_omap850()
|
||||
# endif
|
||||
#else
|
||||
# if defined(CONFIG_ARCH_OMAP730)
|
||||
# undef cpu_is_omap730
|
||||
# define cpu_is_omap730() 1
|
||||
# endif
|
||||
#endif
|
||||
#else
|
||||
# if defined(CONFIG_ARCH_OMAP850)
|
||||
# undef cpu_is_omap850
|
||||
# define cpu_is_omap850() 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Whether we have MULTI_OMAP1 or not, we still need to distinguish
|
||||
@ -320,7 +349,7 @@ IS_OMAP_TYPE(3430, 0x3430)
|
||||
#endif
|
||||
|
||||
/* Macros to detect if we have OMAP1 or OMAP2 */
|
||||
#define cpu_class_is_omap1() (cpu_is_omap730() || cpu_is_omap15xx() || \
|
||||
#define cpu_class_is_omap1() (cpu_is_omap7xx() || cpu_is_omap15xx() || \
|
||||
cpu_is_omap16xx())
|
||||
#define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx())
|
||||
|
||||
@ -378,5 +407,3 @@ int omap_type(void);
|
||||
void omap2_check_revision(void);
|
||||
|
||||
#endif /* defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) */
|
||||
|
||||
#endif
|
||||
|
102
arch/arm/plat-omap/include/mach/omap850.h
Normal file
102
arch/arm/plat-omap/include/mach/omap850.h
Normal file
@ -0,0 +1,102 @@
|
||||
/* arch/arm/plat-omap/include/mach/omap850.h
|
||||
*
|
||||
* Hardware definitions for TI OMAP850 processor.
|
||||
*
|
||||
* Derived from omap730.h by Zebediah C. McClure <zmc@lurian.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_OMAP850_H
|
||||
#define __ASM_ARCH_OMAP850_H
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* Base addresses
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* Syntax: XX_BASE = Virtual base address, XX_START = Physical base address */
|
||||
|
||||
#define OMAP850_DSP_BASE 0xE0000000
|
||||
#define OMAP850_DSP_SIZE 0x50000
|
||||
#define OMAP850_DSP_START 0xE0000000
|
||||
|
||||
#define OMAP850_DSPREG_BASE 0xE1000000
|
||||
#define OMAP850_DSPREG_SIZE SZ_128K
|
||||
#define OMAP850_DSPREG_START 0xE1000000
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* OMAP850 specific configuration registers
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define OMAP850_CONFIG_BASE 0xfffe1000
|
||||
#define OMAP850_IO_CONF_0 0xfffe1070
|
||||
#define OMAP850_IO_CONF_1 0xfffe1074
|
||||
#define OMAP850_IO_CONF_2 0xfffe1078
|
||||
#define OMAP850_IO_CONF_3 0xfffe107c
|
||||
#define OMAP850_IO_CONF_4 0xfffe1080
|
||||
#define OMAP850_IO_CONF_5 0xfffe1084
|
||||
#define OMAP850_IO_CONF_6 0xfffe1088
|
||||
#define OMAP850_IO_CONF_7 0xfffe108c
|
||||
#define OMAP850_IO_CONF_8 0xfffe1090
|
||||
#define OMAP850_IO_CONF_9 0xfffe1094
|
||||
#define OMAP850_IO_CONF_10 0xfffe1098
|
||||
#define OMAP850_IO_CONF_11 0xfffe109c
|
||||
#define OMAP850_IO_CONF_12 0xfffe10a0
|
||||
#define OMAP850_IO_CONF_13 0xfffe10a4
|
||||
|
||||
#define OMAP850_MODE_1 0xfffe1010
|
||||
#define OMAP850_MODE_2 0xfffe1014
|
||||
|
||||
/* CSMI specials: in terms of base + offset */
|
||||
#define OMAP850_MODE2_OFFSET 0x14
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* OMAP850 traffic controller configuration registers
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define OMAP850_FLASH_CFG_0 0xfffecc10
|
||||
#define OMAP850_FLASH_ACFG_0 0xfffecc50
|
||||
#define OMAP850_FLASH_CFG_1 0xfffecc14
|
||||
#define OMAP850_FLASH_ACFG_1 0xfffecc54
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* OMAP850 DSP control registers
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define OMAP850_ICR_BASE 0xfffbb800
|
||||
#define OMAP850_DSP_M_CTL 0xfffbb804
|
||||
#define OMAP850_DSP_MMU_BASE 0xfffed200
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* OMAP850 PCC_UPLD configuration registers
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define OMAP850_PCC_UPLD_CTRL_BASE (0xfffe0900)
|
||||
#define OMAP850_PCC_UPLD_CTRL (OMAP850_PCC_UPLD_CTRL_BASE + 0x00)
|
||||
|
||||
#endif /* __ASM_ARCH_OMAP850_H */
|
||||
|
Loading…
Reference in New Issue
Block a user