diff options
Diffstat (limited to 'arch/arm/include')
38 files changed, 1390 insertions, 1078 deletions
| diff --git a/arch/arm/include/asm/arch-am33xx/omap.h b/arch/arm/include/asm/arch-am33xx/omap.h index 7e3bb9c99..db1515964 100644 --- a/arch/arm/include/asm/arch-am33xx/omap.h +++ b/arch/arm/include/asm/arch-am33xx/omap.h @@ -29,8 +29,8 @@   * at 0x40304000(EMU base) so that our code works for both EMU and GP   */  #ifdef CONFIG_AM33XX -#define NON_SECURE_SRAM_START	0x40304000 -#define NON_SECURE_SRAM_END	0x4030E000 +#define NON_SECURE_SRAM_START	0x402F0400 +#define NON_SECURE_SRAM_END	0x40310000  #elif defined(CONFIG_TI814X)  #define NON_SECURE_SRAM_START	0x40300000  #define NON_SECURE_SRAM_END	0x40320000 diff --git a/arch/arm/include/asm/arch-am33xx/sys_proto.h b/arch/arm/include/asm/arch-am33xx/sys_proto.h index c913b5f31..fedc67403 100644 --- a/arch/arm/include/asm/arch-am33xx/sys_proto.h +++ b/arch/arm/include/asm/arch-am33xx/sys_proto.h @@ -30,6 +30,7 @@ int print_cpuinfo(void);  extern struct ctrl_stat *cstat;  u32 get_device_type(void); +void save_omap_boot_params(void);  void setup_clocks_for_console(void);  void ddr_pll_config(unsigned int ddrpll_M); diff --git a/arch/arm/include/asm/arch-at91/at91_dbu.h b/arch/arm/include/asm/arch-at91/at91_dbu.h index 342929353..9a640a5b0 100644 --- a/arch/arm/include/asm/arch-at91/at91_dbu.h +++ b/arch/arm/include/asm/arch-at91/at91_dbu.h @@ -38,4 +38,8 @@ typedef struct at91_dbu {  #define AT91_DBU_CID_ARCH_9xx		0x01900000  #define AT91_DBU_CID_ARCH_9XExx	0x02900000 +#define AT91_DBU_CIDR_MASK		0x1f +#define AT91_DBU_CIDR			0x40 +#define AT91_DBU_EXID			0x44 +  #endif diff --git a/arch/arm/include/asm/arch-at91/at91_pmc.h b/arch/arm/include/asm/arch-at91/at91_pmc.h index 086cb9b34..66075b480 100644 --- a/arch/arm/include/asm/arch-at91/at91_pmc.h +++ b/arch/arm/include/asm/arch-at91/at91_pmc.h @@ -55,7 +55,16 @@ typedef struct at91_pmc {  	u32	reserved5[21];  	u32	wpmr;		/* 0xE4 Write Protect Mode Register (CAP0) */  	u32	wpsr;		/* 0xE8 Write Protect Status Register (CAP0) */ +#ifdef CONFIG_SAMA5D3 +	u32	reserved6[8]; +	u32	pcer1;		/* 0x100 Periperial Clock Enable Register 1 */ +	u32	pcdr1;		/* 0x104 Periperial Clock Disable Register 1 */ +	u32	pcsr1;		/* 0x108 Periperial Clock Status Register 1 */ +	u32	pcr;		/* 0x10c Periperial Control Register */ +	u32	ocr;		/* 0x110 Oscillator Calibration Register */ +#else  	u32	reserved8[5]; +#endif  } at91_pmc_t;  #endif	/* end not assembly */ @@ -82,6 +91,16 @@ typedef struct at91_pmc {  #define AT91_PMC_MCKR_CSS_PLLB		0x00000003  #define AT91_PMC_MCKR_CSS_MASK		0x00000003 +#ifdef CONFIG_SAMA5D3 +#define AT91_PMC_MCKR_PRES_1		0x00000000 +#define AT91_PMC_MCKR_PRES_2		0x00000010 +#define AT91_PMC_MCKR_PRES_4		0x00000020 +#define AT91_PMC_MCKR_PRES_8		0x00000030 +#define AT91_PMC_MCKR_PRES_16		0x00000040 +#define AT91_PMC_MCKR_PRES_32		0x00000050 +#define AT91_PMC_MCKR_PRES_64		0x00000060 +#define AT91_PMC_MCKR_PRES_MASK		0x00000070 +#else  #define AT91_PMC_MCKR_PRES_1		0x00000000  #define AT91_PMC_MCKR_PRES_2		0x00000004  #define AT91_PMC_MCKR_PRES_4		0x00000008 @@ -90,6 +109,7 @@ typedef struct at91_pmc {  #define AT91_PMC_MCKR_PRES_32		0x00000014  #define AT91_PMC_MCKR_PRES_64		0x00000018  #define AT91_PMC_MCKR_PRES_MASK		0x0000001C +#endif  #ifdef CONFIG_AT91RM9200  #define AT91_PMC_MCKR_MDIV_1		0x00000000 @@ -100,6 +120,9 @@ typedef struct at91_pmc {  #else  #define AT91_PMC_MCKR_MDIV_1		0x00000000  #define AT91_PMC_MCKR_MDIV_2		0x00000100 +#ifdef CONFIG_SAMA5D3 +#define AT91_PMC_MCKR_MDIV_3		0x00000300 +#endif  #define AT91_PMC_MCKR_MDIV_4		0x00000200  #define AT91_PMC_MCKR_MDIV_MASK		0x00000300  #endif diff --git a/arch/arm/include/asm/arch-at91/clk.h b/arch/arm/include/asm/arch-at91/clk.h index d4852a38c..04b0f8322 100644 --- a/arch/arm/include/asm/arch-at91/clk.h +++ b/arch/arm/include/asm/arch-at91/clk.h @@ -95,4 +95,5 @@ static inline unsigned long get_mci_clk_rate(void)  }  int at91_clock_init(unsigned long main_clock); +void at91_periph_clk_enable(int id);  #endif /* __ASM_ARM_ARCH_CLK_H__ */ diff --git a/arch/arm/include/asm/arch-at91/hardware.h b/arch/arm/include/asm/arch-at91/hardware.h index 8812b1107..b04641e01 100644 --- a/arch/arm/include/asm/arch-at91/hardware.h +++ b/arch/arm/include/asm/arch-at91/hardware.h @@ -43,6 +43,8 @@  # include <asm/arch/at91cap9.h>  #elif defined(CONFIG_AT91X40)  # include <asm/arch/at91x40.h> +#elif defined(CONFIG_SAMA5D3) +# include <asm/arch/sama5d3.h>  #else  # error "Unsupported AT91 processor"  #endif diff --git a/arch/arm/include/asm/arch-at91/sama5d3.h b/arch/arm/include/asm/arch-at91/sama5d3.h new file mode 100644 index 000000000..883b932da --- /dev/null +++ b/arch/arm/include/asm/arch-at91/sama5d3.h @@ -0,0 +1,212 @@ +/* + * Chip-specific header file for the SAMA5D3 family + * + * (C) 2012 - 2013 Atmel Corporation. + * Bo Shen <voice.shen@atmel.com> + * + * Definitions for the SoC: + * SAMA5D3 + * + * 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. + */ + +#ifndef SAMA5D3_H +#define SAMA5D3_H + +/* + * defines to be used in other places + */ +#define CONFIG_ARMV7		/* ARM A5 Core */ +#define CONFIG_AT91FAMILY	/* it's a member of AT91 */ + +/* + * Peripheral identifiers/interrupts. + */ +#define ATMEL_ID_FIQ	0	/* Advanced Interrupt Controller (FIQ) */ +#define ATMEL_ID_SYS	1	/* System Controller Interrupt */ +#define ATMEL_ID_DBGU	2	/* Debug Unit Interrupt */ +#define ATMEL_ID_PIT	3	/* Periodic Interval Timer Interrupt */ +#define ATMEL_ID_WDT	4	/* Watchdog timer Interrupt */ +#define ATMEL_ID_SMC	5	/* Multi-bit ECC Interrupt */ +#define ATMEL_ID_PIOA	6	/* Parallel I/O Controller A */ +#define ATMEL_ID_PIOB	7	/* Parallel I/O Controller B */ +#define ATMEL_ID_PIOC	8	/* Parallel I/O Controller C */ +#define ATMEL_ID_PIOD	9	/* Parallel I/O Controller D */ +#define ATMEL_ID_PIOE	10	/* Parallel I/O Controller E */ +#define ATMEL_ID_SMD	11	/* SMD Soft Modem */ +#define ATMEL_ID_USART0	12	/* USART 0 */ +#define ATMEL_ID_USART1	13	/* USART 1 */ +#define ATMEL_ID_USART2	14	/* USART 2 */ +#define ATMEL_ID_USART3	15	/* USART 3 */ +#define ATMEL_ID_UART0	16 +#define ATMEL_ID_UART1	17 +#define ATMEL_ID_TWI0	18	/* Two-Wire Interface 0 */ +#define ATMEL_ID_TWI1	19	/* Two-Wire Interface 1 */ +#define ATMEL_ID_TWI2	20	/* Two-Wire Interface 2 */ +#define ATMEL_ID_MCI0	21	/* High Speed Multimedia Card Interface 0 */ +#define ATMEL_ID_MCI1	22	/*  */ +#define ATMEL_ID_MCI2	23	/*  */ +#define ATMEL_ID_SPI0	24	/* Serial Peripheral Interface 0 */ +#define ATMEL_ID_SPI1	25	/* Serial Peripheral Interface 1 */ +#define ATMEL_ID_TC0	26	/* */ +#define ATMEL_ID_TC1	27	/* */ +#define ATMEL_ID_PWMC	28	/* Pulse Width Modulation Controller */ +#define ATMEL_ID_TSC	29	/* Touch Screen ADC Controller */ +#define ATMEL_ID_DMA0	30	/* DMA Controller */ +#define ATMEL_ID_DMA1	31	/* DMA Controller */ +#define ATMEL_ID_UHPHS	32	/* USB Host High Speed */ +#define ATMEL_ID_UDPHS	33	/* USB Device High Speed */ +#define ATMEL_ID_GMAC	34 +#define ATMEL_ID_EMAC	35	/* Ethernet MAC */ +#define ATMEL_ID_LCDC	36	/* LCD Controller */ +#define ATMEL_ID_ISI	37	/* Image Sensor Interface */ +#define ATMEL_ID_SSC0	38	/* Synchronous Serial Controller 0 */ +#define ATMEL_ID_SSC1	39	/* Synchronous Serial Controller 1 */ +#define ATMEL_ID_CAN0	40 +#define ATMEL_ID_CAN1	41 +#define ATMEL_ID_SHA	42 +#define ATMEL_ID_AES	43 +#define ATMEL_ID_TDES	44 +#define ATMEL_ID_TRNG	45 +#define ATMEL_ID_ARM	46 +#define ATMEL_ID_IRQ0	47	/* Advanced Interrupt Controller */ +#define ATMEL_ID_FUSE	48 +#define ATMEL_ID_MPDDRC	49 + +/* sama5d3 series chip id definitions */ +#define ARCH_ID_SAMA5D3		0x8a5c07c0 +#define ARCH_EXID_SAMA5D31	0x00444300 +#define ARCH_EXID_SAMA5D33	0x00414300 +#define ARCH_EXID_SAMA5D34	0x00414301 +#define ARCH_EXID_SAMA5D35	0x00584300 + +#define cpu_is_sama5d3()	(get_chip_id() == ARCH_ID_SAMA5D3) +#define cpu_is_sama5d31()	(cpu_is_sama5d3() && \ +		(get_extension_chip_id() == ARCH_EXID_SAMA5D31)) +#define cpu_is_sama5d33()	(cpu_is_sama5d3() && \ +		(get_extension_chip_id() == ARCH_EXID_SAMA5D33)) +#define cpu_is_sama5d34()	(cpu_is_sama5d3() && \ +		(get_extension_chip_id() == ARCH_EXID_SAMA5D34)) +#define cpu_is_sama5d35()	(cpu_is_sama5d3() && \ +		(get_extension_chip_id() == ARCH_EXID_SAMA5D35)) + +/* + * User Peripherals physical base addresses. + */ +#define ATMEL_BASE_MCI0		0xf0000000 +#define ATMEL_BASE_SPI0		0xf0004000 +#define ATMEL_BASE_SSC0		0xf000C000 +#define ATMEL_BASE_TC2		0xf0010000 +#define ATMEL_BASE_TWI0		0xf0014000 +#define ATMEL_BASE_TWI1		0xf0018000 +#define ATMEL_BASE_USART0	0xf001c000 +#define ATMEL_BASE_USART1	0xf0020000 +#define ATMEL_BASE_UART0	0xf0024000 +#define ATMEL_BASE_GMAC		0xf0028000 +#define ATMEL_BASE_PWMC		0xf002c000 +#define ATMEL_BASE_LCDC		0xf0030000 +#define ATMEL_BASE_ISI		0xf0034000 +#define ATMEL_BASE_SFR		0xf0038000 +/* Reserved: 0xf003c000 - 0xf8000000 */ +#define ATMEL_BASE_MCI1		0xf8000000 +#define ATMEL_BASE_MCI2		0xf8004000 +#define ATMEL_BASE_SPI1		0xf8008000 +#define ATMEL_BASE_SSC1		0xf800c000 +#define ATMEL_BASE_CAN1		0xf8010000 +#define ATMEL_BASE_TC3		0xf8014000 +#define ATMEL_BASE_TSADC	0xf8018000 +#define ATMEL_BASE_TWI2		0xf801c000 +#define ATMEL_BASE_USART2	0xf8020000 +#define ATMEL_BASE_USART3	0xf8024000 +#define ATMEL_BASE_UART1	0xf8028000 +#define ATMEL_BASE_EMAC		0xf802c000 +#define ATMEL_BASE_UDHPS	0xf8030000 +#define ATMEL_BASE_SHA		0xf8034000 +#define ATMEL_BASE_AES		0xf8038000 +#define ATMEL_BASE_TDES		0xf803c000 +#define ATMEL_BASE_TRNG		0xf8040000 +/* Reserved:	0xf804400 - 0xffffc00 */ + +/* + * System Peripherals physical base addresses. + */ +#define ATMEL_BASE_SYS		0xffffc000 +#define ATMEL_BASE_SMC		0xffffc000 +#define ATMEL_BASE_PMECC	(ATMEL_BASE_SMC + 0x070) +#define ATMEL_BASE_PMERRLOC	(ATMEL_BASE_SMC + 0x500) +#define ATMEL_BASE_FUSE		0xffffe400 +#define ATMEL_BASE_DMAC0	0xffffe600 +#define ATMEL_BASE_DMAC1	0xffffe800 +#define ATMEL_BASE_MPDDRC	0xffffea00 +#define ATMEL_BASE_MATRIX	0xffffec00 +#define ATMEL_BASE_DBGU		0xffffee00 +#define ATMEL_BASE_AIC		0xfffff000 +#define ATMEL_BASE_PIOA		0xfffff200 +#define ATMEL_BASE_PIOB		0xfffff400 +#define ATMEL_BASE_PIOC		0xfffff600 +#define ATMEL_BASE_PIOD		0xfffff800 +#define ATMEL_BASE_PIOE		0xfffffa00 +#define ATMEL_BASE_PMC		0xfffffc00 +#define ATMEL_BASE_RSTC		0xfffffe00 +#define ATMEL_BASE_SHDWN	0xfffffe10 +#define ATMEL_BASE_PIT		0xfffffe30 +#define ATMEL_BASE_WDT		0xfffffe40 +#define ATMEL_BASE_SCKCR	0xfffffe50 +#define ATMEL_BASE_GPBR		0xfffffe60 +#define ATMEL_BASE_RTC		0xfffffeb0 +/* Reserved:	0xfffffee0 - 0xffffffff */ + +/* + * Internal Memory. + */ +#define ATMEL_BASE_ROM		0x00100000	/* Internal ROM base address */ +#define ATMEL_BASE_SRAM		0x00200000	/* Internal ROM base address */ +#define ATMEL_BASE_SRAM0	0x00300000	/* Internal SRAM base address */ +#define ATMEL_BASE_SRAM1	0x00310000	/* Internal SRAM base address */ +#define ATMEL_BASE_SMD		0x00400000	/* Internal ROM base address */ +#define ATMEL_BASE_UDPHS_FIFO	0x00500000	/* USB Device HS controller */ +#define ATMEL_BASE_OHCI		0x00600000	/* USB Host controller (OHCI) */ +#define ATMEL_BASE_EHCI		0x00700000	/* USB Host controller (EHCI) */ +#define ATMEL_BASE_AXI		0x00800000	/* Video Decoder Controller */ +#define ATMEL_BASE_DAP		0x00900000	/* Video Decoder Controller */ + +/* + * External memory + */ +#define ATMEL_BASE_CS0		0x10000000 +#define ATMEL_BASE_DDRCS	0x20000000 +#define ATMEL_BASE_CS1		0x40000000 +#define ATMEL_BASE_CS2		0x50000000 +#define ATMEL_BASE_CS3		0x60000000 + +/* + * Other misc defines + */ +#define ATMEL_PIO_PORTS		5 +#define CPU_HAS_PIO3 +#define PIO_SCDR_DIV		0x3fff + +/* + * PMECC table in ROM + */ +#define ATMEL_PMECC_INDEX_OFFSET_512	0x10000 +#define ATMEL_PMECC_INDEX_OFFSET_1024	0x18000 +#define ATMEL_PMECC_ALPHA_OFFSET_512	0x10000 +#define ATMEL_PMECC_ALPHA_OFFSET_1024	0x18000 + +/* + * SAMA5D3 specific prototypes + */ +#ifndef __ASSEMBLY__ +unsigned int get_chip_id(void); +unsigned int get_extension_chip_id(void); +unsigned int has_emac(void); +unsigned int has_gmac(void); +unsigned int has_lcdc(void); +char *get_cpu_name(void); +#endif + +#endif diff --git a/arch/arm/include/asm/arch-at91/sama5d3_smc.h b/arch/arm/include/asm/arch-at91/sama5d3_smc.h new file mode 100644 index 000000000..eb53eba97 --- /dev/null +++ b/arch/arm/include/asm/arch-at91/sama5d3_smc.h @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2012 Atmel Corporation. + * + * Static Memory Controllers (SMC) - System peripherals registers. + * Based on SAMA5D3 datasheet. + * + * 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. + */ + +#ifndef SAMA5D3_SMC_H +#define SAMA5D3_SMC_H + +#ifdef __ASSEMBLY__ +#define AT91_ASM_SMC_SETUP0	(ATMEL_BASE_SMC + 0x600) +#define AT91_ASM_SMC_PULSE0	(ATMEL_BASE_SMC + 0x604) +#define AT91_ASM_SMC_CYCLE0	(ATMEL_BASE_SMC + 0x608) +#define AT91_ASM_SMC_MODE0	(ATMEL_BASE_SMC + 0x60C) +#else +struct at91_cs { +	u32	reserved[96]; +	u32	setup;		/* 0x600 SMC Setup Register */ +	u32	pulse;		/* 0x604 SMC Pulse Register */ +	u32	cycle;		/* 0x608 SMC Cycle Register */ +	u32	timings;	/* 0x60C SMC Cycle Register */ +	u32	mode;		/* 0x610 SMC Mode Register */ +}; + +struct at91_smc { +	struct at91_cs cs[4]; +}; +#endif /*  __ASSEMBLY__ */ + +#define AT91_SMC_SETUP_NWE(x)		(x & 0x3f) +#define AT91_SMC_SETUP_NCS_WR(x)	((x & 0x3f) << 8) +#define AT91_SMC_SETUP_NRD(x)		((x & 0x3f) << 16) +#define AT91_SMC_SETUP_NCS_RD(x)	((x & 0x3f) << 24) + +#define AT91_SMC_PULSE_NWE(x)		(x & 0x3f) +#define AT91_SMC_PULSE_NCS_WR(x)	((x & 0x3f) << 8) +#define AT91_SMC_PULSE_NRD(x)		((x & 0x3f) << 16) +#define AT91_SMC_PULSE_NCS_RD(x)	((x & 0x3f) << 24) + +#define AT91_SMC_CYCLE_NWE(x)		(x & 0x1ff) +#define AT91_SMC_CYCLE_NRD(x)		((x & 0x1ff) << 16) + +#define AT91_SMC_TIMINGS_TCLR(x)	(x & 0xf) +#define AT91_SMC_TIMINGS_TADL(x)	((x & 0xf) << 4) +#define AT91_SMC_TIMINGS_TAR(x)		((x & 0xf) << 8) +#define AT91_SMC_TIMINGS_OCMS(x)	((x & 0x1) << 12) +#define AT91_SMC_TIMINGS_TRR(x)		((x & 0xf) << 16) +#define AT91_SMC_TIMINGS_TWB(x)		((x & 0xf) << 24) +#define AT91_SMC_TIMINGS_RBNSEL(x)	((x & 0xf) << 28) +#define AT91_SMC_TIMINGS_NFSEL(x)	((x & 0x1) << 31) + +#define AT91_SMC_MODE_RM_NCS		0x00000000 +#define AT91_SMC_MODE_RM_NRD		0x00000001 +#define AT91_SMC_MODE_WM_NCS		0x00000000 +#define AT91_SMC_MODE_WM_NWE		0x00000002 + +#define AT91_SMC_MODE_EXNW_DISABLE	0x00000000 +#define AT91_SMC_MODE_EXNW_FROZEN	0x00000020 +#define AT91_SMC_MODE_EXNW_READY	0x00000030 + +#define AT91_SMC_MODE_BAT		0x00000100 +#define AT91_SMC_MODE_DBW_8		0x00000000 +#define AT91_SMC_MODE_DBW_16		0x00001000 +#define AT91_SMC_MODE_DBW_32		0x00002000 +#define AT91_SMC_MODE_TDF_CYCLE(x)	((x & 0xf) << 16) +#define AT91_SMC_MODE_TDF		0x00100000 +#define AT91_SMC_MODE_PMEN		0x01000000 +#define AT91_SMC_MODE_PS_4		0x00000000 +#define AT91_SMC_MODE_PS_8		0x10000000 +#define AT91_SMC_MODE_PS_16		0x20000000 +#define AT91_SMC_MODE_PS_32		0x30000000 + +#endif diff --git a/arch/arm/include/asm/arch-davinci/pinmux_defs.h b/arch/arm/include/asm/arch-davinci/pinmux_defs.h index a851f1f50..beaf0d601 100644 --- a/arch/arm/include/asm/arch-davinci/pinmux_defs.h +++ b/arch/arm/include/asm/arch-davinci/pinmux_defs.h @@ -22,8 +22,14 @@  #define __ASM_ARCH_PINMUX_DEFS_H  #include <asm/arch/davinci_misc.h> +#include <config.h> -/* SPI pin muxer settings */ +/* SPI0 pin muxer settings */ +extern const struct pinmux_config spi0_pins_base[3]; +extern const struct pinmux_config spi0_pins_scs0[1]; +extern const struct pinmux_config spi0_pins_ena[1]; + +/* SPI1 pin muxer settings */  extern const struct pinmux_config spi1_pins_base[3];  extern const struct pinmux_config spi1_pins_scs0[1]; @@ -35,6 +41,7 @@ extern const struct pinmux_config uart2_pins_rtscts[2];  /* EMAC pin muxer settings*/  extern const struct pinmux_config emac_pins_rmii[7]; +extern const struct pinmux_config emac_pins_rmii_clk_source[1];  extern const struct pinmux_config emac_pins_mii[15];  extern const struct pinmux_config emac_pins_mdio[2]; @@ -43,13 +50,19 @@ extern const struct pinmux_config i2c0_pins[2];  extern const struct pinmux_config i2c1_pins[2];  /* EMIFA pin muxer settings */ +extern const struct pinmux_config emifa_pins[40]; +extern const struct pinmux_config emifa_pins_cs0[1];  extern const struct pinmux_config emifa_pins_cs2[1];  extern const struct pinmux_config emifa_pins_cs3[1];  extern const struct pinmux_config emifa_pins_cs4[1];  extern const struct pinmux_config emifa_pins_nand[12];  extern const struct pinmux_config emifa_pins_nor[43]; +/* USB pin mux setting */ +extern const struct pinmux_config usb_pins[1]; +  /* MMC pin muxer settings */ +extern const struct pinmux_config mmc0_pins_8bit[10];  extern const struct pinmux_config mmc0_pins[6];  #endif diff --git a/arch/arm/include/asm/arch-omap24xx/bits.h b/arch/arm/include/asm/arch-omap24xx/bits.h deleted file mode 100644 index 8522335bf..000000000 --- a/arch/arm/include/asm/arch-omap24xx/bits.h +++ /dev/null @@ -1,48 +0,0 @@ -/* bits.h - * Copyright (c) 2004 Texas Instruments - * - * This package is free software;  you can redistribute it and/or - * modify it under the terms of the license found in the file - * named COPYING that should have accompanied this file. - * - * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -#ifndef __bits_h -#define __bits_h 1 - -#define BIT0  (1<<0) -#define BIT1  (1<<1) -#define BIT2  (1<<2) -#define BIT3  (1<<3) -#define BIT4  (1<<4) -#define BIT5  (1<<5) -#define BIT6  (1<<6) -#define BIT7  (1<<7) -#define BIT8  (1<<8) -#define BIT9  (1<<9) -#define BIT10 (1<<10) -#define BIT11 (1<<11) -#define BIT12 (1<<12) -#define BIT13 (1<<13) -#define BIT14 (1<<14) -#define BIT15 (1<<15) -#define BIT16 (1<<16) -#define BIT17 (1<<17) -#define BIT18 (1<<18) -#define BIT19 (1<<19) -#define BIT20 (1<<20) -#define BIT21 (1<<21) -#define BIT22 (1<<22) -#define BIT23 (1<<23) -#define BIT24 (1<<24) -#define BIT25 (1<<25) -#define BIT26 (1<<26) -#define BIT27 (1<<27) -#define BIT28 (1<<28) -#define BIT29 (1<<29) -#define BIT30 (1<<30) -#define BIT31 (1<<31) - -#endif diff --git a/arch/arm/include/asm/arch-omap24xx/clocks.h b/arch/arm/include/asm/arch-omap24xx/clocks.h deleted file mode 100644 index 2e92569a9..000000000 --- a/arch/arm/include/asm/arch-omap24xx/clocks.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * (C) Copyright 2004 - * Texas Instruments, <www.ti.com> - * Richard Woodruff <r-woodruff2@ti.com> - * - * 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 program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR /PURPOSE.  See the - * GNU General Public License for more details. - * - * 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., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA -  */ -#ifndef _OMAP24XX_CLOCKS_H_ -#define _OMAP24XX_CLOCKS_H_ - -#define COMMIT_DIVIDERS  0x1 - -#define MODE_BYPASS_FAST 0x2 -#define APLL_LOCK        0xc -#ifdef CONFIG_APTIX -#define DPLL_LOCK        0x1   /* stay in bypass mode */ -#else -#define DPLL_LOCK        0x3   /* DPLL lock */ -#endif - -/****************************************************************************; -; PRCM Scheme II -; -; Enable clocks and DPLL for: -;  DPLL=300,	DPLLout=600	M=1,N=50   CM_CLKSEL1_PLL[21:8]  12/2*50 -;  Core=600	(core domain)   DPLLx2     CM_CLKSEL2_PLL[1:0] -;  MPUF=300	(mpu domain)    2          CM_CLKSEL_MPU[4:0] -;  DSPF=200    (dsp domain)    3          CM_CLKSEL_DSP[4:0] -;  DSPI=100                    6          CM_CLKSEL_DSP[6:5] -;  DSP_S          bypass	               CM_CLKSEL_DSP[7] -;  IVAF=200    (dsp domain)    3          CM_CLKSEL_DSP[12:8] -;  IVAF=100        auto -;  IVAI            auto -;  IVA_MPU         auto -;  IVA_S          bypass                  CM_CLKSEL_DSP[13] -;  GFXF=50      (gfx domain)	12         CM_CLKSEL_FGX[2:0] -;  SSI_SSRF=200                 3         CM_CLKSEL1_CORE[24:20] -;  SSI_SSTF=100     auto -;  L3=100Mhz (sdram)            6         CM_CLKSEL1_CORE[4:0] -;  L4=100Mhz                    6 -;  C_L4_USB=50                 12         CM_CLKSEL1_CORE[6:5] -***************************************************************************/ -#define II_DPLL_OUT_X2   0x2    /* x2 core out */ -#define II_MPU_DIV       0x2    /* mpu = core/2 */ -#define II_DSP_DIV       0x343  /* dsp & iva divider */ -#define II_GFX_DIV       0x2 -#define II_BUS_DIV       0x04601026 -#define II_DPLL_300      0x01832100 - -/****************************************************************************; -; PRCM Scheme III -; -; Enable clocks and DPLL for: -;  DPLL=266,	DPLLout=532	M=5+1,N=133 CM_CLKSEL1_PLL[21:8]  12/6*133=266 -;  Core=532	(core domain)   DPLLx2      CM_CLKSEL2_PLL[1:0] -;  MPUF=266	(mpu domain)    /2          CM_CLKSEL_MPU[4:0] -;  DSPF=177.3     (dsp domain)  /3          CM_CLKSEL_DSP[4:0] -;  DSPI=88.67                   /6          CM_CLKSEL_DSP[6:5] -;  DSP_S         ACTIVATED	            CM_CLKSEL_DSP[7] -;  IVAF=88.67    (dsp domain)   /3          CM_CLKSEL_DSP[12:8] -;  IVAF=88.67        auto -;  IVAI            auto -;  IVA_MPU         auto -;  IVA_S         ACTIVATED                  CM_CLKSEL_DSP[13] -;  GFXF=66.5      (gfx domain)	/8          CM_CLKSEL_FGX[2:0]: -;  SSI_SSRF=177.3               /3          CM_CLKSEL1_CORE[24:20] -;  SSI_SSTF=88.67     auto -;  L3=133Mhz (sdram)            /4          CM_CLKSEL1_CORE[4:0] -;  L4=66.5Mhz                   /8 -;  C_L4_USB=33.25               /16         CM_CLKSEL1_CORE[6:5] -***************************************************************************/ -#define III_DPLL_OUT_X2   0x2    /* x2 core out */ -#define III_MPU_DIV       0x2    /* mpu = core/2 */ -#define III_DSP_DIV       0x23C3 /* dsp & iva divider sych enabled*/ -#define III_GFX_DIV       0x2 -#define III_BUS_DIV       0x08301044 -#define III_DPLL_266      0x01885500 - -/* set defaults for boot up */ -#ifdef PRCM_CONFIG_II -# define DPLL_OUT         II_DPLL_OUT_X2 -# define MPU_DIV          II_MPU_DIV -# define DSP_DIV          II_DSP_DIV -# define GFX_DIV          II_GFX_DIV -# define BUS_DIV          II_BUS_DIV -# define DPLL_VAL         II_DPLL_300 -#elif PRCM_CONFIG_III -# define DPLL_OUT         III_DPLL_OUT_X2 -# define MPU_DIV          III_MPU_DIV -# define DSP_DIV          III_DSP_DIV -# define GFX_DIV          III_GFX_DIV -# define BUS_DIV          III_BUS_DIV -# define DPLL_VAL         III_DPLL_266 -#endif - -/* lock delay time out */ -#define LDELAY           12000000 - -#endif diff --git a/arch/arm/include/asm/arch-omap24xx/i2c.h b/arch/arm/include/asm/arch-omap24xx/i2c.h deleted file mode 100644 index 6f645192a..000000000 --- a/arch/arm/include/asm/arch-omap24xx/i2c.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * (C) Copyright 2004 - * Texas Instruments, <www.ti.com> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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 program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * 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., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ -#ifndef _OMAP24XX_I2C_H_ -#define _OMAP24XX_I2C_H_ - -#define I2C_BASE1		0x48070000 -#define I2C_BASE2               0x48072000 /* nothing hooked up on h4 */ - -#define I2C_DEFAULT_BASE	I2C_BASE1 - -struct i2c { -	unsigned short rev;	/* 0x00 */ -	unsigned short res1; -	unsigned short ie;	/* 0x04 */ -	unsigned short res2; -	unsigned short stat;	/* 0x08 */ -	unsigned short res3; -	unsigned short iv;	/* 0x0C */ -	unsigned short res4; -	unsigned short syss;	/* 0x10 */ -	unsigned short res4p1; -	unsigned short buf;	/* 0x14 */ -	unsigned short res5; -	unsigned short cnt;	/* 0x18 */ -	unsigned short res6; -	unsigned short data;	/* 0x1C */ -	unsigned short res7; -	unsigned short sysc;	/* 0x20 */ -	unsigned short res8; -	unsigned short con;	/* 0x24 */ -	unsigned short res9; -	unsigned short oa;	/* 0x28 */ -	unsigned short res10; -	unsigned short sa;	/* 0x2C */ -	unsigned short res11; -	unsigned short psc;	/* 0x30 */ -	unsigned short res12; -	unsigned short scll;	/* 0x34 */ -	unsigned short res13; -	unsigned short sclh;	/* 0x38 */ -	unsigned short res14; -	unsigned short systest;	/* 0x3c */ -	unsigned short res15; -}; - -#define I2C_BUS_MAX	2 - -#endif diff --git a/arch/arm/include/asm/arch-omap24xx/mem.h b/arch/arm/include/asm/arch-omap24xx/mem.h deleted file mode 100644 index 42e8ab2bc..000000000 --- a/arch/arm/include/asm/arch-omap24xx/mem.h +++ /dev/null @@ -1,156 +0,0 @@ -/* - * (C) Copyright 2004 - * Texas Instruments, <www.ti.com> - * Richard Woodruff <r-woodruff2@ti.com> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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 program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the - * GNU General Public License for more details. - * - * 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., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef _OMAP24XX_MEM_H_ -#define _OMAP24XX_MEM_H_ - -#define SDRC_CS0_OSET	 0x0 -#define SDRC_CS1_OSET	 0x30  /* mirror CS1 regs appear offset 0x30 from CS0 */ - -#ifndef __ASSEMBLY__ -/* struct's for holding data tables for current boards, they are getting used -   early in init when NO global access are there */ -struct sdrc_data_s { -	u32    sdrc_sharing; -	u32    sdrc_mdcfg_0_ddr; -	u32    sdrc_mdcfg_0_sdr; -	u32    sdrc_actim_ctrla_0; -	u32    sdrc_actim_ctrlb_0; -	u32    sdrc_rfr_ctrl; -	u32    sdrc_mr_0_ddr; -	u32    sdrc_mr_0_sdr; -	u32    sdrc_dllab_ctrl; -} /*__attribute__ ((packed))*/; -typedef struct sdrc_data_s sdrc_data_t; - -typedef enum { -	STACKED		= 0, -	IP_DDR		= 1, -	COMBO_DDR	= 2, -	IP_SDR		= 3, -} mem_t; - -#endif - -/* Slower full frequency range default timings for x32 operation*/ -#define H4_2420_SDRC_SHARING		0x00000100 -#define H4_2420_SDRC_MDCFG_0_SDR	0x00D04010 /* discrete sdr module */ -#define H4_2420_SDRC_MR_0_SDR		0x00000031 -#define H4_2420_SDRC_MDCFG_0_DDR	0x01702011 /* descrite ddr module */ -#define H4_2420_COMBO_MDCFG_0_DDR	0x00801011 /* combo module */ -#define H4_2420_SDRC_MR_0_DDR		0x00000032 - -#define H4_2422_SDRC_SHARING		0x00004b00 -#define H4_2422_SDRC_MDCFG_0_DDR	0x00801011 /* stacked ddr on 2422 */ -#define H4_2422_SDRC_MR_0_DDR		0x00000032 - -/* ES1 work around timings */ -#define H4_242x_SDRC_ACTIM_CTRLA_0_ES1	0x9bead909  /* 165Mhz for use with 100/133 */ -#define H4_242x_SDRC_ACTIM_CTRLB_0_ES1	0x00000020 -#define H4_242x_SDRC_RFR_CTRL_ES1	    0x00002401	/* use over refresh for ES1 */ - -/* optimized timings good for current shipping parts */ -#define H4_242X_SDRC_ACTIM_CTRLA_0_100MHz  0x5A59B485 -#define H4_242X_SDRC_ACTIM_CTRLB_0_100MHz  0x0000000e -#define H4_242X_SDRC_ACTIM_CTRLA_0_133MHz  0x8BA6E6C8 /* temp warn 0 settings */ -#define H4_242X_SDRC_ACTIM_CTRLB_0_133MHz  0x00000010 /* temp warn 0 settings */ -#define H4_242X_SDRC_RFR_CTRL_100MHz	   0x0002da01 -#define H4_242X_SDRC_RFR_CTRL_133MHz	   0x0003de01 -#define H4_242x_SDRC_DLLAB_CTRL_100MHz	   0x0000980E /* 72deg, allow DPLLout*1 to work (combo)*/ -#define H4_242x_SDRC_DLLAB_CTRL_133MHz	   0x0000690E /* 72deg, for ES2 */ - -#ifdef PRCM_CONFIG_II -# define H4_2420_SDRC_ACTIM_CTRLA_0	H4_242X_SDRC_ACTIM_CTRLA_0_100MHz -# define H4_2420_SDRC_ACTIM_CTRLB_0	H4_242X_SDRC_ACTIM_CTRLB_0_100MHz -# define H4_2420_SDRC_RFR_CTRL		H4_242X_SDRC_RFR_CTRL_100MHz -# define H4_2420_SDRC_DLLAB_CTRL    H4_242x_SDRC_DLLAB_CTRL_100MHz -# define H4_2422_SDRC_ACTIM_CTRLA_0	H4_242X_SDRC_ACTIM_CTRLA_0_100MHz -# define H4_2422_SDRC_ACTIM_CTRLB_0	H4_242X_SDRC_ACTIM_CTRLB_0_100MHz -# define H4_2422_SDRC_RFR_CTRL		H4_242X_SDRC_RFR_CTRL_100MHz -# define H4_2422_SDRC_DLLAB_CTRL    H4_242x_SDRC_DLLAB_CTRL_100MHz -#elif PRCM_CONFIG_III -# define H4_2420_SDRC_ACTIM_CTRLA_0	H4_242X_SDRC_ACTIM_CTRLA_0_133MHz -# define H4_2420_SDRC_ACTIM_CTRLB_0	H4_242X_SDRC_ACTIM_CTRLB_0_133MHz -# define H4_2420_SDRC_RFR_CTRL		H4_242X_SDRC_RFR_CTRL_133MHz -# define H4_2420_SDRC_DLLAB_CTRL    H4_242x_SDRC_DLLAB_CTRL_133MHz -# define H4_2422_SDRC_ACTIM_CTRLA_0	H4_242X_SDRC_ACTIM_CTRLA_0_100MHz -# define H4_2422_SDRC_ACTIM_CTRLB_0	H4_242X_SDRC_ACTIM_CTRLB_0_100MHz -# define H4_2422_SDRC_RFR_CTRL		H4_242X_SDRC_RFR_CTRL_100MHz -# define H4_2422_SDRC_DLLAB_CTRL    H4_242x_SDRC_DLLAB_CTRL_100MHz -#endif - - -/* GPMC settings */ -#ifdef PRCM_CONFIG_II	     /* L3 at 100MHz */ -# ifdef CONFIG_SYS_NAND_BOOT -#  define H4_24XX_GPMC_CONFIG1_0   0x0 -#  define H4_24XX_GPMC_CONFIG2_0   0x00141400 -#  define H4_24XX_GPMC_CONFIG3_0   0x00141400 -#  define H4_24XX_GPMC_CONFIG4_0   0x0F010F01 -#  define H4_24XX_GPMC_CONFIG5_0   0x010C1414 -#  define H4_24XX_GPMC_CONFIG6_0   0x00000A80 -# else	/* else NOR */ -#  define H4_24XX_GPMC_CONFIG1_0   0x3 -#  define H4_24XX_GPMC_CONFIG2_0   0x000f0f01 -#  define H4_24XX_GPMC_CONFIG3_0   0x00050502 -#  define H4_24XX_GPMC_CONFIG4_0   0x0C060C06 -#  define H4_24XX_GPMC_CONFIG5_0   0x01131F1F -# endif /* endif CONFIG_SYS_NAND_BOOT */ -# define H4_24XX_GPMC_CONFIG7_0	  (0x00000C40|(H4_CS0_BASE >> 24)) -# define H4_24XX_GPMC_CONFIG1_1	  0x00011000 -# define H4_24XX_GPMC_CONFIG2_1	  0x001F1F00 -# define H4_24XX_GPMC_CONFIG3_1	  0x00080802 -# define H4_24XX_GPMC_CONFIG4_1	  0x1C091C09 -# define H4_24XX_GPMC_CONFIG5_1	  0x031A1F1F -# define H4_24XX_GPMC_CONFIG6_1	  0x000003C2 -# define H4_24XX_GPMC_CONFIG7_1	  (0x00000F40|(H4_CS1_BASE >> 24)) -#endif /* endif PRCM_CONFIG_II */ - -#ifdef PRCM_CONFIG_III	/* L3 at 133MHz */ -# ifdef CONFIG_SYS_NAND_BOOT -#  define H4_24XX_GPMC_CONFIG1_0   0x0 -#  define H4_24XX_GPMC_CONFIG2_0   0x00141400 -#  define H4_24XX_GPMC_CONFIG3_0   0x00141400 -#  define H4_24XX_GPMC_CONFIG4_0   0x0F010F01 -#  define H4_24XX_GPMC_CONFIG5_0   0x010C1414 -#  define H4_24XX_GPMC_CONFIG6_0   0x00000A80 -# else	/* NOR boot */ -#  define H4_24XX_GPMC_CONFIG1_0   0x3 -#  define H4_24XX_GPMC_CONFIG2_0   0x00151501 -#  define H4_24XX_GPMC_CONFIG3_0   0x00060602 -#  define H4_24XX_GPMC_CONFIG4_0   0x10081008 -#  define H4_24XX_GPMC_CONFIG5_0   0x01131F1F -#  define H4_24XX_GPMC_CONFIG6_0   0x000004c4 -# endif /* endif CONFIG_SYS_NAND_BOOT */ -# define H4_24XX_GPMC_CONFIG7_0	  (0x00000C40|(H4_CS0_BASE >> 24)) -# define H4_24XX_GPMC_CONFIG1_1	  0x00011000 -# define H4_24XX_GPMC_CONFIG2_1	  0x001f1f01 -# define H4_24XX_GPMC_CONFIG3_1	  0x00080803 -# define H4_24XX_GPMC_CONFIG4_1	  0x1C091C09 -# define H4_24XX_GPMC_CONFIG5_1	  0x041f1F1F -# define H4_24XX_GPMC_CONFIG6_1	  0x000004C4 -# define H4_24XX_GPMC_CONFIG7_1	  (0x00000F40|(H4_CS1_BASE >> 24)) -#endif /* endif CONFIG_SYS_PRCM_III */ - -#endif /* endif _OMAP24XX_MEM_H_ */ diff --git a/arch/arm/include/asm/arch-omap24xx/mux.h b/arch/arm/include/asm/arch-omap24xx/mux.h deleted file mode 100644 index 4fdb9c635..000000000 --- a/arch/arm/include/asm/arch-omap24xx/mux.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - * (C) Copyright 2004 - * Texas Instruments, <www.ti.com> - * Richard Woodruff <r-woodruff2@ti.com> - * - * 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 program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * 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., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ -#ifndef _OMAP2420_MUX_H_ -#define _OMAP2420_MUX_H_ - -#ifndef __ASSEMBLY__ -typedef  unsigned char uint8; -typedef  unsigned int uint32; - -void muxSetupSDRC(void); -void muxSetupGPMC(void); -void muxSetupUsb0(void); -void muxSetupUsbHost(void); -void muxSetupUart3(void); -void muxSetupI2C1(void); -void muxSetupUART1(void); -void muxSetupLCD(void); -void muxSetupCamera(void); -void muxSetupMMCSD(void) ; -void muxSetupTouchScreen(void) ; -void muxSetupHDQ(void); -#endif - -#define USB_OTG_CTRL			        ((volatile uint32 *)0x4805E30C) - -/* Pin Muxing registers used for HDQ (Smart battery) */ -#define CONTROL_PADCONF_HDQ_SIO         ((volatile unsigned char *)0x48000115) - -/* Pin Muxing registers used for GPMC */ -#define CONTROL_PADCONF_GPMC_D2_BYTE0	((volatile unsigned char *)0x48000088) -#define CONTROL_PADCONF_GPMC_D2_BYTE1	((volatile unsigned char *)0x48000089) -#define CONTROL_PADCONF_GPMC_D2_BYTE2	((volatile unsigned char *)0x4800008A) -#define CONTROL_PADCONF_GPMC_D2_BYTE3	((volatile unsigned char *)0x4800008B) - -#define CONTROL_PADCONF_GPMC_NCS0_BYTE0	((volatile unsigned char *)0x4800008C) -#define CONTROL_PADCONF_GPMC_NCS0_BYTE1	((volatile unsigned char *)0x4800008D) -#define CONTROL_PADCONF_GPMC_NCS0_BYTE2	((volatile unsigned char *)0x4800008E) -#define CONTROL_PADCONF_GPMC_NCS0_BYTE3	((volatile unsigned char *)0x4800008F) -#define CONTROL_PADCONF_GPMC_NCS0_BYTE4	(0x48000090) -#define CONTROL_PADCONF_GPMC_NCS0_BYTE5	(0x48000091) -#define CONTROL_PADCONF_GPMC_NCS0_BYTE6	(0x48000092) -#define CONTROL_PADCONF_GPMC_NCS0_BYTE7	(0x48000093) - -/* Pin Muxing registers used for SDRC */ -#define CONTROL_PADCONF_SDRC_NCS0_BYTE0 ((volatile unsigned char *)0x480000A0) -#define CONTROL_PADCONF_SDRC_NCS0_BYTE1 ((volatile unsigned char *)0x480000A1) -#define CONTROL_PADCONF_SDRC_NCS0_BYTE2 ((volatile unsigned char *)0x480000A2) -#define CONTROL_PADCONF_SDRC_NCS0_BYTE3 ((volatile unsigned char *)0x480000A3) - -#define CONTROL_PADCONF_SDRC_A14_BYTE0	((volatile unsigned char *)0x48000030) -#define CONTROL_PADCONF_SDRC_A14_BYTE1	((volatile unsigned char *)0x48000031) -#define CONTROL_PADCONF_SDRC_A14_BYTE2	((volatile unsigned char *)0x48000032) -#define CONTROL_PADCONF_SDRC_A14_BYTE3	((volatile unsigned char *)0x48000033) - -/* Pin Muxing registers used for Touch Screen (SPI) */ -#define CONTROL_PADCONF_SPI1_CLK        ((volatile unsigned char *)0x480000FF) -#define CONTROL_PADCONF_SPI1_SIMO       ((volatile unsigned char *)0x48000100) -#define CONTROL_PADCONF_SPI1_SOMI       ((volatile unsigned char *)0x48000101) -#define CONTROL_PADCONF_SPI1_NCS0       ((volatile unsigned char *)0x48000102) -#define CONTROL_PADCONF_SPI1_NCS1       (0x48000103) - -#define CONTROL_PADCONF_MCBSP1_FSR      ((volatile unsigned char *)0x4800010B) - -/* Pin Muxing registers used for MMCSD */ -#define CONTROL_PADCONF_MMC_CLKI        ((volatile unsigned char *)0x480000FE) -#define CONTROL_PADCONF_MMC_CLKO        ((volatile unsigned char *)0x480000F3) -#define CONTROL_PADCONF_MMC_CMD         ((volatile unsigned char *)0x480000F4) -#define CONTROL_PADCONF_MMC_DAT0        ((volatile unsigned char *)0x480000F5) -#define CONTROL_PADCONF_MMC_DAT1        ((volatile unsigned char *)0x480000F6) -#define CONTROL_PADCONF_MMC_DAT2        ((volatile unsigned char *)0x480000F7) -#define CONTROL_PADCONF_MMC_DAT3        ((volatile unsigned char *)0x480000F8) -#define CONTROL_PADCONF_MMC_DAT_DIR0    ((volatile unsigned char *)0x480000F9) -#define CONTROL_PADCONF_MMC_DAT_DIR1    ((volatile unsigned char *)0x480000FA) -#define CONTROL_PADCONF_MMC_DAT_DIR2    ((volatile unsigned char *)0x480000FB) -#define CONTROL_PADCONF_MMC_DAT_DIR3    ((volatile unsigned char *)0x480000FC) -#define CONTROL_PADCONF_MMC_CMD_DIR     ((volatile unsigned char *)0x480000FD) - -#define CONTROL_PADCONF_SDRC_A14        ((volatile unsigned char *)0x48000030) -#define CONTROL_PADCONF_SDRC_A13        ((volatile unsigned char *)0x48000031) - -/* Pin Muxing registers used for CAMERA */ -#define CONTROL_PADCONF_SYS_NRESWARM    ((volatile unsigned char *)0x4800012B) - -#define CONTROL_PADCONF_CAM_XCLK        ((volatile unsigned char *)0x480000DC) -#define CONTROL_PADCONF_CAM_LCLK        ((volatile unsigned char *)0x480000DB) -#define CONTROL_PADCONF_CAM_VS          ((volatile unsigned char *)0x480000DA) -#define CONTROL_PADCONF_CAM_HS          ((volatile unsigned char *)0x480000D9) -#define CONTROL_PADCONF_CAM_D0          ((volatile unsigned char *)0x480000D8) -#define CONTROL_PADCONF_CAM_D1          ((volatile unsigned char *)0x480000D7) -#define CONTROL_PADCONF_CAM_D2          ((volatile unsigned char *)0x480000D6) -#define CONTROL_PADCONF_CAM_D3          ((volatile unsigned char *)0x480000D5) -#define CONTROL_PADCONF_CAM_D4          ((volatile unsigned char *)0x480000D4) -#define CONTROL_PADCONF_CAM_D5          ((volatile unsigned char *)0x480000D3) -#define CONTROL_PADCONF_CAM_D6          ((volatile unsigned char *)0x480000D2) -#define CONTROL_PADCONF_CAM_D7          ((volatile unsigned char *)0x480000D1) -#define CONTROL_PADCONF_CAM_D8          ((volatile unsigned char *)0x480000D0) -#define CONTROL_PADCONF_CAM_D9          ((volatile unsigned char *)0x480000CF) - -/* Pin Muxing registers used for LCD */ -#define CONTROL_PADCONF_DSS_D0          ((volatile unsigned char *)0x480000B3) -#define CONTROL_PADCONF_DSS_D1          ((volatile unsigned char *)0x480000B4) -#define CONTROL_PADCONF_DSS_D2          ((volatile unsigned char *)0x480000B5) -#define CONTROL_PADCONF_DSS_D3          ((volatile unsigned char *)0x480000B6) -#define CONTROL_PADCONF_DSS_D4          ((volatile unsigned char *)0x480000B7) -#define CONTROL_PADCONF_DSS_D5          ((volatile unsigned char *)0x480000B8) -#define CONTROL_PADCONF_DSS_D6          ((volatile unsigned char *)0x480000B9) -#define CONTROL_PADCONF_DSS_D7          ((volatile unsigned char *)0x480000BA) -#define CONTROL_PADCONF_DSS_D8          ((volatile unsigned char *)0x480000BB) -#define CONTROL_PADCONF_DSS_D9          ((volatile unsigned char *)0x480000BC) -#define CONTROL_PADCONF_DSS_D10         ((volatile unsigned char *)0x480000BD) -#define CONTROL_PADCONF_DSS_D11         ((volatile unsigned char *)0x480000BE) -#define CONTROL_PADCONF_DSS_D12         ((volatile unsigned char *)0x480000BF) -#define CONTROL_PADCONF_DSS_D13         ((volatile unsigned char *)0x480000C0) -#define CONTROL_PADCONF_DSS_D14         ((volatile unsigned char *)0x480000C1) -#define CONTROL_PADCONF_DSS_D15         ((volatile unsigned char *)0x480000C2) -#define CONTROL_PADCONF_DSS_D16         ((volatile unsigned char *)0x480000C3) -#define CONTROL_PADCONF_DSS_D17         ((volatile unsigned char *)0x480000C4) -#define CONTROL_PADCONF_DSS_PCLK        ((volatile unsigned char *)0x480000CB) -#define CONTROL_PADCONF_DSS_VSYNC       ((volatile unsigned char *)0x480000CC) -#define CONTROL_PADCONF_DSS_HSYNC       ((volatile unsigned char *)0x480000CD) -#define CONTROL_PADCONF_DSS_ACBIAS      ((volatile unsigned char *)0x480000CE) - -/* Pin Muxing registers used for UART1 */ -#define CONTROL_PADCONF_UART1_CTS       ((volatile unsigned char *)0x480000C5) -#define CONTROL_PADCONF_UART1_RTS       ((volatile unsigned char *)0x480000C6) -#define CONTROL_PADCONF_UART1_TX        ((volatile unsigned char *)0x480000C7) -#define CONTROL_PADCONF_UART1_RX        ((volatile unsigned char *)0x480000C8) - -/* Pin Muxing registers used for I2C1 */ -#define CONTROL_PADCONF_I2C1_SCL        ((volatile unsigned char *)0x48000111) -#define CONTROL_PADCONF_I2C1_SDA        ((volatile unsigned char *)0x48000112) - -/* Pin Muxing registres used for USB0. */ -#define CONTROL_PADCONF_USB0_PUEN		((volatile uint8 *)0x4800011D) -#define CONTROL_PADCONF_USB0_VP			((volatile uint8 *)0x4800011E) -#define CONTROL_PADCONF_USB0_VM			((volatile uint8 *)0x4800011F) -#define CONTROL_PADCONF_USB0_RCV		((volatile uint8 *)0x48000120) -#define CONTROL_PADCONF_USB0_TXEN		((volatile uint8 *)0x48000121) -#define CONTROL_PADCONF_USB0_SE0		((volatile uint8 *)0x48000122) -#define CONTROL_PADCONF_USB0_DAT		((volatile uint8 *)0x48000123) - -/* Pin Muxing registres used for USB1. */ -#define CONTROL_PADCONF_USB1_RCV	(0x480000EB) -#define CONTROL_PADCONF_USB1_TXEN	(0x480000EC) - -/* Pin Muxing registers used for UART3/IRDA */ -#define CONTROL_PADCONF_UART3_TX_IRTX	((volatile uint8 *)0x48000118) -#define CONTROL_PADCONF_UART3_RX_IRRX	((volatile uint8 *)0x48000119) - -/* Pin Muxing registers used for GPIO */ -#define CONTROL_PADCONF_GPIO69		(0x480000ED) -#define CONTROL_PADCONF_GPIO70		(0x480000EE) -#define CONTROL_PADCONF_GPIO102		(0x48000116) -#define CONTROL_PADCONF_GPIO103		(0x48000117) -#define CONTROL_PADCONF_GPIO104		(0x48000118) -#define CONTROL_PADCONF_GPIO105		(0x48000119) - -#endif diff --git a/arch/arm/include/asm/arch-omap24xx/omap2420.h b/arch/arm/include/asm/arch-omap24xx/omap2420.h deleted file mode 100644 index 5724f5d4b..000000000 --- a/arch/arm/include/asm/arch-omap24xx/omap2420.h +++ /dev/null @@ -1,236 +0,0 @@ -/* - * (C) Copyright 2004 - * Texas Instruments, <www.ti.com> - * Richard Woodruff <r-woodruff2@ti.com> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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 program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * 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., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef _OMAP2420_SYS_H_ -#define _OMAP2420_SYS_H_ - -#include <asm/sizes.h> - -/* - * 2420 specific Section - */ - -/* L3 Firewall */ -#define A_REQINFOPERM0        0x68005048 -#define A_READPERM0           0x68005050 -#define A_WRITEPERM0          0x68005058 -/* #define GP_DEVICE	(BIT8|BIT9)  FIXME -- commented out to make compile -- FIXME */ - -/* L3 Firewall */ -#define A_REQINFOPERM0        0x68005048 -#define A_READPERM0           0x68005050 -#define A_WRITEPERM0          0x68005058 - -/* CONTROL */ -#define OMAP2420_CTRL_BASE    (0x48000000) -#define CONTROL_STATUS        (OMAP2420_CTRL_BASE + 0x2F8) - -/* device type */ -#define TST_DEVICE	0x0 -#define EMU_DEVICE	0x1 -#define HS_DEVICE	0x2 -#define GP_DEVICE	0x3 - -/* TAP information */ -#define OMAP2420_TAP_BASE     (0x48014000) -#define TAP_IDCODE_REG        (OMAP2420_TAP_BASE+0x204) -#define PRODUCTION_ID         (OMAP2420_TAP_BASE+0x208) - -/* GPMC */ -#define OMAP2420_GPMC_BASE    (0x6800A000) -#define GPMC_SYSCONFIG        (OMAP2420_GPMC_BASE+0x10) -#define GPMC_IRQENABLE        (OMAP2420_GPMC_BASE+0x1C) -#define GPMC_TIMEOUT_CONTROL  (OMAP2420_GPMC_BASE+0x40) -#define GPMC_CONFIG           (OMAP2420_GPMC_BASE+0x50) -#define GPMC_CONFIG1_0        (OMAP2420_GPMC_BASE+0x60) -#define GPMC_CONFIG2_0        (OMAP2420_GPMC_BASE+0x64) -#define GPMC_CONFIG3_0        (OMAP2420_GPMC_BASE+0x68) -#define GPMC_CONFIG4_0        (OMAP2420_GPMC_BASE+0x6C) -#define GPMC_CONFIG5_0        (OMAP2420_GPMC_BASE+0x70) -#define GPMC_CONFIG6_0        (OMAP2420_GPMC_BASE+0x74) -#define GPMC_CONFIG7_0	      (OMAP2420_GPMC_BASE+0x78) -#define GPMC_CONFIG1_1        (OMAP2420_GPMC_BASE+0x90) -#define GPMC_CONFIG2_1        (OMAP2420_GPMC_BASE+0x94) -#define GPMC_CONFIG3_1        (OMAP2420_GPMC_BASE+0x98) -#define GPMC_CONFIG4_1        (OMAP2420_GPMC_BASE+0x9C) -#define GPMC_CONFIG5_1        (OMAP2420_GPMC_BASE+0xA0) -#define GPMC_CONFIG6_1        (OMAP2420_GPMC_BASE+0xA4) -#define GPMC_CONFIG7_1	      (OMAP2420_GPMC_BASE+0xA8) -#define GPMC_CONFIG1_2        (OMAP2420_GPMC_BASE+0xC0) -#define GPMC_CONFIG2_2        (OMAP2420_GPMC_BASE+0xC4) -#define GPMC_CONFIG3_2        (OMAP2420_GPMC_BASE+0xC8) -#define GPMC_CONFIG4_2        (OMAP2420_GPMC_BASE+0xCC) -#define GPMC_CONFIG5_2        (OMAP2420_GPMC_BASE+0xD0) -#define GPMC_CONFIG6_2        (OMAP2420_GPMC_BASE+0xD4) -#define GPMC_CONFIG7_2        (OMAP2420_GPMC_BASE+0xD8) -#define GPMC_CONFIG1_3        (OMAP2420_GPMC_BASE+0xF0) -#define GPMC_CONFIG2_3        (OMAP2420_GPMC_BASE+0xF4) -#define GPMC_CONFIG3_3        (OMAP2420_GPMC_BASE+0xF8) -#define GPMC_CONFIG4_3        (OMAP2420_GPMC_BASE+0xFC) -#define GPMC_CONFIG5_3        (OMAP2420_GPMC_BASE+0x100) -#define GPMC_CONFIG6_3        (OMAP2420_GPMC_BASE+0x104) -#define GPMC_CONFIG7_3	      (OMAP2420_GPMC_BASE+0x108) - -/* SMS */ -#define OMAP2420_SMS_BASE 0x68008000 -#define SMS_SYSCONFIG     (OMAP2420_SMS_BASE+0x10) -#define SMS_CLASS_ARB0    (OMAP2420_SMS_BASE+0xD0) -# define BURSTCOMPLETE_GROUP7    BIT31 - -/* SDRC */ -#define OMAP2420_SDRC_BASE 0x68009000 -#define SDRC_SYSCONFIG     (OMAP2420_SDRC_BASE+0x10) -#define SDRC_STATUS        (OMAP2420_SDRC_BASE+0x14) -#define SDRC_CS_CFG        (OMAP2420_SDRC_BASE+0x40) -#define SDRC_SHARING       (OMAP2420_SDRC_BASE+0x44) -#define SDRC_DLLA_CTRL     (OMAP2420_SDRC_BASE+0x60) -#define SDRC_DLLB_CTRL     (OMAP2420_SDRC_BASE+0x68) -#define SDRC_POWER         (OMAP2420_SDRC_BASE+0x70) -#define SDRC_MCFG_0        (OMAP2420_SDRC_BASE+0x80) -#define SDRC_MR_0          (OMAP2420_SDRC_BASE+0x84) -#define SDRC_ACTIM_CTRLA_0 (OMAP2420_SDRC_BASE+0x9C) -#define SDRC_ACTIM_CTRLB_0 (OMAP2420_SDRC_BASE+0xA0) -#define SDRC_ACTIM_CTRLA_1 (OMAP2420_SDRC_BASE+0xC4) -#define SDRC_ACTIM_CTRLB_1 (OMAP2420_SDRC_BASE+0xC8) -#define SDRC_RFR_CTRL      (OMAP2420_SDRC_BASE+0xA4) -#define SDRC_MANUAL_0      (OMAP2420_SDRC_BASE+0xA8) -#define OMAP2420_SDRC_CS0  0x80000000 -#define OMAP2420_SDRC_CS1  0xA0000000 -#define CMD_NOP            0x0 -#define CMD_PRECHARGE      0x1 -#define CMD_AUTOREFRESH    0x2 -#define CMD_ENTR_PWRDOWN   0x3 -#define CMD_EXIT_PWRDOWN   0x4 -#define CMD_ENTR_SRFRSH    0x5 -#define CMD_CKE_HIGH       0x6 -#define CMD_CKE_LOW        0x7 -#define SOFTRESET          BIT1 -#define SMART_IDLE         (0x2 << 3) -#define REF_ON_IDLE        (0x1 << 6) - - -/* UART */ -#define OMAP2420_UART1	      0x4806A000 -#define OMAP2420_UART2	      0x4806C000 -#define OMAP2420_UART3        0x4806E000 - -/* General Purpose Timers */ -#define OMAP2420_GPT1         0x48028000 -#define OMAP2420_GPT2         0x4802A000 -#define OMAP2420_GPT3         0x48078000 -#define OMAP2420_GPT4         0x4807A000 -#define OMAP2420_GPT5         0x4807C000 -#define OMAP2420_GPT6         0x4807E000 -#define OMAP2420_GPT7         0x48080000 -#define OMAP2420_GPT8         0x48082000 -#define OMAP2420_GPT9         0x48084000 -#define OMAP2420_GPT10        0x48086000 -#define OMAP2420_GPT11        0x48088000 -#define OMAP2420_GPT12        0x4808A000 - -/* timer regs offsets (32 bit regs) */ -#define TIDR       0x0      /* r */ -#define TIOCP_CFG  0x10     /* rw */ -#define TISTAT     0x14     /* r */ -#define TISR       0x18     /* rw */ -#define TIER       0x1C     /* rw */ -#define TWER       0x20     /* rw */ -#define TCLR       0x24     /* rw */ -#define TCRR       0x28     /* rw */ -#define TLDR       0x2C     /* rw */ -#define TTGR       0x30     /* rw */ -#define TWPS       0x34     /* r */ -#define TMAR       0x38     /* rw */ -#define TCAR1      0x3c     /* r */ -#define TSICR      0x40     /* rw */ -#define TCAR2      0x44     /* r */ - -/* WatchDog Timers (1 secure, 3 GP) */ -#define WD1_BASE              0x48020000 -#define WD2_BASE              0x48022000 -#define WD3_BASE              0x48024000 -#define WD4_BASE              0x48026000 -#define WWPS       0x34     /* r */ -#define WSPR       0x48     /* rw */ -#define WD_UNLOCK1 0xAAAA -#define WD_UNLOCK2 0x5555 - -/* PRCM */ -#define OMAP2420_CM_BASE 0x48008000 -#define PRCM_CLKCFG_CTRL (OMAP2420_CM_BASE+0x080) -#define CM_CLKSEL_MPU    (OMAP2420_CM_BASE+0x140) -#define CM_FCLKEN1_CORE  (OMAP2420_CM_BASE+0x200) -#define CM_FCLKEN2_CORE  (OMAP2420_CM_BASE+0x204) -#define CM_ICLKEN1_CORE  (OMAP2420_CM_BASE+0x210) -#define CM_ICLKEN2_CORE  (OMAP2420_CM_BASE+0x214) -#define CM_CLKSEL1_CORE  (OMAP2420_CM_BASE+0x240) -#define CM_CLKSEL_WKUP   (OMAP2420_CM_BASE+0x440) -#define CM_CLKSEL2_CORE  (OMAP2420_CM_BASE+0x244) -#define CM_CLKSEL_GFX    (OMAP2420_CM_BASE+0x340) -#define PM_RSTCTRL_WKUP  (OMAP2420_CM_BASE+0x450) -#define CM_CLKEN_PLL     (OMAP2420_CM_BASE+0x500) -#define CM_IDLEST_CKGEN  (OMAP2420_CM_BASE+0x520) -#define CM_CLKSEL1_PLL   (OMAP2420_CM_BASE+0x540) -#define CM_CLKSEL2_PLL   (OMAP2420_CM_BASE+0x544) -#define CM_CLKSEL_DSP    (OMAP2420_CM_BASE+0x840) - -/* - * H4 specific Section - */ - -/* - *  The 2420's chip selects are programmable.  The mask ROM - *  does configure CS0 to 0x08000000 before dispatch.  So, if - *  you want your code to live below that address, you have to - *  be prepared to jump though hoops, to reset the base address. - */ -#if defined(CONFIG_OMAP2420H4) -/* GPMC */ -#ifdef CONFIG_VIRTIO_A        /* Pre version B */ -# define H4_CS0_BASE           0x08000000  /* flash (64 Meg aligned) */ -# define H4_CS1_BASE           0x04000000  /* debug board */ -# define H4_CS2_BASE           0x0A000000  /* wifi board */ -#else -# define H4_CS0_BASE           0x08000000  /* flash (64 Meg aligned) */ -# define H4_CS1_BASE           0x04000000  /* debug board */ -# define H4_CS2_BASE           0x0C000000  /* wifi board */ -#endif - -/* base address for indirect vectors (internal boot mode) */ -#define SRAM_OFFSET0          0x40000000 -#define SRAM_OFFSET1          0x00200000 -#define SRAM_OFFSET2          0x0000F800 -#define SRAM_VECT_CODE       (SRAM_OFFSET0|SRAM_OFFSET1|SRAM_OFFSET2) - -/* FPGA on Debug board.*/ -#define ETH_CONTROL_REG       (H4_CS1_BASE+0x30b) -#define LAN_RESET_REGISTER    (H4_CS1_BASE+0x1c) -#endif  /* endif CONFIG_2420H4 */ - -/* Common */ -#define LOW_LEVEL_SRAM_STACK  0x4020FFFC - -#define PERIFERAL_PORT_BASE   0x480FE003 - -#endif diff --git a/arch/arm/include/asm/arch-omap24xx/sys_info.h b/arch/arm/include/asm/arch-omap24xx/sys_info.h deleted file mode 100644 index 53c231a5e..000000000 --- a/arch/arm/include/asm/arch-omap24xx/sys_info.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * (C) Copyright 2004 - * Texas Instruments, <www.ti.com> - * Richard Woodruff <r-woodruff2@ti.com> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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 program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * 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., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef _OMAP24XX_SYS_INFO_H_ -#define _OMAP24XX_SYS_INFO_H_ - -typedef struct  h4_system_data { -	/* base board info */ -	u32 base_b_rev;		/* rev from base board i2c */ -	/* cpu board info */ -	u32 cpu_b_rev;		/* rev from cpu board i2c */ -	u32 cpu_b_mux;		/* mux type on daughter board */ -	u32 cpu_b_ddr_type;	/* mem type */ -	u32 cpu_b_ddr_speed;	/* ddr speed rating */ -	u32 cpu_b_switches;	/* boot ctrl switch settings */ -	/* cpu info */ -	u32 cpu_type;		/* type of cpu; 2420, 2422, 2430,...*/ -	u32 cpu_rev;		/* rev of given cpu; ES1, ES2,...*/ -} h4_sys_data; - -#define XDR_POP           5      /* package on package part */ -#define SDR_DISCRETE      4      /* 128M memory SDR module*/ -#define DDR_STACKED       3      /* stacked part on 2422 */ -#define DDR_COMBO         2      /* combo part on cpu daughter card (menalaeus) */ -#define DDR_DISCRETE      1      /* 2x16 parts on daughter card */ - -#define DDR_100           100    /* type found on most mem d-boards */ -#define DDR_111           111    /* some combo parts */ -#define DDR_133           133    /* most combo, some mem d-boards */ -#define DDR_165           165    /* future parts */ - -#define CPU_2420          0x2420 -#define CPU_2422          0x2422 /* 2420 + 64M stacked */ -#define CPU_2423          0x2423 /* 2420 + 96M stacked */ - -#define CPU_2422_ES1      1 -#define CPU_2422_ES2      2 -#define CPU_2420_ES1      1 -#define CPU_2420_ES2      2 -#define CPU_2420_2422_ES1 1 - -#define CPU_2420_CHIPID   0x0B5D9000 -#define CPU_24XX_ID_MASK  0x0FFFF000 -#define CPU_242X_REV_MASK 0xF0000000 -#define CPU_242X_PID_MASK 0x000F0000 - -#define BOARD_H4_MENELAUS 1 -#define BOARD_H4_SDP      2 - -#define GPMC_MUXED        1 -#define GPMC_NONMUXED     0 - -#define TYPE_NAND         0x800   /* bit pos for nand in gpmc reg */ -#define TYPE_NOR          0x000 - -#define WIDTH_8BIT        0x0000 -#define WIDTH_16BIT       0x1000  /* bit pos for 16 bit in gpmc */ - -#define I2C_MENELAUS 0x72	/* i2c id for companion chip */ - -#endif diff --git a/arch/arm/include/asm/arch-omap24xx/sys_proto.h b/arch/arm/include/asm/arch-omap24xx/sys_proto.h deleted file mode 100644 index 9d8e5b262..000000000 --- a/arch/arm/include/asm/arch-omap24xx/sys_proto.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * (C) Copyright 2004 - * Texas Instruments, <www.ti.com> - * Richard Woodruff <r-woodruff2@ti.com> - * - * 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 program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR /PURPOSE.  See the - * GNU General Public License for more details. - * - * 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., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA -  */ -#ifndef _OMAP24XX_SYS_PROTO_H_ -#define _OMAP24XX_SYS_PROTO_H_ - -void prcm_init(void); -void memif_init(void); -void sdrc_init(void); -void do_sdrc_init(u32,u32); -void gpmc_init(void); - -void ether_init(void); -void watchdog_init(void); -void set_muxconf_regs(void); -void peripheral_enable(void); - -u32 get_cpu_type(void); -u32 get_cpu_rev(void); -u32 get_mem_type(void); -u32 get_sysboot_value(void); -u32 get_gpmc0_base(void); -u32 is_gpmc_muxed(void); -u32 get_gpmc0_type(void); -u32 get_gpmc0_width(void); -u32 wait_on_value(u32 read_bit_mask, u32 match_value, u32 read_addr, u32 bound); -u32 get_board_type(void); -void display_board_info(u32); -void update_mux(u32,u32); -u32 get_sdr_cs_size(u32 offset); - -u32 running_in_sdram(void); -u32 running_in_sram(void); -u32 running_in_flash(void); -u32 running_from_internal_boot(void); -u32 get_device_type(void); -#endif diff --git a/arch/arm/include/asm/arch-omap3/clocks.h b/arch/arm/include/asm/arch-omap3/clock.h index bed0002ec..bed0002ec 100644 --- a/arch/arm/include/asm/arch-omap3/clocks.h +++ b/arch/arm/include/asm/arch-omap3/clock.h diff --git a/arch/arm/include/asm/arch-omap3/omap3.h b/arch/arm/include/asm/arch-omap3/omap3.h index 2b5e9aeae..c57599a93 100644 --- a/arch/arm/include/asm/arch-omap3/omap3.h +++ b/arch/arm/include/asm/arch-omap3/omap3.h @@ -253,4 +253,11 @@ struct gpio {  #define OMAP3_EMU_HAL_START_HAL_CRITICAL	4 +/* ABB settings */ +#define OMAP_ABB_SETTLING_TIME		30 +#define OMAP_ABB_CLOCK_CYCLES		8 + +/* ABB tranxdone mask */ +#define OMAP_ABB_MPU_TXDONE_MASK	(0x1 << 26) +  #endif diff --git a/arch/arm/include/asm/arch-omap4/clocks.h b/arch/arm/include/asm/arch-omap4/clock.h index ed7a1c8be..d14d8fb8a 100644 --- a/arch/arm/include/asm/arch-omap4/clocks.h +++ b/arch/arm/include/asm/arch-omap4/clock.h @@ -34,25 +34,6 @@   */  #define LDELAY		1000000 -#define CM_CLKMODE_DPLL_CORE		0x4A004120 -#define CM_CLKMODE_DPLL_PER		0x4A008140 -#define CM_CLKMODE_DPLL_MPU		0x4A004160 -#define CM_CLKSEL_CORE			0x4A004100 - -/* DPLL register offsets */ -#define CM_CLKMODE_DPLL		0 -#define CM_IDLEST_DPLL		0x4 -#define CM_AUTOIDLE_DPLL	0x8 -#define CM_CLKSEL_DPLL		0xC -#define CM_DIV_M2_DPLL		0x10 -#define CM_DIV_M3_DPLL		0x14 -#define CM_DIV_M4_DPLL		0x18 -#define CM_DIV_M5_DPLL		0x1C -#define CM_DIV_M6_DPLL		0x20 -#define CM_DIV_M7_DPLL		0x24 - -#define DPLL_CLKOUT_DIV_MASK	0x1F /* post-divider mask */ -  /* CM_DLL_CTRL */  #define CM_DLL_CTRL_OVERRIDE_SHIFT	0  #define CM_DLL_CTRL_OVERRIDE_MASK	(1 << 0) @@ -94,10 +75,8 @@  #define CM_CLKSEL_DCC_EN_SHIFT			22  #define CM_CLKSEL_DCC_EN_MASK			(1 << 22) -#define OMAP4_DPLL_MAX_N	127 -  /* CM_SYS_CLKSEL */ -#define CM_SYS_CLKSEL_SYS_CLKSEL_MASK	7 +#define CM_SYS_CLKSEL_SYS_CLKSEL_MASK  7  /* CM_CLKSEL_CORE */  #define CLKSEL_CORE_SHIFT	0 @@ -181,9 +160,7 @@  #define MPU_CLKCTRL_CLKSEL_ABE_DIV_MODE_MASK	(1 << 25)  /* Clock frequencies */ -#define OMAP_SYS_CLK_FREQ_38_4_MHZ	38400000  #define OMAP_SYS_CLK_IND_38_4_MHZ	6 -#define OMAP_32K_CLK_FREQ		32768  /* PRM_VC_VAL_BYPASS */  #define PRM_VC_I2C_CHANNEL_FREQ_KHZ	400 @@ -234,14 +211,13 @@  #define ALTCLKSRC_MODE_ACTIVE		1 -/* Defines for DPLL setup */ -#define DPLL_LOCKED_FREQ_TOLERANCE_0		0 -#define DPLL_LOCKED_FREQ_TOLERANCE_500_KHZ	500 -#define DPLL_LOCKED_FREQ_TOLERANCE_1_MHZ	1000 -  #define DPLL_NO_LOCK	0  #define DPLL_LOCK	1 +/* Clock Defines */ +#define V_OSCK			38400000	/* Clock output from T2 */ +#define V_SCLK                   V_OSCK +  struct omap4_scrm_regs {  	u32 revision;           /* 0x0000 */  	u32 pad00[63]; diff --git a/arch/arm/include/asm/arch-omap4/cpu.h b/arch/arm/include/asm/arch-omap4/cpu.h index 3a0bfbf0c..311c6ff52 100644 --- a/arch/arm/include/asm/arch-omap4/cpu.h +++ b/arch/arm/include/asm/arch-omap4/cpu.h @@ -115,18 +115,6 @@ struct watchdog {  #define WD_UNLOCK1		0xAAAA  #define WD_UNLOCK2		0x5555 -#define SYSCLKDIV_1		(0x1 << 6) -#define SYSCLKDIV_2		(0x1 << 7) - -#define CLKSEL_GPT1		(0x1 << 0) - -#define EN_GPT1			(0x1 << 0) -#define EN_32KSYNC		(0x1 << 2) - -#define ST_WDT2			(0x1 << 5) - -#define RESETDONE		(0x1 << 0) -  #define TCLR_ST			(0x1 << 0)  #define TCLR_AR			(0x1 << 1)  #define TCLR_PRE		(0x1 << 5) diff --git a/arch/arm/include/asm/arch-omap4/omap.h b/arch/arm/include/asm/arch-omap4/omap.h index e9a6ffeb8..66afd9249 100644 --- a/arch/arm/include/asm/arch-omap4/omap.h +++ b/arch/arm/include/asm/arch-omap4/omap.h @@ -47,14 +47,6 @@  #define DRAM_ADDR_SPACE_START	OMAP44XX_DRAM_ADDR_SPACE_START  #define DRAM_ADDR_SPACE_END	OMAP44XX_DRAM_ADDR_SPACE_END -/* CONTROL */ -#define CTRL_BASE		(OMAP44XX_L4_CORE_BASE + 0x2000) -#define CONTROL_PADCONF_CORE	(OMAP44XX_L4_CORE_BASE + 0x100000) -#define CONTROL_PADCONF_WKUP	(OMAP44XX_L4_CORE_BASE + 0x31E000) - -/* LPDDR2 IO regs */ -#define LPDDR2_IO_REGS_BASE	0x4A100638 -  /* CONTROL_ID_CODE */  #define CONTROL_ID_CODE		0x4A002204 @@ -79,15 +71,9 @@  /* Watchdog Timer2 - MPU watchdog */  #define WDT2_BASE		(OMAP44XX_L4_WKUP_BASE + 0x14000) -/* 32KTIMER */ -#define SYNC_32KTIMER_BASE	(OMAP44XX_L4_WKUP_BASE + 0x4000) -  /* GPMC */  #define OMAP44XX_GPMC_BASE	0x50000000 -/* SYSTEM CONTROL MODULE */ -#define SYSCTRL_GENERAL_CORE_BASE	0x4A002000 -  /*   * Hardware Register Details   */ @@ -143,4 +129,12 @@ struct s32ktimer {  #define NON_SECURE_SRAM_END	0x4030E000	/* Not inclusive */  /* base address for indirect vectors (internal boot mode) */  #define SRAM_ROM_VECT_BASE	0x4030D000 + +/* ABB settings */ +#define OMAP_ABB_SETTLING_TIME		50 +#define OMAP_ABB_CLOCK_CYCLES		16 + +/* ABB tranxdone mask */ +#define OMAP_ABB_MPU_TXDONE_MASK	(0x1 << 7) +  #endif diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h b/arch/arm/include/asm/arch-omap4/sys_proto.h index 039a1f260..e41346614 100644 --- a/arch/arm/include/asm/arch-omap4/sys_proto.h +++ b/arch/arm/include/asm/arch-omap4/sys_proto.h @@ -22,7 +22,7 @@  #define _SYS_PROTO_H_  #include <asm/arch/omap.h> -#include <asm/arch/clocks.h> +#include <asm/arch/clock.h>  #include <asm/io.h>  #include <asm/omap_common.h>  #include <asm/arch/mux_omap4.h> @@ -54,9 +54,11 @@ void cancel_out(u32 *num, u32 *den, u32 den_limit);  void sdram_init(void);  u32 omap_sdram_size(void);  u32 cortex_rev(void); +void save_omap_boot_params(void);  void init_omap_revision(void);  void do_io_settings(void); -void omap_vc_init(u16 speed_khz); +void sri2c_init(void); +void gpi2c_init(void);  int omap_vc_bypass_send_value(u8 sa, u8 reg_addr, u8 reg_data);  u32 warm_reset(void);  void force_emif_self_refresh(void); diff --git a/arch/arm/include/asm/arch-omap5/clocks.h b/arch/arm/include/asm/arch-omap5/clock.h index 68afa7669..4d2765d87 100644 --- a/arch/arm/include/asm/arch-omap5/clocks.h +++ b/arch/arm/include/asm/arch-omap5/clock.h @@ -35,19 +35,6 @@   */  #define LDELAY		1000000 -#define CM_CLKMODE_DPLL_CORE		(OMAP54XX_L4_CORE_BASE + 0x4120) -#define CM_CLKMODE_DPLL_PER		(OMAP54XX_L4_CORE_BASE + 0x8140) -#define CM_CLKMODE_DPLL_MPU		(OMAP54XX_L4_CORE_BASE + 0x4160) -#define CM_CLKSEL_CORE			(OMAP54XX_L4_CORE_BASE + 0x4100) - -/* DPLL register offsets */ -#define CM_CLKMODE_DPLL		0 -#define CM_IDLEST_DPLL		0x4 -#define CM_AUTOIDLE_DPLL	0x8 -#define CM_CLKSEL_DPLL		0xC - -#define DPLL_CLKOUT_DIV_MASK	0x1F /* post-divider mask */ -  /* CM_DLL_CTRL */  #define CM_DLL_CTRL_OVERRIDE_SHIFT		0  #define CM_DLL_CTRL_OVERRIDE_MASK		(1 << 0) @@ -93,10 +80,8 @@  #define CM_CLKSEL_DCC_EN_SHIFT			22  #define CM_CLKSEL_DCC_EN_MASK			(1 << 22) -#define OMAP4_DPLL_MAX_N	127 -  /* CM_SYS_CLKSEL */ -#define CM_SYS_CLKSEL_SYS_CLKSEL_MASK	7 +#define CM_SYS_CLKSEL_SYS_CLKSEL_MASK  7  /* CM_CLKSEL_CORE */  #define CLKSEL_CORE_SHIFT	0 @@ -113,6 +98,12 @@  #define CM_ABE_PLL_REF_CLKSEL_CLKSEL_SYSCLK	0  #define CM_ABE_PLL_REF_CLKSEL_CLKSEL_32KCLK	1 +/* CM_CLKSEL_ABE_PLL_SYS */ +#define CM_CLKSEL_ABE_PLL_SYS_CLKSEL_SHIFT	0 +#define CM_CLKSEL_ABE_PLL_SYS_CLKSEL_MASK	1 +#define CM_ABE_PLL_SYS_CLKSEL_SYSCLK1		0 +#define CM_ABE_PLL_SYS_CLKSEL_SYSCLK2		1 +  /* CM_BYPCLK_DPLL_IVA */  #define CM_BYPCLK_DPLL_IVA_CLKSEL_SHIFT		0  #define CM_BYPCLK_DPLL_IVA_CLKSEL_MASK		3 @@ -195,9 +186,7 @@  #define RSTTIME1_MASK				(0x3ff << 0)  /* Clock frequencies */ -#define OMAP_SYS_CLK_FREQ_38_4_MHZ	38400000  #define OMAP_SYS_CLK_IND_38_4_MHZ	6 -#define OMAP_32K_CLK_FREQ		32768  /* PRM_VC_VAL_BYPASS */  #define PRM_VC_I2C_CHANNEL_FREQ_KHZ	400 @@ -229,9 +218,54 @@  #define VDD_MPU_ES2_LOW 880  #define VDD_MM_ES2_LOW 880 +/* TPS659038 Voltage settings in mv for OPP_NOMINAL */ +#define VDD_MPU_DRA752		1090 +#define VDD_EVE_DRA752		1060 +#define VDD_GPU_DRA752		1060 +#define VDD_CORE_DRA752		1030 +#define VDD_IVA_DRA752		1060 + +/* Efuse register offsets for DRA7xx platform */ +#define DRA752_EFUSE_BASE	0x4A002000 +#define DRA752_EFUSE_REGBITS	16 +/* STD_FUSE_OPP_VMIN_IVA_2 */ +#define STD_FUSE_OPP_VMIN_IVA_NOM	(DRA752_EFUSE_BASE + 0x05CC) +/* STD_FUSE_OPP_VMIN_IVA_3 */ +#define STD_FUSE_OPP_VMIN_IVA_OD	(DRA752_EFUSE_BASE + 0x05D0) +/* STD_FUSE_OPP_VMIN_IVA_4 */ +#define STD_FUSE_OPP_VMIN_IVA_HIGH	(DRA752_EFUSE_BASE + 0x05D4) +/* STD_FUSE_OPP_VMIN_DSPEVE_2 */ +#define STD_FUSE_OPP_VMIN_DSPEVE_NOM	(DRA752_EFUSE_BASE + 0x05E0) +/* STD_FUSE_OPP_VMIN_DSPEVE_3 */ +#define STD_FUSE_OPP_VMIN_DSPEVE_OD	(DRA752_EFUSE_BASE + 0x05E4) +/* STD_FUSE_OPP_VMIN_DSPEVE_4 */ +#define STD_FUSE_OPP_VMIN_DSPEVE_HIGH	(DRA752_EFUSE_BASE + 0x05E8) +/* STD_FUSE_OPP_VMIN_CORE_2 */ +#define STD_FUSE_OPP_VMIN_CORE_NOM	(DRA752_EFUSE_BASE + 0x05F4) +/* STD_FUSE_OPP_VMIN_GPU_2 */ +#define STD_FUSE_OPP_VMIN_GPU_NOM	(DRA752_EFUSE_BASE + 0x1B08) +/* STD_FUSE_OPP_VMIN_GPU_3 */ +#define STD_FUSE_OPP_VMIN_GPU_OD	(DRA752_EFUSE_BASE + 0x1B0C) +/* STD_FUSE_OPP_VMIN_GPU_4 */ +#define STD_FUSE_OPP_VMIN_GPU_HIGH	(DRA752_EFUSE_BASE + 0x1B10) +/* STD_FUSE_OPP_VMIN_MPU_2 */ +#define STD_FUSE_OPP_VMIN_MPU_NOM	(DRA752_EFUSE_BASE + 0x1B20) +/* STD_FUSE_OPP_VMIN_MPU_3 */ +#define STD_FUSE_OPP_VMIN_MPU_OD	(DRA752_EFUSE_BASE + 0x1B24) +/* STD_FUSE_OPP_VMIN_MPU_4 */ +#define STD_FUSE_OPP_VMIN_MPU_HIGH	(DRA752_EFUSE_BASE + 0x1B28) +  /* Standard offset is 0.5v expressed in uv */  #define PALMAS_SMPS_BASE_VOLT_UV 500000 +/* TPS659038 */ +#define TPS659038_I2C_SLAVE_ADDR		0x58 +#define TPS659038_REG_ADDR_SMPS12_MPU		0x23 +#define TPS659038_REG_ADDR_SMPS45_EVE		0x2B +#define TPS659038_REG_ADDR_SMPS6_GPU		0x2F +#define TPS659038_REG_ADDR_SMPS7_CORE		0x33 +#define TPS659038_REG_ADDR_SMPS8_IVA		0x37 +  /* TPS */  #define TPS62361_I2C_SLAVE_ADDR		0x60  #define TPS62361_REG_ADDR_SET0		0x0 @@ -261,4 +295,25 @@   * into microsec and passing the value.   */  #define CONFIG_DEFAULT_OMAP_RESET_TIME_MAX_USEC	31219 + +#ifdef CONFIG_DRA7XX +#define V_OSCK			20000000	/* Clock output from T2 */ +#else +#define V_OSCK			19200000	/* Clock output from T2 */ +#endif + +#define V_SCLK	V_OSCK + +/* AUXCLKx reg fields */ +#define AUXCLK_ENABLE_MASK		(1 << 8) +#define AUXCLK_SRCSELECT_SHIFT		1 +#define AUXCLK_SRCSELECT_MASK		(3 << 1) +#define AUXCLK_CLKDIV_SHIFT		16 +#define AUXCLK_CLKDIV_MASK		(0xF << 16) + +#define AUXCLK_SRCSELECT_SYS_CLK	0 +#define AUXCLK_SRCSELECT_CORE_DPLL	1 +#define AUXCLK_SRCSELECT_PER_DPLL	2 +#define AUXCLK_SRCSELECT_ALTERNATE	3 +  #endif /* _CLOCKS_OMAP5_H_ */ diff --git a/arch/arm/include/asm/arch-omap5/cpu.h b/arch/arm/include/asm/arch-omap5/cpu.h index 044ab5581..4753f4624 100644 --- a/arch/arm/include/asm/arch-omap5/cpu.h +++ b/arch/arm/include/asm/arch-omap5/cpu.h @@ -119,18 +119,6 @@ struct watchdog {  #define WD_UNLOCK1		0xAAAA  #define WD_UNLOCK2		0x5555 -#define SYSCLKDIV_1		(0x1 << 6) -#define SYSCLKDIV_2		(0x1 << 7) - -#define CLKSEL_GPT1		(0x1 << 0) - -#define EN_GPT1			(0x1 << 0) -#define EN_32KSYNC		(0x1 << 2) - -#define ST_WDT2			(0x1 << 5) - -#define RESETDONE		(0x1 << 0) -  #define TCLR_ST			(0x1 << 0)  #define TCLR_AR			(0x1 << 1)  #define TCLR_PRE		(0x1 << 5) diff --git a/arch/arm/include/asm/arch-omap5/mux_dra7xx.h b/arch/arm/include/asm/arch-omap5/mux_dra7xx.h index 55e9de604..5f2b0f9f5 100644 --- a/arch/arm/include/asm/arch-omap5/mux_dra7xx.h +++ b/arch/arm/include/asm/arch-omap5/mux_dra7xx.h @@ -28,11 +28,14 @@  #include <asm/types.h> +#define FSC	(1 << 19) +#define SSC	(0 << 19) +  #define IEN	(1 << 18)  #define IDIS	(0 << 18) -#define PTU	(3 << 16) -#define PTD	(1 << 16) +#define PTU	(1 << 17) +#define PTD	(0 << 17)  #define PEN	(1 << 16)  #define PDIS	(0 << 16) diff --git a/arch/arm/include/asm/arch-omap5/omap.h b/arch/arm/include/asm/arch-omap5/omap.h index 4f43a903d..817c1ff27 100644 --- a/arch/arm/include/asm/arch-omap5/omap.h +++ b/arch/arm/include/asm/arch-omap5/omap.h @@ -44,16 +44,15 @@  #define DRAM_ADDR_SPACE_START	OMAP54XX_DRAM_ADDR_SPACE_START  #define DRAM_ADDR_SPACE_END	OMAP54XX_DRAM_ADDR_SPACE_END -/* CONTROL */ -#define CTRL_BASE		(OMAP54XX_L4_CORE_BASE + 0x2000) -#define CONTROL_PADCONF_CORE	(CTRL_BASE + 0x0800) -#define CONTROL_PADCONF_WKUP	(OMAP54XX_L4_WKUP_BASE + 0xc800) +/* CONTROL ID CODE */ +#define CONTROL_CORE_ID_CODE	0x4A002204 +#define CONTROL_WKUP_ID_CODE	0x4AE0C204 -/* LPDDR2 IO regs. To be verified */ -#define LPDDR2_IO_REGS_BASE	0x4A100638 - -/* CONTROL_ID_CODE */ -#define CONTROL_ID_CODE		(CTRL_BASE + 0x204) +#ifdef CONFIG_DRA7XX +#define CONTROL_ID_CODE		CONTROL_WKUP_ID_CODE +#else +#define CONTROL_ID_CODE		CONTROL_CORE_ID_CODE +#endif  /* To be verified */  #define OMAP5430_CONTROL_ID_CODE_ES1_0		0x0B94202F @@ -62,11 +61,6 @@  #define OMAP5432_CONTROL_ID_CODE_ES2_0          0x1B99802F  #define DRA752_CONTROL_ID_CODE_ES1_0		0x0B99002F -/* STD_FUSE_PROD_ID_1 */ -#define STD_FUSE_PROD_ID_1		(CTRL_BASE + 0x218) -#define PROD_ID_1_SILICON_TYPE_SHIFT	16 -#define PROD_ID_1_SILICON_TYPE_MASK	(3 << 16) -  /* UART */  #define UART1_BASE		(OMAP54XX_L4_PER_BASE + 0x6a000)  #define UART2_BASE		(OMAP54XX_L4_PER_BASE + 0x6c000) @@ -80,15 +74,9 @@  /* Watchdog Timer2 - MPU watchdog */  #define WDT2_BASE		(OMAP54XX_L4_WKUP_BASE + 0x14000) -/* 32KTIMER */ -#define SYNC_32KTIMER_BASE	(OMAP54XX_L4_WKUP_BASE + 0x4000) -  /* GPMC */  #define OMAP54XX_GPMC_BASE	0x50000000 -/* SYSTEM CONTROL MODULE */ -#define SYSCTRL_GENERAL_CORE_BASE	0x4A002000 -  /*   * Hardware Register Details   */ @@ -118,9 +106,9 @@  /* CONTROL_EFUSE_2 */  #define CONTROL_EFUSE_2_NMOS_PMOS_PTV_CODE_1		0x00ffc000 +#define SDCARD_BIAS_PWRDNZ				(1 << 27)  #define SDCARD_PWRDNZ					(1 << 26)  #define SDCARD_BIAS_HIZ_MODE				(1 << 25) -#define SDCARD_BIAS_PWRDNZ				(1 << 22)  #define SDCARD_PBIASLITE_VMODE				(1 << 21)  #ifndef __ASSEMBLY__ @@ -181,26 +169,17 @@ struct s32ktimer {  #define EFUSE_4 0x45145100  #endif /* __ASSEMBLY__ */ -/* - * Non-secure SRAM Addresses - * Non-secure RAM starts at 0x40300000 for GP devices. But we keep SRAM_BASE - * at 0x40304000(EMU base) so that our code works for both EMU and GP - */ +#ifdef CONFIG_DRA7XX +#define NON_SECURE_SRAM_START	0x40300000 +#define NON_SECURE_SRAM_END	0x40380000	/* Not inclusive */ +#else  #define NON_SECURE_SRAM_START	0x40300000  #define NON_SECURE_SRAM_END	0x40320000	/* Not inclusive */ +#endif +  /* base address for indirect vectors (internal boot mode) */  #define SRAM_ROM_VECT_BASE	0x4031F000 -/* Silicon revisions */ -#define OMAP4430_SILICON_ID_INVALID	0xFFFFFFFF -#define OMAP4430_ES1_0	0x44300100 -#define OMAP4430_ES2_0	0x44300200 -#define OMAP4430_ES2_1	0x44300210 -#define OMAP4430_ES2_2	0x44300220 -#define OMAP4430_ES2_3	0x44300230 -#define OMAP4460_ES1_0	0x44600100 -#define OMAP4460_ES1_1	0x44600110 -  /* CONTROL_SRCOMP_XXX_SIDE */  #define OVERRIDE_XS_SHIFT		30  #define OVERRIDE_XS_MASK		(1 << 30) @@ -215,6 +194,19 @@ struct s32ktimer {  #define SRCODE_OVERRIDE_SEL_XS_SHIFT	0  #define SRCODE_OVERRIDE_SEL_XS_MASK	(1 << 0) +/* ABB settings */ +#define OMAP_ABB_SETTLING_TIME		50 +#define OMAP_ABB_CLOCK_CYCLES		16 + +/* ABB tranxdone mask */ +#define OMAP_ABB_MPU_TXDONE_MASK		(0x1 << 7) + +/* ABB efuse masks */ +#define OMAP5_ABB_FUSE_VSET_MASK		(0x1F << 24) +#define OMAP5_ABB_FUSE_ENABLE_MASK		(0x1 << 29) +#define OMAP5_ABB_LDOVBBMPU_MUX_CTRL_MASK	(0x1 << 10) +#define OMAP5_ABB_LDOVBBMPU_VSET_OUT_MASK	(0x1f << 0) +  #ifndef __ASSEMBLY__  struct srcomp_params {  	s8 divide_factor; @@ -229,6 +221,7 @@ struct ctrl_ioregs {  	u32 ctrl_ddrio_1;  	u32 ctrl_ddrio_2;  	u32 ctrl_emif_sdram_config_ext; +	u32 ctrl_ddr_ctrl_ext_0;  };  #endif /* __ASSEMBLY__ */  #endif diff --git a/arch/arm/include/asm/arch-omap5/sys_proto.h b/arch/arm/include/asm/arch-omap5/sys_proto.h index b79161d79..0bb59d869 100644 --- a/arch/arm/include/asm/arch-omap5/sys_proto.h +++ b/arch/arm/include/asm/arch-omap5/sys_proto.h @@ -23,9 +23,9 @@  #include <asm/arch/omap.h>  #include <asm/io.h> -#include <asm/arch/clocks.h> +#include <asm/arch/clock.h>  #include <asm/omap_common.h> -#include <asm/arch/clocks.h> +#include <asm/arch/clock.h>  DECLARE_GLOBAL_DATA_PTR; @@ -58,9 +58,11 @@ void cancel_out(u32 *num, u32 *den, u32 den_limit);  void sdram_init(void);  u32 omap_sdram_size(void);  u32 cortex_rev(void); +void save_omap_boot_params(void);  void init_omap_revision(void);  void do_io_settings(void); -void omap_vc_init(u16 speed_khz); +void sri2c_init(void); +void gpi2c_init(void);  int omap_vc_bypass_send_value(u8 sa, u8 reg_addr, u8 reg_data);  u32 warm_reset(void);  void force_emif_self_refresh(void); diff --git a/arch/arm/include/asm/arch-tegra/tegra.h b/arch/arm/include/asm/arch-tegra/tegra.h index 3e642e92f..5fe4838d9 100644 --- a/arch/arm/include/asm/arch-tegra/tegra.h +++ b/arch/arm/include/asm/arch-tegra/tegra.h @@ -72,6 +72,7 @@ struct timerus {  /* These are the available SKUs (product types) for Tegra */  enum { +	SKU_ID_T20_7		= 0x7,  	SKU_ID_T20		= 0x8,  	SKU_ID_T25SE		= 0x14,  	SKU_ID_AP25		= 0x17, @@ -81,6 +82,7 @@ enum {  	SKU_ID_T33		= 0x80,  	SKU_ID_T30		= 0x81, /* Cardhu value */  	SKU_ID_T114_ENG		= 0x00, /* Dalmore value, unfused */ +	SKU_ID_T114_1		= 0x01,  };  /* diff --git a/arch/arm/include/asm/arch-vf610/clock.h b/arch/arm/include/asm/arch-vf610/clock.h new file mode 100644 index 000000000..04e418cf8 --- /dev/null +++ b/arch/arm/include/asm/arch-vf610/clock.h @@ -0,0 +1,39 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * 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 program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * 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., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_ARCH_CLOCK_H +#define __ASM_ARCH_CLOCK_H + +#include <common.h> + +enum mxc_clock { +	MXC_ARM_CLK = 0, +	MXC_BUS_CLK, +	MXC_IPG_CLK, +	MXC_UART_CLK, +	MXC_ESDHC_CLK, +	MXC_FEC_CLK, +}; + +void enable_ocotp_clk(unsigned char enable); +unsigned int mxc_get_clock(enum mxc_clock clk); + +#define imx_get_fecclk() mxc_get_clock(MXC_FEC_CLK) + +#endif /* __ASM_ARCH_CLOCK_H */ diff --git a/arch/arm/include/asm/arch-vf610/crm_regs.h b/arch/arm/include/asm/arch-vf610/crm_regs.h new file mode 100644 index 000000000..e3f703dc8 --- /dev/null +++ b/arch/arm/include/asm/arch-vf610/crm_regs.h @@ -0,0 +1,225 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * 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 program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * 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., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ARCH_ARM_MACH_VF610_CCM_REGS_H__ +#define __ARCH_ARM_MACH_VF610_CCM_REGS_H__ + +#ifndef __ASSEMBLY__ + +/* Clock Controller Module (CCM) */ +struct ccm_reg { +	u32 ccr; +	u32 csr; +	u32 ccsr; +	u32 cacrr; +	u32 cscmr1; +	u32 cscdr1; +	u32 cscdr2; +	u32 cscdr3; +	u32 cscmr2; +	u32 cscdr4; +	u32 ctor; +	u32 clpcr; +	u32 cisr; +	u32 cimr; +	u32 ccosr; +	u32 cgpr; +	u32 ccgr0; +	u32 ccgr1; +	u32 ccgr2; +	u32 ccgr3; +	u32 ccgr4; +	u32 ccgr5; +	u32 ccgr6; +	u32 ccgr7; +	u32 ccgr8; +	u32 ccgr9; +	u32 ccgr10; +	u32 ccgr11; +	u32 cmeor0; +	u32 cmeor1; +	u32 cmeor2; +	u32 cmeor3; +	u32 cmeor4; +	u32 cmeor5; +	u32 cppdsr; +	u32 ccowr; +	u32 ccpgr0; +	u32 ccpgr1; +	u32 ccpgr2; +	u32 ccpgr3; +}; + +/* Analog components control digital interface (ANADIG) */ +struct anadig_reg { +	u32 pll3_ctrl; +	u32 resv0[3]; +	u32 pll7_ctrl; +	u32 resv1[3]; +	u32 pll2_ctrl; +	u32 resv2[3]; +	u32 pll2_ss; +	u32 resv3[3]; +	u32 pll2_num; +	u32 resv4[3]; +	u32 pll2_denom; +	u32 resv5[3]; +	u32 pll4_ctrl; +	u32 resv6[3]; +	u32 pll4_num; +	u32 resv7[3]; +	u32 pll4_denom; +	u32 pll6_ctrl; +	u32 resv8[3]; +	u32 pll6_num; +	u32 resv9[3]; +	u32 pll6_denom; +	u32 resv10[3]; +	u32 pll5_ctrl; +	u32 resv11[3]; +	u32 pll3_pfd; +	u32 resv12[3]; +	u32 pll2_pfd; +	u32 resv13[3]; +	u32 reg_1p1; +	u32 resv14[3]; +	u32 reg_3p0; +	u32 resv15[3]; +	u32 reg_2p5; +	u32 resv16[7]; +	u32 ana_misc0; +	u32 resv17[3]; +	u32 ana_misc1; +	u32 resv18[63]; +	u32 anadig_digprog; +	u32 resv19[3]; +	u32 pll1_ctrl; +	u32 resv20[3]; +	u32 pll1_ss; +	u32 resv21[3]; +	u32 pll1_num; +	u32 resv22[3]; +	u32 pll1_denom; +	u32 resv23[3]; +	u32 pll1_pdf; +	u32 resv24[3]; +	u32 pll_lock; +}; +#endif + +#define CCM_CCR_FIRC_EN				(1 << 16) +#define CCM_CCR_OSCNT_MASK			0xff +#define CCM_CCR_OSCNT(v)			((v) & 0xff) + +#define CCM_CCSR_PLL2_PFD_CLK_SEL_OFFSET	19 +#define CCM_CCSR_PLL2_PFD_CLK_SEL_MASK		(0x7 << 19) +#define CCM_CCSR_PLL2_PFD_CLK_SEL(v)		(((v) & 0x7) << 19) + +#define CCM_CCSR_PLL1_PFD_CLK_SEL_OFFSET	16 +#define CCM_CCSR_PLL1_PFD_CLK_SEL_MASK		(0x7 << 16) +#define CCM_CCSR_PLL1_PFD_CLK_SEL(v)		(((v) & 0x7) << 16) + +#define CCM_CCSR_PLL2_PFD4_EN			(1 << 15) +#define CCM_CCSR_PLL2_PFD3_EN			(1 << 14) +#define CCM_CCSR_PLL2_PFD2_EN			(1 << 13) +#define CCM_CCSR_PLL2_PFD1_EN			(1 << 12) +#define CCM_CCSR_PLL1_PFD4_EN			(1 << 11) +#define CCM_CCSR_PLL1_PFD3_EN			(1 << 10) +#define CCM_CCSR_PLL1_PFD2_EN			(1 << 9) +#define CCM_CCSR_PLL1_PFD1_EN			(1 << 8) + +#define CCM_CCSR_DDRC_CLK_SEL(v)		((v) << 6) +#define CCM_CCSR_FAST_CLK_SEL(v)		((v) << 5) + +#define CCM_CCSR_SYS_CLK_SEL_OFFSET		0 +#define CCM_CCSR_SYS_CLK_SEL_MASK		0x7 +#define CCM_CCSR_SYS_CLK_SEL(v)			((v) & 0x7) + +#define CCM_CACRR_IPG_CLK_DIV_OFFSET		11 +#define CCM_CACRR_IPG_CLK_DIV_MASK		(0x3 << 11) +#define CCM_CACRR_IPG_CLK_DIV(v)		(((v) & 0x3) << 11) +#define CCM_CACRR_BUS_CLK_DIV_OFFSET		3 +#define CCM_CACRR_BUS_CLK_DIV_MASK		(0x7 << 3) +#define CCM_CACRR_BUS_CLK_DIV(v)		(((v) & 0x7) << 3) +#define CCM_CACRR_ARM_CLK_DIV_OFFSET		0 +#define CCM_CACRR_ARM_CLK_DIV_MASK		0x7 +#define CCM_CACRR_ARM_CLK_DIV(v)		((v) & 0x7) + +#define CCM_CSCMR1_ESDHC1_CLK_SEL_OFFSET	18 +#define CCM_CSCMR1_ESDHC1_CLK_SEL_MASK		(0x3 << 18) +#define CCM_CSCMR1_ESDHC1_CLK_SEL(v)		(((v) & 0x3) << 18) + +#define CCM_CSCDR1_RMII_CLK_EN			(1 << 24) + +#define CCM_CSCDR2_ESDHC1_EN			(1 << 29) +#define CCM_CSCDR2_ESDHC1_CLK_DIV_OFFSET	20 +#define CCM_CSCDR2_ESDHC1_CLK_DIV_MASK		(0xf << 20) +#define CCM_CSCDR2_ESDHC1_CLK_DIV(v)		(((v) & 0xf) << 20) + +#define CCM_CSCMR2_RMII_CLK_SEL_OFFSET		4 +#define CCM_CSCMR2_RMII_CLK_SEL_MASK		(0x3 << 4) +#define CCM_CSCMR2_RMII_CLK_SEL(v)		(((v) & 0x3) << 4) + +#define CCM_REG_CTRL_MASK			0xffffffff +#define CCM_CCGR0_UART1_CTRL_MASK		(0x3 << 16) +#define CCM_CCGR1_PIT_CTRL_MASK			(0x3 << 14) +#define CCM_CCGR1_WDOGA5_CTRL_MASK		(0x3 << 28) +#define CCM_CCGR2_IOMUXC_CTRL_MASK		(0x3 << 16) +#define CCM_CCGR2_PORTA_CTRL_MASK		(0x3 << 18) +#define CCM_CCGR2_PORTB_CTRL_MASK		(0x3 << 20) +#define CCM_CCGR2_PORTC_CTRL_MASK		(0x3 << 22) +#define CCM_CCGR2_PORTD_CTRL_MASK		(0x3 << 24) +#define CCM_CCGR2_PORTE_CTRL_MASK		(0x3 << 26) +#define CCM_CCGR3_ANADIG_CTRL_MASK		0x3 +#define CCM_CCGR4_WKUP_CTRL_MASK		(0x3 << 20) +#define CCM_CCGR4_CCM_CTRL_MASK			(0x3 << 22) +#define CCM_CCGR4_GPC_CTRL_MASK			(0x3 << 24) +#define CCM_CCGR6_OCOTP_CTRL_MASK		(0x3 << 10) +#define CCM_CCGR6_DDRMC_CTRL_MASK		(0x3 << 28) +#define CCM_CCGR7_SDHC1_CTRL_MASK		(0x3 << 4) +#define CCM_CCGR9_FEC0_CTRL_MASK		0x3 +#define CCM_CCGR9_FEC1_CTRL_MASK		(0x3 << 2) + +#define ANADIG_PLL2_CTRL_ENABLE			(1 << 13) +#define ANADIG_PLL2_CTRL_POWERDOWN		(1 << 12) +#define ANADIG_PLL2_CTRL_DIV_SELECT		1 +#define ANADIG_PLL1_CTRL_ENABLE			(1 << 13) +#define ANADIG_PLL1_CTRL_POWERDOWN		(1 << 12) +#define ANADIG_PLL1_CTRL_DIV_SELECT		1 + +#define FASE_CLK_FREQ		24000000 +#define SLOW_CLK_FREQ		32000 +#define PLL1_PFD1_FREQ		500000000 +#define PLL1_PFD2_FREQ		452000000 +#define PLL1_PFD3_FREQ		396000000 +#define PLL1_PFD4_FREQ		528000000 +#define PLL1_MAIN_FREQ		528000000 +#define PLL2_PFD1_FREQ		500000000 +#define PLL2_PFD2_FREQ		396000000 +#define PLL2_PFD3_FREQ		339000000 +#define PLL2_PFD4_FREQ		413000000 +#define PLL2_MAIN_FREQ		528000000 +#define PLL3_MAIN_FREQ		480000000 +#define PLL3_PFD3_FREQ		298000000 +#define PLL5_MAIN_FREQ		500000000 + +#define ENET_EXTERNAL_CLK	50000000 +#define AUDIO_EXTERNAL_CLK	24576000 + +#endif /*__ARCH_ARM_MACH_VF610_CCM_REGS_H__ */ diff --git a/arch/arm/include/asm/arch-vf610/imx-regs.h b/arch/arm/include/asm/arch-vf610/imx-regs.h new file mode 100644 index 000000000..c9df32a21 --- /dev/null +++ b/arch/arm/include/asm/arch-vf610/imx-regs.h @@ -0,0 +1,419 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * 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 program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * 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., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_ARCH_IMX_REGS_H__ +#define __ASM_ARCH_IMX_REGS_H__ + +#define ARCH_MXC + +#define IRAM_BASE_ADDR		0x3F000000	/* internal ram */ +#define IRAM_SIZE		0x00080000	/* 512 KB */ + +#define AIPS0_BASE_ADDR		0x40000000 +#define AIPS1_BASE_ADDR		0x40080000 + +/* AIPS 0 */ +#define MSCM_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00001000) +#define MSCM_IR_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00001800) +#define CA5SCU_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00002000) +#define CA5_INTD_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00003000) +#define CA5_L2C_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00006000) +#define NIC0_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00008000) +#define NIC1_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00009000) +#define NIC2_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0000A000) +#define NIC3_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0000B000) +#define NIC4_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0000C000) +#define NIC5_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0000D000) +#define NIC6_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0000E000) +#define NIC7_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0000F000) +#define AHBTZASC_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00010000) +#define TZASC_SYS0_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00011000) +#define TZASC_SYS1_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00012000) +#define TZASC_GFX_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00013000) +#define TZASC_DDR0_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00014000) +#define TZASC_DDR1_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00015000) +#define CSU_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00017000) +#define DMA0_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00018000) +#define DMA0_TCD_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00019000) +#define SEMA4_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0001D000) +#define FB_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0001E000) +#define DMA_MUX0_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00024000) +#define UART0_BASE		(AIPS0_BASE_ADDR + 0x00027000) +#define UART1_BASE		(AIPS0_BASE_ADDR + 0x00028000) +#define UART2_BASE		(AIPS0_BASE_ADDR + 0x00029000) +#define UART3_BASE		(AIPS0_BASE_ADDR + 0x0002A000) +#define SPI0_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0002C000) +#define SPI1_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0002D000) +#define SAI0_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0002F000) +#define SAI1_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00030000) +#define SAI2_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00031000) +#define SAI3_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00032000) +#define CRC_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00033000) +#define PDB_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00036000) +#define PIT_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00037000) +#define FTM0_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00038000) +#define FTM1_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00039000) +#define ADC_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0003B000) +#define TCON0_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0003D000) +#define WDOG1_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0003E000) +#define LPTMR_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00040000) +#define RLE_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00042000) +#define MLB_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00043000) +#define QSPI0_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00044000) +#define IOMUXC_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00048000) +#define ANADIG_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00050000) +#define SCSCM_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00052000) +#define ASRC_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00060000) +#define SPDIF_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00061000) +#define ESAI_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00062000) +#define ESAI_FIFO_BASE_ADDR	(AIPS0_BASE_ADDR + 0x00063000) +#define WDOG_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00065000) +#define I2C0_BASE_ADDR		(AIPS0_BASE_ADDR + 0x00066000) +#define WKUP_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0006A000) +#define CCM_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0006B000) +#define GPC_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0006C000) +#define VREG_DIG_BASE_ADDR	(AIPS0_BASE_ADDR + 0x0006D000) +#define SRC_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0006E000) +#define CMU_BASE_ADDR		(AIPS0_BASE_ADDR + 0x0006F000) + +/* AIPS 1 */ +#define OCOTP_BASE_ADDR		(AIPS1_BASE_ADDR + 0x00025000) +#define DDR_BASE_ADDR		(AIPS1_BASE_ADDR + 0x0002E000) +#define ESDHC0_BASE_ADDR	(AIPS1_BASE_ADDR + 0x00031000) +#define ESDHC1_BASE_ADDR	(AIPS1_BASE_ADDR + 0x00032000) +#define ENET_BASE_ADDR		(AIPS1_BASE_ADDR + 0x00050000) + +/* MUX mode and PAD ctrl are in one register */ +#define CONFIG_IOMUX_SHARE_CONF_REG + +#define FEC_QUIRK_ENET_MAC + +/* MSCM interrupt rounter */ +#define MSCM_IRSPRC_CP0_EN				1 +#define MSCM_IRSPRC_NUM					112 + +/* DDRMC */ +#define DDRMC_PHY_DQ_TIMING				0x00002613 +#define DDRMC_PHY_DQS_TIMING				0x00002615 +#define DDRMC_PHY_CTRL					0x01210080 +#define DDRMC_PHY_MASTER_CTRL				0x0001012a +#define DDRMC_PHY_SLAVE_CTRL				0x00012020 + +#define DDRMC_PHY50_DDR3_MODE				(1 << 12) +#define DDRMC_PHY50_EN_SW_HALF_CYCLE			(1 << 8) + +#define DDRMC_CR00_DRAM_CLASS_DDR3			(0x6 << 8) +#define DDRMC_CR00_DRAM_CLASS_LPDDR2			(0x5 << 8) +#define DDRMC_CR00_START				1 +#define DDRMC_CR02_DRAM_TINIT(v)			((v) & 0xffffff) +#define DDRMC_CR10_TRST_PWRON(v)			(v) +#define DDRMC_CR11_CKE_INACTIVE(v)			(v) +#define DDRMC_CR12_WRLAT(v)				(((v) & 0x1f) << 8) +#define DDRMC_CR12_CASLAT_LIN(v)			((v) & 0x3f) +#define DDRMC_CR13_TRC(v)				(((v) & 0xff) << 24) +#define DDRMC_CR13_TRRD(v)				(((v) & 0xff) << 16) +#define DDRMC_CR13_TCCD(v)				(((v) & 0x1f) << 8) +#define DDRMC_CR13_TBST_INT_INTERVAL(v)			((v) & 0x7) +#define DDRMC_CR14_TFAW(v)				(((v) & 0x3f) << 24) +#define DDRMC_CR14_TRP(v)				(((v) & 0x1f) << 16) +#define DDRMC_CR14_TWTR(v)				(((v) & 0xf) << 8) +#define DDRMC_CR14_TRAS_MIN(v)				((v) & 0xff) +#define DDRMC_CR16_TMRD(v)				(((v) & 0x1f) << 24) +#define DDRMC_CR16_TRTP(v)				(((v) & 0xf) << 16) +#define DDRMC_CR17_TRAS_MAX(v)				(((v) & 0x1ffff) << 8) +#define DDRMC_CR17_TMOD(v)				((v) & 0xff) +#define DDRMC_CR18_TCKESR(v)				(((v) & 0x1f) << 8) +#define DDRMC_CR18_TCKE(v)				((v) & 0x7) +#define DDRMC_CR20_AP_EN				(1 << 24) +#define DDRMC_CR21_TRCD_INT(v)				(((v) & 0xff) << 16) +#define DDRMC_CR21_TRAS_LOCKOUT				(1 << 8) +#define DDRMC_CR21_CCMAP_EN				1 +#define DDRMC_CR22_TDAL(v)				(((v) & 0x3f) << 16) +#define DDRMC_CR23_BSTLEN(v)				(((v) & 0x7) << 24) +#define DDRMC_CR23_TDLL(v)				((v) & 0xff) +#define DDRMC_CR24_TRP_AB(v)				((v) & 0x1f) +#define DDRMC_CR25_TREF_EN				(1 << 16) +#define DDRMC_CR26_TREF(v)				(((v) & 0xffff) << 16) +#define DDRMC_CR26_TRFC(v)				((v) & 0x3ff) +#define DDRMC_CR28_TREF_INT(v)				((v) & 0xffff) +#define DDRMC_CR29_TPDEX(v)				((v) & 0xffff) +#define DDRMC_CR30_TXPDLL(v)				((v) & 0xffff) +#define DDRMC_CR31_TXSNR(v)				(((v) & 0xffff) << 16) +#define DDRMC_CR31_TXSR(v)				((v) & 0xffff) +#define DDRMC_CR33_EN_QK_SREF				(1 << 16) +#define DDRMC_CR34_CKSRX(v)				(((v) & 0xf) << 16) +#define DDRMC_CR34_CKSRE(v)				(((v) & 0xf) << 8) +#define DDRMC_CR38_FREQ_CHG_EN				(1 << 8) +#define DDRMC_CR39_PHY_INI_COM(v)			(((v) & 0xffff) << 16) +#define DDRMC_CR39_PHY_INI_STA(v)			(((v) & 0xff) << 8) +#define DDRMC_CR39_FRQ_CH_DLLOFF(v)			((v) & 0x3) +#define DDRMC_CR41_PHY_INI_STRT_INI_DIS			1 +#define DDRMC_CR48_MR1_DA_0(v)				(((v) & 0xffff) << 16) +#define DDRMC_CR48_MR0_DA_0(v)				((v) & 0xffff) +#define DDRMC_CR66_ZQCL(v)				(((v) & 0xfff) << 16) +#define DDRMC_CR66_ZQINIT(v)				((v) & 0xfff) +#define DDRMC_CR67_ZQCS(v)				((v) & 0xfff) +#define DDRMC_CR69_ZQ_ON_SREF_EX(v)			(((v) & 0xf) << 8) +#define DDRMC_CR70_REF_PER_ZQ(v)			(v) +#define DDRMC_CR72_ZQCS_ROTATE				(1 << 24) +#define DDRMC_CR73_APREBIT(v)				(((v) & 0xf) << 24) +#define DDRMC_CR73_COL_DIFF(v)				(((v) & 0x7) << 16) +#define DDRMC_CR73_ROW_DIFF(v)				(((v) & 0x3) << 8) +#define DDRMC_CR74_BANKSPLT_EN				(1 << 24) +#define DDRMC_CR74_ADDR_CMP_EN				(1 << 16) +#define DDRMC_CR74_CMD_AGE_CNT(v)			(((v) & 0xff) << 8) +#define DDRMC_CR74_AGE_CNT(v)				((v) & 0xff) +#define DDRMC_CR75_RW_PG_EN				(1 << 24) +#define DDRMC_CR75_RW_EN				(1 << 16) +#define DDRMC_CR75_PRI_EN				(1 << 8) +#define DDRMC_CR75_PLEN					1 +#define DDRMC_CR76_NQENT_ACTDIS(v)			(((v) & 0x7) << 24) +#define DDRMC_CR76_D_RW_G_BKCN(v)			(((v) & 0x3) << 16) +#define DDRMC_CR76_W2R_SPLT_EN				(1 << 8) +#define DDRMC_CR76_CS_EN				1 +#define DDRMC_CR77_CS_MAP				(1 << 24) +#define DDRMC_CR77_DI_RD_INTLEAVE			(1 << 8) +#define DDRMC_CR77_SWAP_EN				1 +#define DDRMC_CR78_BUR_ON_FLY_BIT(v)			((v) & 0xf) +#define DDRMC_CR79_CTLUPD_AREF				(1 << 24) +#define DDRMC_CR82_INT_MASK				0x1fffffff +#define DDRMC_CR87_ODT_WR_MAPCS0			(1 << 24) +#define DDRMC_CR87_ODT_RD_MAPCS0			(1 << 16) +#define DDRMC_CR88_TODTL_CMD(v)				(((v) & 0x1f) << 16) +#define DDRMC_CR89_AODT_RWSMCS(v)			((v) & 0xf) +#define DDRMC_CR91_R2W_SMCSDL(v)			(((v) & 0x7) << 16) +#define DDRMC_CR96_WLMRD(v)				(((v) & 0x3f) << 8) +#define DDRMC_CR96_WLDQSEN(v)				((v) & 0x3f) +#define DDRMC_CR105_RDLVL_DL_0(v)			(((v) & 0xff) << 8) +#define DDRMC_CR110_RDLVL_DL_1(v)			((v) & 0xff) +#define DDRMC_CR114_RDLVL_GTDL_2(v)			(((v) & 0xffff) << 8) +#define DDRMC_CR117_AXI0_W_PRI(v)			(((v) & 0x3) << 8) +#define DDRMC_CR117_AXI0_R_PRI(v)			((v) & 0x3) +#define DDRMC_CR118_AXI1_W_PRI(v)			(((v) & 0x3) << 24) +#define DDRMC_CR118_AXI1_R_PRI(v)			(((v) & 0x3) << 16) +#define DDRMC_CR120_AXI0_PRI1_RPRI(v)			(((v) & 0xf) << 24) +#define DDRMC_CR120_AXI0_PRI0_RPRI(v)			(((v) & 0xf) << 16) +#define DDRMC_CR121_AXI0_PRI3_RPRI(v)			(((v) & 0xf) << 8) +#define DDRMC_CR121_AXI0_PRI2_RPRI(v)			((v) & 0xf) +#define DDRMC_CR122_AXI1_PRI1_RPRI(v)			(((v) & 0xf) << 24) +#define DDRMC_CR122_AXI1_PRI0_RPRI(v)			(((v) & 0xf) << 16) +#define DDRMC_CR122_AXI0_PRIRLX(v)			((v) & 0x3ff) +#define DDRMC_CR123_AXI1_PRI3_RPRI(v)			(((v) & 0xf) << 8) +#define DDRMC_CR123_AXI1_PRI2_RPRI(v)			((v) & 0xf) +#define DDRMC_CR124_AXI1_PRIRLX(v)			((v) & 0x3ff) +#define DDRMC_CR126_PHY_RDLAT(v)			(((v) & 0x3f) << 8) +#define DDRMC_CR132_WRLAT_ADJ(v)			(((v) & 0x1f) << 8) +#define DDRMC_CR132_RDLAT_ADJ(v)			((v) & 0x3f) +#define DDRMC_CR139_PHY_WRLV_RESPLAT(v)			(((v) & 0xff) << 24) +#define DDRMC_CR139_PHY_WRLV_LOAD(v)			(((v) & 0xff) << 16) +#define DDRMC_CR139_PHY_WRLV_DLL(v)			(((v) & 0xff) << 8) +#define DDRMC_CR139_PHY_WRLV_EN(v)			((v) & 0xff) +#define DDRMC_CR154_PAD_ZQ_EARLY_CMP_EN_TIMER(v)	(((v) & 0x1f) << 27) +#define DDRMC_CR154_PAD_ZQ_MODE(v)			(((v) & 0x3) << 21) +#define DDRMC_CR155_AXI0_AWCACHE			(1 << 10) +#define DDRMC_CR155_PAD_ODT_BYTE1(v)			((v) & 0x7) +#define DDRMC_CR158_TWR(v)				((v) & 0x3f) + +#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) +#include <asm/types.h> + +/* System Reset Controller (SRC) */ +struct src { +	u32 scr; +	u32 sbmr1; +	u32 srsr; +	u32 secr; +	u32 gpsr; +	u32 sicr; +	u32 simr; +	u32 sbmr2; +	u32 gpr0; +	u32 gpr1; +	u32 gpr2; +	u32 gpr3; +	u32 gpr4; +	u32 hab0; +	u32 hab1; +	u32 hab2; +	u32 hab3; +	u32 hab4; +	u32 hab5; +	u32 misc0; +	u32 misc1; +	u32 misc2; +	u32 misc3; +}; + +/* Periodic Interrupt Timer (PIT) */ +struct pit_reg { +	u32 mcr; +	u32 recv0[55]; +	u32 ltmr64h; +	u32 ltmr64l; +	u32 recv1[6]; +	u32 ldval0; +	u32 cval0; +	u32 tctrl0; +	u32 tflg0; +	u32 ldval1; +	u32 cval1; +	u32 tctrl1; +	u32 tflg1; +	u32 ldval2; +	u32 cval2; +	u32 tctrl2; +	u32 tflg2; +	u32 ldval3; +	u32 cval3; +	u32 tctrl3; +	u32 tflg3; +	u32 ldval4; +	u32 cval4; +	u32 tctrl4; +	u32 tflg4; +	u32 ldval5; +	u32 cval5; +	u32 tctrl5; +	u32 tflg5; +	u32 ldval6; +	u32 cval6; +	u32 tctrl6; +	u32 tflg6; +	u32 ldval7; +	u32 cval7; +	u32 tctrl7; +	u32 tflg7; +}; + +/* Watchdog Timer (WDOG) */ +struct wdog_regs { +	u16 wcr; +	u16 wsr; +	u16 wrsr; +	u16 wicr; +	u16 wmcr; +}; + +/* LPDDR2/DDR3 SDRAM Memory Controller (DDRMC) */ +struct ddrmr_regs { +	u32 cr[162]; +	u32 rsvd[94]; +	u32 phy[53]; +}; + +/* On-Chip One Time Programmable Controller (OCOTP) */ +struct ocotp_regs { +	u32 ctrl; +	u32 ctrl_set; +	u32 ctrl_clr; +	u32 ctrl_tog; +	u32 timing; +	u32 rsvd0[3]; +	u32 data; +	u32 rsvd1[3]; +	u32 read_ctrl; +	u32 rsvd2[3]; +	u32 read_fuse_data; +	u32 rsvd3[7]; +	u32 scs; +	u32 scs_set; +	u32 scs_clr; +	u32 scs_tog; +	u32 crc_addr; +	u32 rsvd4[3]; +	u32 crc_value; +	u32 rsvd5[3]; +	u32 version; +	u32 rsvd6[0xdb]; + +	struct fuse_bank { +		u32 fuse_regs[0x20]; +	} bank[16]; +}; + +struct fuse_bank0_regs { +	u32 lock; +	u32 rsvd0[3]; +	u32 uid_low; +	u32 rsvd1[3]; +	u32 uid_high; +	u32 rsvd2[0x17]; +}; + +struct fuse_bank4_regs { +	u32 sjc_resp0; +	u32 rsvd0[3]; +	u32 sjc_resp1; +	u32 rsvd1[3]; +	u32 mac_addr0; +	u32 rsvd2[3]; +	u32 mac_addr1; +	u32 rsvd3[3]; +	u32 mac_addr2; +	u32 rsvd4[3]; +	u32 mac_addr3; +	u32 rsvd5[3]; +	u32 gp1; +	u32 rsvd6[3]; +	u32 gp2; +	u32 rsvd7[3]; +}; + +/* UART */ +struct lpuart_fsl { +	u8 ubdh; +	u8 ubdl; +	u8 uc1; +	u8 uc2; +	u8 us1; +	u8 us2; +	u8 uc3; +	u8 ud; +	u8 uma1; +	u8 uma2; +	u8 uc4; +	u8 uc5; +	u8 ued; +	u8 umodem; +	u8 uir; +	u8 reserved; +	u8 upfifo; +	u8 ucfifo; +	u8 usfifo; +	u8 utwfifo; +	u8 utcfifo; +	u8 urwfifo; +	u8 urcfifo; +	u8 rsvd[28]; +}; + +/* MSCM Interrupt Router */ +struct mscm_ir { +	u32 ircp0ir; +	u32 ircp1ir; +	u32 rsvd1[6]; +	u32 ircpgir; +	u32 rsvd2[23]; +	u16 irsprc[112]; +	u16 rsvd3[848]; +}; + +#endif	/* __ASSEMBLER__*/ + +#endif	/* __ASM_ARCH_IMX_REGS_H__ */ diff --git a/arch/arm/include/asm/arch-vf610/iomux-vf610.h b/arch/arm/include/asm/arch-vf610/iomux-vf610.h new file mode 100644 index 000000000..1c728fa6b --- /dev/null +++ b/arch/arm/include/asm/arch-vf610/iomux-vf610.h @@ -0,0 +1,101 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * 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 program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * 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., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __IOMUX_VF610_H__ +#define __IOMUX_VF610_H__ + +#include <asm/imx-common/iomux-v3.h> + +/* Pad control groupings */ +#define VF610_UART_PAD_CTRL	(PAD_CTL_PUS_100K_UP | PAD_CTL_DSE_25ohm | \ +				PAD_CTL_OBE_IBE_ENABLE) +#define VF610_SDHC_PAD_CTRL	(PAD_CTL_PUS_100K_UP | PAD_CTL_DSE_20ohm | \ +				PAD_CTL_OBE_IBE_ENABLE) +#define VF610_ENET_PAD_CTRL	(PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_50ohm | \ +				PAD_CTL_OBE_IBE_ENABLE) +#define VF610_DDR_PAD_CTRL	PAD_CTL_DSE_25ohm + +enum { +	VF610_PAD_PTA6__RMII0_CLKIN		= IOMUX_PAD(0x0000, 0x0000, 2, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTB4__UART1_TX		= IOMUX_PAD(0x0068, 0x0068, 2, 0x0380, 0, VF610_UART_PAD_CTRL), +	VF610_PAD_PTB5__UART1_RX		= IOMUX_PAD(0x006c, 0x006c, 2, 0x037c, 0, VF610_UART_PAD_CTRL), +	VF610_PAD_PTC1__RMII0_MDIO		= IOMUX_PAD(0x00b8, 0x00b8, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTC0__RMII0_MDC		= IOMUX_PAD(0x00b4, 0x00b4, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTC2__RMII0_CRS_DV		= IOMUX_PAD(0x00bc, 0x00bc, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTC3__RMII0_RD1		= IOMUX_PAD(0x00c0, 0x00c0, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTC4__RMII0_RD0		= IOMUX_PAD(0x00c4, 0x00c4, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTC5__RMII0_RXER		= IOMUX_PAD(0x00c8, 0x00c8, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTC6__RMII0_TD1		= IOMUX_PAD(0x00cc, 0x00cc, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTC7__RMII0_TD0		= IOMUX_PAD(0x00D0, 0x00D0, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTC8__RMII0_TXEN		= IOMUX_PAD(0x00D4, 0x00D4, 1, __NA_, 0, VF610_ENET_PAD_CTRL), +	VF610_PAD_PTA24__ESDHC1_CLK		= IOMUX_PAD(0x0038, 0x0038, 5, __NA_, 0, VF610_SDHC_PAD_CTRL), +	VF610_PAD_PTA25__ESDHC1_CMD		= IOMUX_PAD(0x003c, 0x003c, 5, __NA_, 0, VF610_SDHC_PAD_CTRL), +	VF610_PAD_PTA26__ESDHC1_DAT0		= IOMUX_PAD(0x0040, 0x0040, 5, __NA_, 0, VF610_SDHC_PAD_CTRL), +	VF610_PAD_PTA27__ESDHC1_DAT1		= IOMUX_PAD(0x0044, 0x0044, 5, __NA_, 0, VF610_SDHC_PAD_CTRL), +	VF610_PAD_PTA28__ESDHC1_DAT2		= IOMUX_PAD(0x0048, 0x0048, 5, __NA_, 0, VF610_SDHC_PAD_CTRL), +	VF610_PAD_PTA29__ESDHC1_DAT3		= IOMUX_PAD(0x004c, 0x004c, 5, __NA_, 0, VF610_SDHC_PAD_CTRL), +	VF610_PAD_DDR_A15__DDR_A_15		= IOMUX_PAD(0x0220, 0x0220, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A14__DDR_A_14		= IOMUX_PAD(0x0224, 0x0224, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A13__DDR_A_13		= IOMUX_PAD(0x0228, 0x0228, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A12__DDR_A_12		= IOMUX_PAD(0x022c, 0x022c, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A11__DDR_A_11		= IOMUX_PAD(0x0230, 0x0230, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A10__DDR_A_10		= IOMUX_PAD(0x0234, 0x0234, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A9__DDR_A_9		= IOMUX_PAD(0x0238, 0x0238, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A8__DDR_A_8		= IOMUX_PAD(0x023c, 0x023c, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A7__DDR_A_7		= IOMUX_PAD(0x0240, 0x0240, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A6__DDR_A_6		= IOMUX_PAD(0x0244, 0x0244, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A5__DDR_A_5		= IOMUX_PAD(0x0248, 0x0248, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A4__DDR_A_4		= IOMUX_PAD(0x024c, 0x024c, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A3__DDR_A_3		= IOMUX_PAD(0x0250, 0x0250, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A2__DDR_A_2		= IOMUX_PAD(0x0254, 0x0254, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_A1__DDR_A_1		= IOMUX_PAD(0x0258, 0x0258, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_BA2__DDR_BA_2		= IOMUX_PAD(0x0260, 0x0260, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_BA1__DDR_BA_1		= IOMUX_PAD(0x0264, 0x0264, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_BA0__DDR_BA_0		= IOMUX_PAD(0x0268, 0x0268, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_CAS__DDR_CAS_B		= IOMUX_PAD(0x026c, 0x026c, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_CKE__DDR_CKE_0		= IOMUX_PAD(0x0270, 0x0270, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_CLK__DDR_CLK_0		= IOMUX_PAD(0x0274, 0x0274, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_CS__DDR_CS_B_0		= IOMUX_PAD(0x0278, 0x0278, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D15__DDR_D_15		= IOMUX_PAD(0x027c, 0x027c, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D14__DDR_D_14		= IOMUX_PAD(0x0280, 0x0280, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D13__DDR_D_13		= IOMUX_PAD(0x0284, 0x0284, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D12__DDR_D_12		= IOMUX_PAD(0x0288, 0x0288, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D11__DDR_D_11		= IOMUX_PAD(0x028c, 0x028c, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D10__DDR_D_10		= IOMUX_PAD(0x0290, 0x0290, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D9__DDR_D_9		= IOMUX_PAD(0x0294, 0x0294, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D8__DDR_D_8		= IOMUX_PAD(0x0298, 0x0298, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D7__DDR_D_7		= IOMUX_PAD(0x029c, 0x029c, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D6__DDR_D_6		= IOMUX_PAD(0x02a0, 0x02a0, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D5__DDR_D_5		= IOMUX_PAD(0x02a4, 0x02a4, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D4__DDR_D_4		= IOMUX_PAD(0x02a8, 0x02a8, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D3__DDR_D_3		= IOMUX_PAD(0x02ac, 0x02ac, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D2__DDR_D_2		= IOMUX_PAD(0x02b0, 0x02b0, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D1__DDR_D_1		= IOMUX_PAD(0x02b4, 0x02b4, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_D0__DDR_D_0		= IOMUX_PAD(0x02b8, 0x02b8, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_DQM1__DDR_DQM_1		= IOMUX_PAD(0x02bc, 0x02bc, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_DQM0__DDR_DQM_0		= IOMUX_PAD(0x02c0, 0x02c0, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_DQS1__DDR_DQS_1		= IOMUX_PAD(0x02c4, 0x02c4, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_DQS0__DDR_DQS_0		= IOMUX_PAD(0x02c8, 0x02c8, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_RAS__DDR_RAS_B		= IOMUX_PAD(0x02cc, 0x02cc, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_WE__DDR_WE_B		= IOMUX_PAD(0x02d0, 0x02d0, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_ODT1__DDR_ODT_0		= IOMUX_PAD(0x02d4, 0x02d4, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +	VF610_PAD_DDR_ODT0__DDR_ODT_1		= IOMUX_PAD(0x02d8, 0x02d8, 0, __NA_, 0, VF610_DDR_PAD_CTRL), +}; + +#endif	/* __IOMUX_VF610_H__ */ diff --git a/arch/arm/include/asm/bootm.h b/arch/arm/include/asm/bootm.h index db2ff94c6..2c4fa196e 100644 --- a/arch/arm/include/asm/bootm.h +++ b/arch/arm/include/asm/bootm.h @@ -1,4 +1,7 @@ -/* Copyright (C) 2011 +/* + * Copyright (c) 2013, Google Inc. + * + * Copyright (C) 2011   * Corscience GmbH & Co. KG - Simon Schwarz <schwarz@corscience.de>   *   * This program is free software; you can redistribute it and/or modify @@ -19,8 +22,55 @@  #ifndef ARM_BOOTM_H  #define ARM_BOOTM_H -#ifdef CONFIG_USB_DEVICE  extern void udc_disconnect(void); + +#if defined(CONFIG_SETUP_MEMORY_TAGS) || \ +		defined(CONFIG_CMDLINE_TAG) || \ +		defined(CONFIG_INITRD_TAG) || \ +		defined(CONFIG_SERIAL_TAG) || \ +		defined(CONFIG_REVISION_TAG) +# define BOOTM_ENABLE_TAGS		1 +#else +# define BOOTM_ENABLE_TAGS		0 +#endif + +#ifdef CONFIG_SETUP_MEMORY_TAGS +# define BOOTM_ENABLE_MEMORY_TAGS	1 +#else +# define BOOTM_ENABLE_MEMORY_TAGS	0 +#endif + +#ifdef CONFIG_CMDLINE_TAG + #define BOOTM_ENABLE_CMDLINE_TAG	1 +#else + #define BOOTM_ENABLE_CMDLINE_TAG	0 +#endif + +#ifdef CONFIG_INITRD_TAG + #define BOOTM_ENABLE_INITRD_TAG	1 +#else + #define BOOTM_ENABLE_INITRD_TAG	0 +#endif + +#ifdef CONFIG_SERIAL_TAG + #define BOOTM_ENABLE_SERIAL_TAG	1 +void get_board_serial(struct tag_serialnr *serialnr); +#else + #define BOOTM_ENABLE_SERIAL_TAG	0 +static inline void get_board_serial(struct tag_serialnr *serialnr) +{ +} +#endif + +#ifdef CONFIG_REVISION_TAG + #define BOOTM_ENABLE_REVISION_TAG	1 +u32 get_board_rev(void); +#else + #define BOOTM_ENABLE_REVISION_TAG	0 +static inline u32 get_board_rev(void) +{ +	return 0; +}  #endif  #endif diff --git a/arch/arm/include/asm/emif.h b/arch/arm/include/asm/emif.h index 5f11d7b72..1b94a99c5 100644 --- a/arch/arm/include/asm/emif.h +++ b/arch/arm/include/asm/emif.h @@ -581,7 +581,7 @@  	(0xFF << EMIF_SYS_ADDR_SHIFT))  #define EMIF_EXT_PHY_CTRL_TIMING_REG	0x5 -#define EMIF_EXT_PHY_CTRL_CONST_REG	0x13 +#define EMIF_EXT_PHY_CTRL_CONST_REG	0x14  /* Reg mapping structure */  struct emif_reg_struct { @@ -855,13 +855,10 @@ struct dmm_lisa_map_regs {  #define DPD_ENABLE	1  /* Maximum delay before Low Power Modes */ -#ifndef CONFIG_OMAP54XX -#define REG_CS_TIM		0xF -#else  #define REG_CS_TIM		0x0 -#endif -#define REG_SR_TIM		0xF -#define REG_PD_TIM		0xF +#define REG_SR_TIM		0x0 +#define REG_PD_TIM		0x0 +  /* EMIF_PWR_MGMT_CTRL register */  #define EMIF_PWR_MGMT_CTRL (\ @@ -1113,6 +1110,7 @@ struct emif_regs {  	u32 freq;  	u32 sdram_config_init;  	u32 sdram_config; +	u32 sdram_config2;  	u32 ref_ctrl;  	u32 sdram_tim1;  	u32 sdram_tim2; diff --git a/arch/arm/include/asm/imx-common/iomux-v3.h b/arch/arm/include/asm/imx-common/iomux-v3.h index 0b4e76333..ebf54cf18 100644 --- a/arch/arm/include/asm/imx-common/iomux-v3.h +++ b/arch/arm/include/asm/imx-common/iomux-v3.h @@ -121,6 +121,24 @@ typedef u64 iomux_v3_cfg_t;  #define PAD_CTL_DSE_40ohm	(6 << 3)  #define PAD_CTL_DSE_34ohm	(7 << 3) +#elif defined(CONFIG_VF610) + +#define PAD_MUX_MODE_SHIFT	20 + +#define PAD_CTL_SPEED_MED	(1 << 12) +#define PAD_CTL_SPEED_HIGH	(3 << 12) + +#define PAD_CTL_DSE_50ohm	(3 << 6) +#define PAD_CTL_DSE_25ohm	(6 << 6) +#define PAD_CTL_DSE_20ohm	(7 << 6) + +#define PAD_CTL_PUS_47K_UP	(1 << 4 | PAD_CTL_PUE) +#define PAD_CTL_PUS_100K_UP	(2 << 4 | PAD_CTL_PUE) +#define PAD_CTL_PKE		(1 << 3) +#define PAD_CTL_PUE		(1 << 2 | PAD_CTL_PKE) + +#define PAD_CTL_OBE_IBE_ENABLE	(3 << 0) +  #else  #define PAD_CTL_DVS		(1 << 13) diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h index ee7b188d3..787e614ec 100644 --- a/arch/arm/include/asm/omap_common.h +++ b/arch/arm/include/asm/omap_common.h @@ -29,7 +29,7 @@  #include <common.h> -#define NUM_SYS_CLKS	8 +#define NUM_SYS_CLKS	7  struct prcm_regs {  	/* cm1.ckgen */ @@ -242,6 +242,8 @@ struct prcm_regs {  	u32 cm_l3init_fsusb_clkctrl;  	u32 cm_l3init_ocp2scp1_clkctrl; +	u32 prm_irqstatus_mpu_2; +  	/* cm2.l4per */  	u32 cm_l4per_clkstctrl;  	u32 cm_l4per_dynamicdep; @@ -301,6 +303,7 @@ struct prcm_regs {  	/* l4 wkup regs */  	u32 cm_abe_pll_ref_clksel;  	u32 cm_sys_clksel; +	u32 cm_abe_pll_sys_clksel;  	u32 cm_wkup_clkstctrl;  	u32 cm_wkup_l4wkup_clkctrl;  	u32 cm_wkup_wdtimer1_clkctrl; @@ -328,6 +331,8 @@ struct prcm_regs {  	u32 prm_sldo_mpu_ctrl;  	u32 prm_sldo_mm_setup;  	u32 prm_sldo_mm_ctrl; +	u32 prm_abbldo_mpu_setup; +	u32 prm_abbldo_mpu_ctrl;  	u32 cm_div_m4_dpll_core;  	u32 cm_div_m5_dpll_core; @@ -346,10 +351,15 @@ struct prcm_regs {  	u32 cm_l3init_usbphy_clkctrl;  	u32 cm_l4per_mcbsp4_clkctrl;  	u32 prm_vc_cfg_channel; + +	/* SCRM stuff, used by some boards */ +	u32 scrm_auxclk0; +	u32 scrm_auxclk1;  };  struct omap_sys_ctrl_regs {  	u32 control_status; +	u32 control_std_fuse_opp_vdd_mpu_2;  	u32 control_core_mmr_lock1;  	u32 control_core_mmr_lock2;  	u32 control_core_mmr_lock3; @@ -362,6 +372,7 @@ struct omap_sys_ctrl_regs {  	u32 control_ldosram_iva_voltage_ctrl;  	u32 control_ldosram_mpu_voltage_ctrl;  	u32 control_ldosram_core_voltage_ctrl; +	u32 control_usbotghs_ctrl;  	u32 control_padconf_core_base;  	u32 control_paconf_global;  	u32 control_paconf_mode; @@ -394,6 +405,7 @@ struct omap_sys_ctrl_regs {  	u32 control_ddrio_0;  	u32 control_ddrio_1;  	u32 control_ddrio_2; +	u32 control_ddr_control_ext_0;  	u32 control_lpddr2io1_0;  	u32 control_lpddr2io1_1;  	u32 control_lpddr2io1_2; @@ -419,6 +431,7 @@ struct omap_sys_ctrl_regs {  	u32 control_port_emif2_sdram_config;  	u32 control_emif1_sdram_config_ext;  	u32 control_emif2_sdram_config_ext; +	u32 control_wkup_ldovbb_mpu_voltage_ctrl;  	u32 control_smart1nopmio_padconf_0;  	u32 control_smart1nopmio_padconf_1;  	u32 control_padconf_mode; @@ -494,11 +507,25 @@ struct pmic_data {  	u32 start_code;  	unsigned gpio;  	int gpio_en; +	u32 i2c_slave_addr; +	void (*pmic_bus_init)(void); +	int (*pmic_write)(u8 sa, u8 reg_addr, u8 reg_data); +}; + +/** + * struct volts_efuse_data - efuse definition for voltage + * @reg:	register address for efuse + * @reg_bits:	Number of bits in a register address, mandatory. + */ +struct volts_efuse_data { +	u32 reg; +	u8 reg_bits;  };  struct volts {  	u32 value;  	u32 addr; +	struct volts_efuse_data efuse;  	struct pmic_data *pmic;  }; @@ -506,6 +533,9 @@ struct vcores_data {  	struct volts mpu;  	struct volts core;  	struct volts mm; +	struct volts gpu; +	struct volts eve; +	struct volts iva;  };  extern struct prcm_regs const **prcm; @@ -545,9 +575,9 @@ void enable_non_essential_clocks(void);  void scale_vcores(struct vcores_data const *);  u32 get_offset_code(u32 volt_offset, struct pmic_data *pmic);  void do_scale_vcore(u32 vcore_reg, u32 volt_mv, struct pmic_data *pmic); - -/* Max value for DPLL multiplier M */ -#define OMAP_DPLL_MAX_N	127 +void abb_setup(u32 fuse, u32 ldovbb, u32 setup, u32 control, +	       u32 txdone, u32 txdone_mask, u32 opp); +s8 abb_setup_ldovbb(u32 fuse, u32 ldovbb);  /* HW Init Context */  #define OMAP_INIT_CONTEXT_SPL			0 @@ -555,11 +585,32 @@ void do_scale_vcore(u32 vcore_reg, u32 volt_mv, struct pmic_data *pmic);  #define OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL	2  #define OMAP_INIT_CONTEXT_UBOOT_AFTER_CH	3 +/* ABB */ +#define OMAP_ABB_NOMINAL_OPP		0 +#define OMAP_ABB_FAST_OPP		1 +#define OMAP_ABB_SLOW_OPP		3 +#define OMAP_ABB_CONTROL_FAST_OPP_SEL_MASK		(0x1 << 0) +#define OMAP_ABB_CONTROL_SLOW_OPP_SEL_MASK		(0x1 << 1) +#define OMAP_ABB_CONTROL_OPP_CHANGE_MASK		(0x1 << 2) +#define OMAP_ABB_CONTROL_SR2_IN_TRANSITION_MASK		(0x1 << 6) +#define OMAP_ABB_SETUP_SR2EN_MASK			(0x1 << 0) +#define OMAP_ABB_SETUP_ACTIVE_FBB_SEL_MASK		(0x1 << 2) +#define OMAP_ABB_SETUP_ACTIVE_RBB_SEL_MASK		(0x1 << 1) +#define OMAP_ABB_SETUP_SR2_WTCNT_VALUE_MASK		(0xff << 8) +  static inline u32 omap_revision(void)  {  	extern u32 *const omap_si_rev;  	return *omap_si_rev;  } + +#define OMAP54xx	0x54000000 + +static inline u8 is_omap54xx(void) +{ +	extern u32 *const omap_si_rev; +	return ((*omap_si_rev & 0xFF000000) == OMAP54xx); +}  #endif  /* diff --git a/arch/arm/include/asm/u-boot-arm.h b/arch/arm/include/asm/u-boot-arm.h index f16861ad2..c01eef3e6 100644 --- a/arch/arm/include/asm/u-boot-arm.h +++ b/arch/arm/include/asm/u-boot-arm.h @@ -54,8 +54,6 @@ int	arch_early_init_r(void);  int	board_init(void);  int	dram_init (void);  void	dram_init_banksize (void); -void	setup_serial_tag (struct tag **params); -void	setup_revision_tag (struct tag **params);  /* cpu/.../interrupt.c */  int	arch_interrupt_init	(void); |