diff options
Diffstat (limited to 'include')
78 files changed, 639 insertions, 121 deletions
diff --git a/include/asm-arm/arch-at91/at91_pmc.h b/include/asm-arm/arch-at91/at91_pmc.h index 680fe3327..5b1a85d05 100644 --- a/include/asm-arm/arch-at91/at91_pmc.h +++ b/include/asm-arm/arch-at91/at91_pmc.h @@ -108,11 +108,12 @@ typedef struct at91_pmc {  #define AT91_PMC_IXR_PCKRDY3		0x00000800  #ifdef CONFIG_AT91_LEGACY -  #define	AT91_PMC_SCER		(AT91_PMC + 0x00)	/* System Clock Enable Register */  #define	AT91_PMC_SCDR		(AT91_PMC + 0x04)	/* System Clock Disable Register */  #define	AT91_PMC_SCSR		(AT91_PMC + 0x08)	/* System Clock Status Register */ +#endif +  #define		AT91_PMC_PCK		(1 <<  0)		/* Processor Clock */  #define		AT91RM9200_PMC_UDP	(1 <<  1)		/* USB Devcice Port Clock [AT91RM9200 only] */  #define		AT91RM9200_PMC_MCKUDP	(1 <<  2)		/* USB Device Port Master Clock Automatic Disable on Suspend [AT91RM9200 only] */ @@ -128,27 +129,34 @@ typedef struct at91_pmc {  #define		AT91_PMC_HCK0		(1 << 16)		/* AHB Clock (USB host) [AT91SAM9261 only] */  #define		AT91_PMC_HCK1		(1 << 17)		/* AHB Clock (LCD) [AT91SAM9261 only] */ +#ifdef CONFIG_AT91_LEGACY  #define	AT91_PMC_PCER		(AT91_PMC + 0x10)	/* Peripheral Clock Enable Register */  #define	AT91_PMC_PCDR		(AT91_PMC + 0x14)	/* Peripheral Clock Disable Register */  #define	AT91_PMC_PCSR		(AT91_PMC + 0x18)	/* Peripheral Clock Status Register */  #define	AT91_CKGR_UCKR		(AT91_PMC + 0x1C)	/* UTMI Clock Register [SAM9RL, CAP9] */ +#endif +  #define		AT91_PMC_UPLLEN		(1   << 16)		/* UTMI PLL Enable */  #define		AT91_PMC_UPLLCOUNT	(0xf << 20)		/* UTMI PLL Start-up Time */  #define		AT91_PMC_BIASEN		(1   << 24)		/* UTMI BIAS Enable */  #define		AT91_PMC_BIASCOUNT	(0xf << 28)		/* UTMI PLL Start-up Time */ +#ifdef CONFIG_AT91_LEGACY  #define	AT91_CKGR_MOR		(AT91_PMC + 0x20)	/* Main Oscillator Register [not on SAM9RL] */ +#endif  #define		AT91_PMC_MOSCEN		(1    << 0)		/* Main Oscillator Enable */  #define		AT91_PMC_OSCBYPASS	(1    << 1)		/* Oscillator Bypass [SAM9x, CAP9] */  #define		AT91_PMC_OSCOUNT	(0xff << 8)		/* Main Oscillator Start-up Time */ - +#ifdef CONFIG_AT91_LEGACY  #define	AT91_CKGR_MCFR		(AT91_PMC + 0x24)	/* Main Clock Frequency Register */ +#endif  #define		AT91_PMC_MAINF		(0xffff <<  0)		/* Main Clock Frequency */  #define		AT91_PMC_MAINRDY	(1	<< 16)		/* Main Clock Ready */ - +#ifdef CONFIG_AT91_LEGACY  #define	AT91_CKGR_PLLAR		(AT91_PMC + 0x28)	/* PLL A Register */  #define	AT91_CKGR_PLLBR		(AT91_PMC + 0x2c)	/* PLL B Register */ +#endif  #define		AT91_PMC_DIV		(0xff  <<  0)		/* Divider */  #define		AT91_PMC_PLLCOUNT	(0x3f  <<  8)		/* PLL Counter */  #define		AT91_PMC_OUT		(3     << 14)		/* PLL Clock Frequency Range */ @@ -160,7 +168,9 @@ typedef struct at91_pmc {  #define		AT91_PMC_USB96M		(1     << 28)		/* Divider by 2 Enable (PLLB only) */  #define		AT91_PMC_PLLA_WR_ERRATA	(1     << 29)		/* Bit 29 must always be set to 1 when programming the CKGR_PLLAR register */ +#ifdef CONFIG_AT91_LEGACY  #define	AT91_PMC_MCKR		(AT91_PMC + 0x30)	/* Master Clock Register */ +#endif  #define		AT91_PMC_CSS		(3 <<  0)		/* Master Clock Selection */  #define			AT91_PMC_CSS_SLOW		(0 << 0)  #define			AT91_PMC_CSS_MAIN		(1 << 0) @@ -188,11 +198,13 @@ typedef struct at91_pmc {  #define			AT91_PMC_PDIV_1			(0 << 12)  #define			AT91_PMC_PDIV_2			(1 << 12) +#ifdef CONFIG_AT91_LEGACY  #define	AT91_PMC_PCKR(n)	(AT91_PMC + 0x40 + ((n) * 4))	/* Programmable Clock 0-3 Registers */  #define	AT91_PMC_IER		(AT91_PMC + 0x60)	/* Interrupt Enable Register */  #define	AT91_PMC_IDR		(AT91_PMC + 0x64)	/* Interrupt Disable Register */  #define	AT91_PMC_SR		(AT91_PMC + 0x68)	/* Status Register */ +#endif  #define		AT91_PMC_MOSCS		(1 <<  0)		/* MOSCS Flag */  #define		AT91_PMC_LOCKA		(1 <<  1)		/* PLLA Lock */  #define		AT91_PMC_LOCKB		(1 <<  2)		/* PLLB Lock */ @@ -203,12 +215,13 @@ typedef struct at91_pmc {  #define		AT91_PMC_PCK1RDY	(1 <<  9)		/* Programmable Clock 1 */  #define		AT91_PMC_PCK2RDY	(1 << 10)		/* Programmable Clock 2 */  #define		AT91_PMC_PCK3RDY	(1 << 11)		/* Programmable Clock 3 */ +#ifdef CONFIG_AT91_LEGACY  #define	AT91_PMC_IMR		(AT91_PMC + 0x6c)	/* Interrupt Mask Register */  #define AT91_PMC_PROT		(AT91_PMC + 0xe4)	/* Protect Register [AT91CAP9 revC only] */ +#endif  #define		AT91_PMC_PROTKEY	0x504d4301	/* Activation Code */ - +#ifdef CONFIG_AT91_LEGACY  #define AT91_PMC_VER		(AT91_PMC + 0xfc)	/* PMC Module Version [AT91CAP9 only] */ -  #endif /* CONFIG_AT91_LEGACY */  #endif diff --git a/include/asm-arm/arch-s5pc1xx/clk.h b/include/asm-arm/arch-s5pc1xx/clk.h index f1aa44fd2..3e59abe78 100644 --- a/include/asm-arm/arch-s5pc1xx/clk.h +++ b/include/asm-arm/arch-s5pc1xx/clk.h @@ -23,6 +23,12 @@  #ifndef __ASM_ARM_ARCH_CLK_H_  #define __ASM_ARM_ARCH_CLK_H_ +#define APLL	0 +#define MPLL	1 +#define EPLL	2 +#define HPLL	3 +#define VPLL	4 +  void s5pc1xx_clock_init(void);  extern unsigned long (*get_pll_clk)(int pllreg); diff --git a/include/asm-arm/arch-s5pc1xx/gpio.h b/include/asm-arm/arch-s5pc1xx/gpio.h index afbc7ea5a..8e4bb863f 100644 --- a/include/asm-arm/arch-s5pc1xx/gpio.h +++ b/include/asm-arm/arch-s5pc1xx/gpio.h @@ -124,6 +124,35 @@ struct s5pc110_gpio {  	struct s5pc1xx_gpio_bank gpio_h2;  	struct s5pc1xx_gpio_bank gpio_h3;  }; + +/* functions */ +void gpio_cfg_pin(struct s5pc1xx_gpio_bank *bank, int gpio, int cfg); +void gpio_direction_output(struct s5pc1xx_gpio_bank *bank, int gpio, int en); +void gpio_direction_input(struct s5pc1xx_gpio_bank *bank, int gpio); +void gpio_set_value(struct s5pc1xx_gpio_bank *bank, int gpio, int en); +unsigned int gpio_get_value(struct s5pc1xx_gpio_bank *bank, int gpio); +void gpio_set_pull(struct s5pc1xx_gpio_bank *bank, int gpio, int mode); +void gpio_set_drv(struct s5pc1xx_gpio_bank *bank, int gpio, int mode); +void gpio_set_rate(struct s5pc1xx_gpio_bank *bank, int gpio, int mode);  #endif +/* Pin configurations */ +#define GPIO_INPUT	0x0 +#define GPIO_OUTPUT	0x1 +#define GPIO_IRQ	0xf +#define GPIO_FUNC(x)	(x) + +/* Pull mode */ +#define GPIO_PULL_NONE	0x0 +#define GPIO_PULL_DOWN	0x1 +#define GPIO_PULL_UP	0x2 + +/* Drive Strength level */ +#define GPIO_DRV_1X	0x0 +#define GPIO_DRV_2X	0x1 +#define GPIO_DRV_3X	0x2 +#define GPIO_DRV_4X	0x3 +#define GPIO_DRV_FAST	0x0 +#define GPIO_DRV_SLOW	0x1 +  #endif diff --git a/include/asm-arm/arch-s5pc1xx/smc.h b/include/asm-arm/arch-s5pc1xx/smc.h new file mode 100644 index 000000000..88f4ffe33 --- /dev/null +++ b/include/asm-arm/arch-s5pc1xx/smc.h @@ -0,0 +1,53 @@ +/* + * (C) Copyright 2010 Samsung Electronics + * Naveen Krishna Ch <ch.naveen@samsung.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 + * + * Note: This file contains the register description for Memory subsystem + * 	 (SROM, NAND Flash, OneNand, DDR, OneDRAM) on S5PC1XX. + * + * 	 Only SROMC is defined as of now + */ + +#ifndef __ASM_ARCH_SMC_H_ +#define __ASM_ARCH_SMC_H_ + +#define SMC_DATA16_WIDTH(x)    (1<<((x*4)+0)) +#define SMC_BYTE_ADDR_MODE(x)  (1<<((x*4)+1))  /* 0-> Half-word base address*/ +						/* 1-> Byte base address*/ +#define SMC_WAIT_ENABLE(x)     (1<<((x*4)+2)) +#define SMC_BYTE_ENABLE(x)     (1<<((x*4)+3)) + +#define SMC_BC_TACS(x) (x << 28) /* 0clk     address set-up */ +#define SMC_BC_TCOS(x) (x << 24) /* 4clk     chip selection set-up */ +#define SMC_BC_TACC(x) (x << 16) /* 14clk    access cycle */ +#define SMC_BC_TCOH(x) (x << 12) /* 1clk     chip selection hold */ +#define SMC_BC_TAH(x)  (x << 8)  /* 4clk     address holding time */ +#define SMC_BC_TACP(x) (x << 4)  /* 6clk     page mode access cycle */ +#define SMC_BC_PMC(x)  (x << 0)  /* normal(1data)page mode configuration */ + +#ifndef __ASSEMBLY__ +struct s5pc1xx_smc { +	unsigned int	bw; +	unsigned int	bc[6]; +}; +#endif	/* __ASSEMBLY__ */ + +/* Configure the Band Width and Bank Control Regs for required SROMC Bank */ +void s5pc1xx_config_sromc(u32 srom_bank, u32 smc_bw_conf, u32 smc_bc_conf); + +#endif /* __ASM_ARCH_SMC_H_ */ diff --git a/include/asm-nios2/bitops.h b/include/asm-nios2/bitops.h index 5776bda3e..cf48ff7a1 100644 --- a/include/asm-nios2/bitops.h +++ b/include/asm-nios2/bitops.h @@ -24,15 +24,9 @@  #ifndef __ASM_NIOS2_BITOPS_H_  #define __ASM_NIOS2_BITOPS_H_ - -extern void set_bit(int nr, volatile void * a); -extern void clear_bit(int nr, volatile void * a); -extern int test_and_clear_bit(int nr, volatile void * a); -extern void change_bit(unsigned long nr, volatile void *addr); -extern int test_and_set_bit(int nr, volatile void * a); -extern int test_and_change_bit(int nr, volatile void * addr); -extern int test_bit(int nr, volatile void * a); -extern int ffs(int i); -#define PLATFORM_FFS +/* copied from linux-2.6/include/asm-generic/bitops */ +#include <asm/bitops/atomic.h> +#include <asm/bitops/non-atomic.h> +#include <asm/bitops/ffs.h>  #endif /* __ASM_NIOS2_BITOPS_H */ diff --git a/include/asm-nios2/bitops/atomic.h b/include/asm-nios2/bitops/atomic.h new file mode 100644 index 000000000..c8946465e --- /dev/null +++ b/include/asm-nios2/bitops/atomic.h @@ -0,0 +1,189 @@ +#ifndef _ASM_GENERIC_BITOPS_ATOMIC_H_ +#define _ASM_GENERIC_BITOPS_ATOMIC_H_ + +#include <asm/types.h> +#include <asm/system.h> + +#ifdef CONFIG_SMP +#include <asm/spinlock.h> +#include <asm/cache.h>		/* we use L1_CACHE_BYTES */ + +/* Use an array of spinlocks for our atomic_ts. + * Hash function to index into a different SPINLOCK. + * Since "a" is usually an address, use one spinlock per cacheline. + */ +#  define ATOMIC_HASH_SIZE 4 +#  define ATOMIC_HASH(a) (&(__atomic_hash[ (((unsigned long) a)/L1_CACHE_BYTES) & (ATOMIC_HASH_SIZE-1) ])) + +extern raw_spinlock_t __atomic_hash[ATOMIC_HASH_SIZE] __lock_aligned; + +/* Can't use raw_spin_lock_irq because of #include problems, so + * this is the substitute */ +#define _atomic_spin_lock_irqsave(l,f) do {	\ +	raw_spinlock_t *s = ATOMIC_HASH(l);	\ +	local_irq_save(f);			\ +	__raw_spin_lock(s);			\ +} while(0) + +#define _atomic_spin_unlock_irqrestore(l,f) do {	\ +	raw_spinlock_t *s = ATOMIC_HASH(l);		\ +	__raw_spin_unlock(s);				\ +	local_irq_restore(f);				\ +} while(0) + + +#else +#  define _atomic_spin_lock_irqsave(l,f) do { local_irq_save(f); } while (0) +#  define _atomic_spin_unlock_irqrestore(l,f) do { local_irq_restore(f); } while (0) +#endif + +/* + * NMI events can occur at any time, including when interrupts have been + * disabled by *_irqsave().  So you can get NMI events occurring while a + * *_bit function is holding a spin lock.  If the NMI handler also wants + * to do bit manipulation (and they do) then you can get a deadlock + * between the original caller of *_bit() and the NMI handler. + * + * by Keith Owens + */ + +/** + * set_bit - Atomically set a bit in memory + * @nr: the bit to set + * @addr: the address to start counting from + * + * This function is atomic and may not be reordered.  See __set_bit() + * if you do not require the atomic guarantees. + * + * Note: there are no guarantees that this function will not be reordered + * on non x86 architectures, so if you are writing portable code, + * make sure not to rely on its reordering guarantees. + * + * Note that @nr may be almost arbitrarily large; this function is not + * restricted to acting on a single-word quantity. + */ +static inline void set_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long flags; + +	_atomic_spin_lock_irqsave(p, flags); +	*p  |= mask; +	_atomic_spin_unlock_irqrestore(p, flags); +} + +/** + * clear_bit - Clears a bit in memory + * @nr: Bit to clear + * @addr: Address to start counting from + * + * clear_bit() is atomic and may not be reordered.  However, it does + * not contain a memory barrier, so if it is used for locking purposes, + * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit() + * in order to ensure changes are visible on other processors. + */ +static inline void clear_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long flags; + +	_atomic_spin_lock_irqsave(p, flags); +	*p &= ~mask; +	_atomic_spin_unlock_irqrestore(p, flags); +} + +/** + * change_bit - Toggle a bit in memory + * @nr: Bit to change + * @addr: Address to start counting from + * + * change_bit() is atomic and may not be reordered. It may be + * reordered on other architectures than x86. + * Note that @nr may be almost arbitrarily large; this function is not + * restricted to acting on a single-word quantity. + */ +static inline void change_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long flags; + +	_atomic_spin_lock_irqsave(p, flags); +	*p ^= mask; +	_atomic_spin_unlock_irqrestore(p, flags); +} + +/** + * test_and_set_bit - Set a bit and return its old value + * @nr: Bit to set + * @addr: Address to count from + * + * This operation is atomic and cannot be reordered. + * It may be reordered on other architectures than x86. + * It also implies a memory barrier. + */ +static inline int test_and_set_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long old; +	unsigned long flags; + +	_atomic_spin_lock_irqsave(p, flags); +	old = *p; +	*p = old | mask; +	_atomic_spin_unlock_irqrestore(p, flags); + +	return (old & mask) != 0; +} + +/** + * test_and_clear_bit - Clear a bit and return its old value + * @nr: Bit to clear + * @addr: Address to count from + * + * This operation is atomic and cannot be reordered. + * It can be reorderdered on other architectures other than x86. + * It also implies a memory barrier. + */ +static inline int test_and_clear_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long old; +	unsigned long flags; + +	_atomic_spin_lock_irqsave(p, flags); +	old = *p; +	*p = old & ~mask; +	_atomic_spin_unlock_irqrestore(p, flags); + +	return (old & mask) != 0; +} + +/** + * test_and_change_bit - Change a bit and return its old value + * @nr: Bit to change + * @addr: Address to count from + * + * This operation is atomic and cannot be reordered. + * It also implies a memory barrier. + */ +static inline int test_and_change_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long old; +	unsigned long flags; + +	_atomic_spin_lock_irqsave(p, flags); +	old = *p; +	*p = old ^ mask; +	_atomic_spin_unlock_irqrestore(p, flags); + +	return (old & mask) != 0; +} + +#endif /* _ASM_GENERIC_BITOPS_ATOMIC_H */ diff --git a/include/asm-nios2/bitops/ffs.h b/include/asm-nios2/bitops/ffs.h new file mode 100644 index 000000000..fbbb43af7 --- /dev/null +++ b/include/asm-nios2/bitops/ffs.h @@ -0,0 +1,41 @@ +#ifndef _ASM_GENERIC_BITOPS_FFS_H_ +#define _ASM_GENERIC_BITOPS_FFS_H_ + +/** + * ffs - find first bit set + * @x: the word to search + * + * This is defined the same way as + * the libc and compiler builtin ffs routines, therefore + * differs in spirit from the above ffz (man ffs). + */ +static inline int ffs(int x) +{ +	int r = 1; + +	if (!x) +		return 0; +	if (!(x & 0xffff)) { +		x >>= 16; +		r += 16; +	} +	if (!(x & 0xff)) { +		x >>= 8; +		r += 8; +	} +	if (!(x & 0xf)) { +		x >>= 4; +		r += 4; +	} +	if (!(x & 3)) { +		x >>= 2; +		r += 2; +	} +	if (!(x & 1)) { +		x >>= 1; +		r += 1; +	} +	return r; +} + +#endif /* _ASM_GENERIC_BITOPS_FFS_H_ */ diff --git a/include/asm-nios2/bitops/non-atomic.h b/include/asm-nios2/bitops/non-atomic.h new file mode 100644 index 000000000..697cc2b7e --- /dev/null +++ b/include/asm-nios2/bitops/non-atomic.h @@ -0,0 +1,108 @@ +#ifndef _ASM_GENERIC_BITOPS_NON_ATOMIC_H_ +#define _ASM_GENERIC_BITOPS_NON_ATOMIC_H_ + +#include <asm/types.h> + +/** + * __set_bit - Set a bit in memory + * @nr: the bit to set + * @addr: the address to start counting from + * + * Unlike set_bit(), this function is non-atomic and may be reordered. + * If it's called on the same region of memory simultaneously, the effect + * may be that only one operation succeeds. + */ +static inline void __set_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); + +	*p  |= mask; +} + +static inline void __clear_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); + +	*p &= ~mask; +} + +/** + * __change_bit - Toggle a bit in memory + * @nr: the bit to change + * @addr: the address to start counting from + * + * Unlike change_bit(), this function is non-atomic and may be reordered. + * If it's called on the same region of memory simultaneously, the effect + * may be that only one operation succeeds. + */ +static inline void __change_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); + +	*p ^= mask; +} + +/** + * __test_and_set_bit - Set a bit and return its old value + * @nr: Bit to set + * @addr: Address to count from + * + * This operation is non-atomic and can be reordered. + * If two examples of this operation race, one can appear to succeed + * but actually fail.  You must protect multiple accesses with a lock. + */ +static inline int __test_and_set_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long old = *p; + +	*p = old | mask; +	return (old & mask) != 0; +} + +/** + * __test_and_clear_bit - Clear a bit and return its old value + * @nr: Bit to clear + * @addr: Address to count from + * + * This operation is non-atomic and can be reordered. + * If two examples of this operation race, one can appear to succeed + * but actually fail.  You must protect multiple accesses with a lock. + */ +static inline int __test_and_clear_bit(int nr, volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long old = *p; + +	*p = old & ~mask; +	return (old & mask) != 0; +} + +/* WARNING: non atomic and it can be reordered! */ +static inline int __test_and_change_bit(int nr, +					    volatile unsigned long *addr) +{ +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); +	unsigned long old = *p; + +	*p = old ^ mask; +	return (old & mask) != 0; +} + +/** + * test_bit - Determine whether a bit is set + * @nr: bit number to test + * @addr: Address to start counting from + */ +static inline int test_bit(int nr, const volatile unsigned long *addr) +{ +	return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1))); +} + +#endif /* _ASM_GENERIC_BITOPS_NON_ATOMIC_H_ */ diff --git a/include/asm-nios2/errno.h b/include/asm-nios2/errno.h new file mode 100644 index 000000000..4c82b503d --- /dev/null +++ b/include/asm-nios2/errno.h @@ -0,0 +1 @@ +#include <asm-generic/errno.h> diff --git a/include/asm-nios2/io.h b/include/asm-nios2/io.h index 01d11efec..121405cd6 100644 --- a/include/asm-nios2/io.h +++ b/include/asm-nios2/io.h @@ -80,19 +80,19 @@ extern unsigned inl (unsigned port);  	({unsigned long val;\  	 asm volatile( "ldwio %0, 0(%1)" :"=r"(val) : "r" (addr)); val;}) -#define writeb(addr,val)\ -	asm volatile ("stbio %1, 0(%0)" : : "r" (addr), "r" (val)) -#define writew(addr,val)\ -	asm volatile ("sthio %1, 0(%0)" : : "r" (addr), "r" (val)) -#define writel(addr,val)\ -	asm volatile ("stwio %1, 0(%0)" : : "r" (addr), "r" (val)) +#define writeb(val,addr)\ +	asm volatile ("stbio %0, 0(%1)" : : "r" (val), "r" (addr)) +#define writew(val,addr)\ +	asm volatile ("sthio %0, 0(%1)" : : "r" (val), "r" (addr)) +#define writel(val,addr)\ +	asm volatile ("stwio %0, 0(%1)" : : "r" (val), "r" (addr))  #define inb(addr)	readb(addr)  #define inw(addr)	readw(addr)  #define inl(addr)	readl(addr) -#define outb(addr,val)	writeb(addr,val) -#define outw(addr,val)	writew(addr,val) -#define outl(addr,val)	writel(addr,val) +#define outb(val, addr)	writeb(val,addr) +#define outw(val, addr)	writew(val,addr) +#define outl(val, addr)	writel(val,addr)  static inline void insb (unsigned long port, void *dst, unsigned long count)  { diff --git a/include/asm-nios2/system.h b/include/asm-nios2/system.h index ec84f5935..bb03ca531 100644 --- a/include/asm-nios2/system.h +++ b/include/asm-nios2/system.h @@ -23,4 +23,37 @@  #ifndef __ASM_NIOS2_SYSTEM_H_  #define __ASM_NIOS2_SYSTEM_H_ +#define local_irq_enable() __asm__ __volatile__ (  \ +	"rdctl	r8, status\n"			   \ +	"ori	r8, r8, 1\n"			   \ +	"wrctl	status, r8\n"			   \ +	: : : "r8") + +#define local_irq_disable() __asm__ __volatile__ ( \ +	"rdctl	r8, status\n"			   \ +	"andi	r8, r8, 0xfffe\n"		   \ +	"wrctl	status, r8\n"			   \ +	: : : "r8") + +#define local_save_flags(x) __asm__ __volatile__ (	\ +	"rdctl	r8, status\n"				\ +	"mov	%0, r8\n"				\ +	: "=r" (x) : : "r8", "memory") + +#define local_irq_restore(x) __asm__ __volatile__ (	\ +	"mov	r8, %0\n"				\ +	"wrctl	status, r8\n"				\ +	: : "r" (x) : "r8", "memory") + +/* For spinlocks etc */ +#define local_irq_save(x) do { local_save_flags(x); local_irq_disable(); } \ +	while (0) + +#define	irqs_disabled()					\ +({							\ +	unsigned long flags;				\ +	local_save_flags(flags);			\ +	((flags & NIOS2_STATUS_PIE_MSK) == 0x0);	\ +}) +  #endif /* __ASM_NIOS2_SYSTEM_H */ diff --git a/include/asm-ppc/config.h b/include/asm-ppc/config.h index 0d78aa400..fc3facb30 100644 --- a/include/asm-ppc/config.h +++ b/include/asm-ppc/config.h @@ -1,5 +1,5 @@  /* - * Copyright 2009 Freescale Semiconductor, Inc. + * Copyright 2009-2010 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 @@ -41,6 +41,7 @@  #endif  #if defined(CONFIG_MPC8572) || defined(CONFIG_P1020) || \ +	defined(CONFIG_P1021) || defined(CONFIG_P1022) || \  	defined(CONFIG_P2020) || defined(CONFIG_MPC8641)  #define CONFIG_MAX_CPUS		2  #elif defined(CONFIG_PPC_P4080) diff --git a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h index 9b3d616a6..9ec319ae1 100644 --- a/include/asm-ppc/processor.h +++ b/include/asm-ppc/processor.h @@ -265,6 +265,7 @@  #define	  HID1_RFXE	(1<<17)		/* Read Fault Exception Enable */  #define	  HID1_ASTME	(1<<13)		/* Address bus streaming mode */  #define	  HID1_ABE	(1<<12)		/* Address broadcast enable */ +#define	  HID1_MBDD	(1<<6)		/* optimized sync instruction */  #define SPRN_IABR	0x3F2	/* Instruction Address Breakpoint Register */  #ifndef CONFIG_BOOKE  #define SPRN_IAC1	0x3F4	/* Instruction Address Compare 1 */ @@ -533,6 +534,9 @@  #define SPRN_MCSRR0	0x23a	/* Machine Check Save and Restore Register 0 */  #define SPRN_MCSRR1	0x23b	/* Machine Check Save and Restore Register 1 */  #define SPRN_BUCSR	0x3f5	/* Branch Control and Status Register */ +#define	  BUCSR_BBFI	0x00000200	/* Branch buffer flash invalidate */ +#define	  BUCSR_BPEN	0x00000001	/* Branch prediction enable */ +#define   BUCSR_ENABLE (BUCSR_BBFI|BUCSR_BPEN)  #define SPRN_BBEAR	0x201	/* Branch Buffer Entry Address Register */  #define SPRN_BBTAR	0x202	/* Branch Buffer Target Address Register */  #define SPRN_PID1	0x279	/* Process ID Register 1 */ @@ -1032,8 +1036,16 @@  #define SVR_8572_E	0x80E800  #define SVR_P1011	0x80E500  #define SVR_P1011_E	0x80ED00 +#define SVR_P1012	0x80E501 +#define SVR_P1012_E	0x80ED01 +#define SVR_P1013	0x80E700 +#define SVR_P1013_E	0x80EF00  #define SVR_P1020	0x80E400  #define SVR_P1020_E	0x80EC00 +#define SVR_P1021	0x80E401 +#define SVR_P1021_E	0x80EC01 +#define SVR_P1022	0x80E600 +#define SVR_P1022_E	0x80EE00  #define SVR_P2010	0x80E300  #define SVR_P2010_E	0x80EB00  #define SVR_P2020	0x80E200 diff --git a/include/configs/ASH405.h b/include/configs/ASH405.h index 5cb0f1e28..4cb805223 100644 --- a/include/configs/ASH405.h +++ b/include/configs/ASH405.h @@ -244,6 +244,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CANBT.h b/include/configs/CANBT.h index e3e6e75e8..cdba81d32 100644 --- a/include/configs/CANBT.h +++ b/include/configs/CANBT.h @@ -173,6 +173,7 @@   * I2C EEPROM (CAT24WC08) for environment   */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CMS700.h b/include/configs/CMS700.h index ae8494d57..2b6786b9d 100644 --- a/include/configs/CMS700.h +++ b/include/configs/CMS700.h @@ -224,6 +224,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CPCI2DP.h b/include/configs/CPCI2DP.h index 5c88c47b5..922121173 100644 --- a/include/configs/CPCI2DP.h +++ b/include/configs/CPCI2DP.h @@ -207,6 +207,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CPCI405.h b/include/configs/CPCI405.h index d131aeaf4..3e7020df8 100644 --- a/include/configs/CPCI405.h +++ b/include/configs/CPCI405.h @@ -256,6 +256,7 @@   * I2C EEPROM (CAT24WC08) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CPCI4052.h b/include/configs/CPCI4052.h index 07c4e3599..d3000f657 100644 --- a/include/configs/CPCI4052.h +++ b/include/configs/CPCI4052.h @@ -283,6 +283,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CPCI405AB.h b/include/configs/CPCI405AB.h index c78552bbd..d3763441e 100644 --- a/include/configs/CPCI405AB.h +++ b/include/configs/CPCI405AB.h @@ -259,6 +259,7 @@   * I2C EEPROM (CAT24WC32) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CPCI405DT.h b/include/configs/CPCI405DT.h index 59e0778f6..07acab0c2 100644 --- a/include/configs/CPCI405DT.h +++ b/include/configs/CPCI405DT.h @@ -278,6 +278,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CPCIISER4.h b/include/configs/CPCIISER4.h index b2679e587..5b50bcf33 100644 --- a/include/configs/CPCIISER4.h +++ b/include/configs/CPCIISER4.h @@ -189,6 +189,7 @@   * I2C EEPROM (CAT24WC08) for environment   */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/CRAYL1.h b/include/configs/CRAYL1.h index 96bf161aa..9ab30ecba 100644 --- a/include/configs/CRAYL1.h +++ b/include/configs/CRAYL1.h @@ -65,6 +65,7 @@   #define CONFIG_ETHADDR          00:40:a6:80:14:5   */  #define CONFIG_HARD_I2C         1		/* hardware support for i2c */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SDRAM_BANK0		1  #define CONFIG_SYS_I2C_SPEED		    400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		    0x7F diff --git a/include/configs/DP405.h b/include/configs/DP405.h index 49ecb6f36..4423f2ab6 100644 --- a/include/configs/DP405.h +++ b/include/configs/DP405.h @@ -174,6 +174,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/DU405.h b/include/configs/DU405.h index cfb302331..8f1fc78bc 100644 --- a/include/configs/DU405.h +++ b/include/configs/DU405.h @@ -212,6 +212,7 @@   * I2C EEPROM (CAT24WC08) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/DU440.h b/include/configs/DU440.h index 65dc2359d..830466f7a 100644 --- a/include/configs/DU440.h +++ b/include/configs/DU440.h @@ -169,6 +169,7 @@   */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support    */  #undef	CONFIG_SOFT_I2C			/* I2C bit-banged	        */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address  */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_I2C_MULTI_BUS    1 diff --git a/include/configs/EP1C20.h b/include/configs/EP1C20.h index 61d8e20f9..3920d3526 100644 --- a/include/configs/EP1C20.h +++ b/include/configs/EP1C20.h @@ -94,7 +94,8 @@  /*------------------------------------------------------------------------   * CONSOLE   *----------------------------------------------------------------------*/ -#if defined(CONFIG_CONSOLE_JTAG) +#define CONFIG_ALTERA_UART		1	/* Use altera uart */ +#if defined(CONFIG_ALTERA_JTAG_UART)  #define CONFIG_SYS_NIOS_CONSOLE	0x021208b0	/* JTAG UART base addr	*/  #else  #define CONFIG_SYS_NIOS_CONSOLE	0x02120840	/* UART base addr	*/ @@ -123,14 +124,16 @@   * TIMEBASE --   *   * The high res timer defaults to 1 msec. Since it includes the period - * registers, we can slow it down to 10 msec using TMRCNT. If the default - * period is acceptable, TMRCNT can be left undefined. + * registers, the interrupt frequency can be reduced using TMRCNT. + * If the default period is acceptable, TMRCNT can be left undefined. + * TMRMS represents the desired mecs per tick (msecs per interrupt).   *----------------------------------------------------------------------*/ +#define CONFIG_SYS_HZ			1000	/* Always 1000 */  #define CONFIG_SYS_NIOS_TMRBASE	0x02120820	/* Tick timer base addr */ -#define CONFIG_SYS_NIOS_TMRIRQ		3		/* Timer IRQ num	*/ -#define CONFIG_SYS_NIOS_TMRMS		10		/* 10 msec per tick	*/ -#define CONFIG_SYS_NIOS_TMRCNT (CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000)) -#define CONFIG_SYS_HZ		(CONFIG_SYS_CLK_FREQ/(CONFIG_SYS_NIOS_TMRCNT + 1)) +#define CONFIG_SYS_NIOS_TMRIRQ		3	/* Timer IRQ num	*/ +#define CONFIG_SYS_NIOS_TMRMS		10	/* Desired period (msec)*/ +#define CONFIG_SYS_NIOS_TMRCNT \ +		(CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000))  /*------------------------------------------------------------------------   * STATUS LED -- Provides a simple blinking led. For Nios2 each board diff --git a/include/configs/EP1S10.h b/include/configs/EP1S10.h index 41e64e6d1..bfbf8c111 100644 --- a/include/configs/EP1S10.h +++ b/include/configs/EP1S10.h @@ -92,7 +92,8 @@  /*------------------------------------------------------------------------   * CONSOLE   *----------------------------------------------------------------------*/ -#if defined(CONFIG_CONSOLE_JTAG) +#define CONFIG_ALTERA_UART		1	/* Use altera uart */ +#if defined(CONFIG_ALTERA_JTAG_UART)  #define CONFIG_SYS_NIOS_CONSOLE	0x021208b0	/* JTAG UART base addr	*/  #else  #define CONFIG_SYS_NIOS_CONSOLE	0x02120840	/* UART base addr	*/ @@ -118,14 +119,16 @@   * TIMEBASE --   *   * The high res timer defaults to 1 msec. Since it includes the period - * registers, we can slow it down to 10 msec using TMRCNT. If the default - * period is acceptable, TMRCNT can be left undefined. + * registers, the interrupt frequency can be reduced using TMRCNT. + * If the default period is acceptable, TMRCNT can be left undefined. + * TMRMS represents the desired mecs per tick (msecs per interrupt).   *----------------------------------------------------------------------*/ +#define CONFIG_SYS_HZ			1000	/* Always 1000 */  #define CONFIG_SYS_NIOS_TMRBASE	0x02120820	/* Tick timer base addr */ -#define CONFIG_SYS_NIOS_TMRIRQ		3		/* Timer IRQ num	*/ -#define CONFIG_SYS_NIOS_TMRMS		10		/* 10 msec per tick	*/ -#define CONFIG_SYS_NIOS_TMRCNT (CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000)) -#define CONFIG_SYS_HZ		(CONFIG_SYS_CLK_FREQ/(CONFIG_SYS_NIOS_TMRCNT + 1)) +#define CONFIG_SYS_NIOS_TMRIRQ		3	/* Timer IRQ num */ +#define CONFIG_SYS_NIOS_TMRMS		10	/* Desired period (msec)*/ +#define CONFIG_SYS_NIOS_TMRCNT \ +		(CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000))  /*------------------------------------------------------------------------   * STATUS LED -- Provides a simple blinking led. For Nios2 each board diff --git a/include/configs/EP1S40.h b/include/configs/EP1S40.h index 5b332e40e..4d905fee3 100644 --- a/include/configs/EP1S40.h +++ b/include/configs/EP1S40.h @@ -92,7 +92,8 @@  /*------------------------------------------------------------------------   * CONSOLE   *----------------------------------------------------------------------*/ -#if defined(CONFIG_CONSOLE_JTAG) +#define CONFIG_ALTERA_UART		1	/* Use altera uart */ +#if defined(CONFIG_ALTERA_JTAG_UART)  #define CONFIG_SYS_NIOS_CONSOLE	0x021208b0	/* JTAG UART base addr	*/  #else  #define CONFIG_SYS_NIOS_CONSOLE	0x02120840	/* UART base addr	*/ @@ -118,14 +119,16 @@   * TIMEBASE --   *   * The high res timer defaults to 1 msec. Since it includes the period - * registers, we can slow it down to 10 msec using TMRCNT. If the default - * period is acceptable, TMRCNT can be left undefined. + * registers, the interrupt frequency can be reduced using TMRCNT. + * If the default period is acceptable, TMRCNT can be left undefined. + * TMRMS represents the desired mecs per tick (msecs per interrupt).   *----------------------------------------------------------------------*/ +#define CONFIG_SYS_HZ			1000	/* Always 1000 */  #define CONFIG_SYS_NIOS_TMRBASE	0x02120820	/* Tick timer base addr */ -#define CONFIG_SYS_NIOS_TMRIRQ		3		/* Timer IRQ num	*/ -#define CONFIG_SYS_NIOS_TMRMS		10		/* 10 msec per tick	*/ -#define CONFIG_SYS_NIOS_TMRCNT (CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000)) -#define CONFIG_SYS_HZ		(CONFIG_SYS_CLK_FREQ/(CONFIG_SYS_NIOS_TMRCNT + 1)) +#define CONFIG_SYS_NIOS_TMRIRQ		3	/* Timer IRQ num */ +#define CONFIG_SYS_NIOS_TMRMS		10	/* Desired period (msec) */ +#define CONFIG_SYS_NIOS_TMRCNT \ +		(CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000))  /*------------------------------------------------------------------------   * STATUS LED -- Provides a simple blinking led. For Nios2 each board diff --git a/include/configs/ERIC.h b/include/configs/ERIC.h index 023f33e1e..e07f9a1dc 100644 --- a/include/configs/ERIC.h +++ b/include/configs/ERIC.h @@ -54,6 +54,7 @@  #endif					/* total size of a X1240 is 2048 bytes */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/G2000.h b/include/configs/G2000.h index 6819c3e36..d2883eb8d 100644 --- a/include/configs/G2000.h +++ b/include/configs/G2000.h @@ -295,6 +295,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/HH405.h b/include/configs/HH405.h index 92335239d..01e0bc65e 100644 --- a/include/configs/HH405.h +++ b/include/configs/HH405.h @@ -331,6 +331,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #if 0 /* test-only */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #else diff --git a/include/configs/HUB405.h b/include/configs/HUB405.h index ea502d42c..8c6d5edff 100644 --- a/include/configs/HUB405.h +++ b/include/configs/HUB405.h @@ -244,6 +244,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/JSE.h b/include/configs/JSE.h index 80c70e488..98f5661a0 100644 --- a/include/configs/JSE.h +++ b/include/configs/JSE.h @@ -217,6 +217,7 @@  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/KAREF.h b/include/configs/KAREF.h index 4b67c9454..49a7378f2 100644 --- a/include/configs/KAREF.h +++ b/include/configs/KAREF.h @@ -132,6 +132,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C	      1		     /* I2C hardware support	*/  #undef	CONFIG_SOFT_I2C			     /* I2C !bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED	      400000	     /* I2C speed 400kHz	*/  #define CONFIG_SYS_I2C_SLAVE	      0x7F	     /* I2C slave address	*/  #define CONFIG_SYS_I2C_NOPROBES      {0x69}	     /* Don't probe these addrs */ diff --git a/include/configs/METROBOX.h b/include/configs/METROBOX.h index 518173aa5..e7429dd19 100644 --- a/include/configs/METROBOX.h +++ b/include/configs/METROBOX.h @@ -194,6 +194,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C	      1		     /* I2C hardware support	*/  #undef	CONFIG_SOFT_I2C			     /* I2C !bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED	      400000	     /* I2C speed 400kHz	*/  #define CONFIG_SYS_I2C_SLAVE	      0x7F	     /* I2C slave address	*/  #define CONFIG_SYS_I2C_NOPROBES      {0x69}	     /* Don't probe these addrs */ diff --git a/include/configs/MIP405.h b/include/configs/MIP405.h index 7ac934225..7e6484ee9 100644 --- a/include/configs/MIP405.h +++ b/include/configs/MIP405.h @@ -97,6 +97,7 @@   ***************************************************************/  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		50000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/MPC8536DS.h b/include/configs/MPC8536DS.h index 87901b3af..da4313ac3 100644 --- a/include/configs/MPC8536DS.h +++ b/include/configs/MPC8536DS.h @@ -413,6 +413,9 @@ extern unsigned long get_board_ddr_clk(unsigned long dummy);  #define CONFIG_SYS_NS16550_SERIAL  #define CONFIG_SYS_NS16550_REG_SIZE	1  #define CONFIG_SYS_NS16550_CLK		get_bus_freq(0) +#ifdef CONFIG_NAND_SPL +#define CONFIG_NS16550_MIN_FUNCTIONS +#endif  #define CONFIG_SYS_BAUDRATE_TABLE	\  	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200} diff --git a/include/configs/MPC8569MDS.h b/include/configs/MPC8569MDS.h index 9b8170374..0c43b2b0c 100644 --- a/include/configs/MPC8569MDS.h +++ b/include/configs/MPC8569MDS.h @@ -284,6 +284,9 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_SYS_NS16550_SERIAL  #define CONFIG_SYS_NS16550_REG_SIZE    1  #define CONFIG_SYS_NS16550_CLK		get_bus_freq(0) +#ifdef CONFIG_NAND_SPL +#define CONFIG_NS16550_MIN_FUNCTIONS +#endif  #define CONFIG_SYS_BAUDRATE_TABLE  \  	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200} diff --git a/include/configs/MPC8610HPCD.h b/include/configs/MPC8610HPCD.h index fed441eb3..8382e3ca8 100644 --- a/include/configs/MPC8610HPCD.h +++ b/include/configs/MPC8610HPCD.h @@ -177,7 +177,7 @@  #define PIXIS_VSPEED1		0x18	/* VELA VSpeed 1 */  #define PIXIS_VCLKH		0x19	/* VELA VCLKH register */  #define PIXIS_VCLKL		0x1A	/* VELA VCLKL register */ -#define CONFIG_SYS_PIXIS_VBOOT_MASK	0x0C    /* Reset altbank mask*/ +#define CONFIG_SYS_PIXIS_VBOOT_MASK	0xC0    /* Reset altbank mask */  #define CONFIG_SYS_MAX_FLASH_BANKS	2		/* number of banks */  #define CONFIG_SYS_MAX_FLASH_SECT	1024		/* sectors per device */ diff --git a/include/configs/OCRTC.h b/include/configs/OCRTC.h index 860ec5292..55471af34 100644 --- a/include/configs/OCRTC.h +++ b/include/configs/OCRTC.h @@ -210,6 +210,7 @@   * I2C EEPROM (CAT24WC08) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/ORSG.h b/include/configs/ORSG.h index b2e2d41f2..142471362 100644 --- a/include/configs/ORSG.h +++ b/include/configs/ORSG.h @@ -208,6 +208,7 @@   * I2C EEPROM (CAT24WC08) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/P1_P2_RDB.h b/include/configs/P1_P2_RDB.h index 405e6d504..a9b4004c3 100644 --- a/include/configs/P1_P2_RDB.h +++ b/include/configs/P1_P2_RDB.h @@ -286,6 +286,9 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  #define CONFIG_SYS_NS16550_SERIAL  #define CONFIG_SYS_NS16550_REG_SIZE	1  #define CONFIG_SYS_NS16550_CLK		get_bus_freq(0) +#ifdef CONFIG_NAND_SPL +#define CONFIG_NS16550_MIN_FUNCTIONS +#endif  #define CONFIG_SERIAL_MULTI	1 /* Enable both serial ports */  #define CONFIG_SYS_CONSOLE_IS_IN_ENV	/* determine from environment */ diff --git a/include/configs/P2020DS.h b/include/configs/P2020DS.h index 30a5a319b..66be725c8 100644 --- a/include/configs/P2020DS.h +++ b/include/configs/P2020DS.h @@ -238,7 +238,9 @@ extern unsigned long calculate_board_ddr_clk(unsigned long dummy);  #define CONFIG_BOARD_EARLY_INIT_R	/* call board_early_init_r function */ -#define CONFIG_FSL_PIXIS	1	/* use common PIXIS code */ +#define CONFIG_FSL_NGPIXIS		/* use common ngPIXIS code */ + +#ifdef CONFIG_FSL_NGPIXIS  #define PIXIS_BASE	0xffdf0000	/* PIXIS registers */  #ifdef CONFIG_PHYS_64BIT  #define PIXIS_BASE_PHYS	0xfffdf0000ull @@ -249,59 +251,11 @@ extern unsigned long calculate_board_ddr_clk(unsigned long dummy);  #define CONFIG_SYS_BR3_PRELIM	(BR_PHYS_ADDR(PIXIS_BASE_PHYS) | BR_PS_8 | BR_V)  #define CONFIG_SYS_OR3_PRELIM		0xffffeff7	/* 32KB but only 4k mapped */ -#define PIXIS_ID		0x0	/* Board ID at offset 0 */ -#define PIXIS_VER		0x1	/* Board version at offset 1 */ -#define PIXIS_PVER		0x2	/* PIXIS FPGA version at offset 2 */ -#define PIXIS_CSR		0x3	/* PIXIS General control/status register */ -#define PIXIS_RST		0x4	/* PIXIS Reset Control register */ -#define PIXIS_PWR		0x5	/* PIXIS Power status register */ -#define PIXIS_AUX		0x6	/* Auxiliary 1 register */ -#define PIXIS_SPD		0x7	/* Register for SYSCLK speed */ -#define PIXIS_AUX2		0x8	/* Auxiliary 2 register */ -#define PIXIS_VCTL		0x10	/* VELA Control Register */ -#define PIXIS_VSTAT		0x11	/* VELA Status Register */ -#define PIXIS_VCFGEN0		0x12	/* VELA Config Enable 0 */ -#define PIXIS_VCFGEN1		0x13	/* VELA Config Enable 1 */ -#define PIXIS_VCORE0		0x14	/* VELA VCORE0 Register */ -#define PIXIS_VBOOT		0x16	/* VELA VBOOT Register */ -#define PIXIS_VSPEED0		0x17	/* VELA VSpeed 0 */ -#define PIXIS_VSPEED1		0x18	/* VELA VSpeed 1 */ -#define PIXIS_VSPEED2		0x19	/* VELA VSpeed 2 */ -#define PIXIS_VSYSCLK0		0x19	/* VELA SYSCLK0 Register */ -#define PIXIS_VSYSCLK1		0x1A	/* VELA SYSCLK1 Register */ -#define PIXIS_VSYSCLK2		0x1B	/* VELA SYSCLK2 Register */ -#define PIXIS_VDDRCLK0		0x1C	/* VELA DDRCLK0 Register */ -#define PIXIS_VDDRCLK1		0x1D	/* VELA DDRCLK1 Register */ -#define PIXIS_VDDRCLK2		0x1E	/* VELA DDRCLK2 Register */ - -#define PIXIS_VWATCH		0x24	/* Watchdog Register */ -#define PIXIS_LED		0x25	/* LED Register */ - -#define PIXIS_SW(x)		0x20 + (x - 1) * 2 -#define PIXIS_EN(x)		0x21 + (x - 1) * 2 -#define PIXIS_SW7_LBMAP		0xc0	/* SW7 - cfg_lbmap */ -#define PIXIS_SW7_VBANK		0x30	/* SW7 - cfg_vbank */ - -/* old pixis referenced names */ -#define PIXIS_VCLKH		0x19	/* VELA VCLKH register */ -#define PIXIS_VCLKL		0x1A	/* VELA VCLKL register */ -#define CONFIG_SYS_PIXIS_VBOOT_MASK	0xc0 -#define PIXIS_VSPEED2_TSEC1SER	0x8 -#define PIXIS_VSPEED2_TSEC2SER	0x4 -#define PIXIS_VSPEED2_TSEC3SER	0x2 -#define PIXIS_VSPEED2_TSEC4SER	0x1 -#define PIXIS_VCFGEN1_TSEC1SER	0x20 -#define PIXIS_VCFGEN1_TSEC2SER	0x20 -#define PIXIS_VCFGEN1_TSEC3SER	0x20 -#define PIXIS_VCFGEN1_TSEC4SER	0x20 -#define PIXIS_VSPEED2_MASK	(PIXIS_VSPEED2_TSEC1SER \ -					| PIXIS_VSPEED2_TSEC2SER \ -					| PIXIS_VSPEED2_TSEC3SER \ -					| PIXIS_VSPEED2_TSEC4SER) -#define PIXIS_VCFGEN1_MASK	(PIXIS_VCFGEN1_TSEC1SER \ -					| PIXIS_VCFGEN1_TSEC2SER \ -					| PIXIS_VCFGEN1_TSEC3SER \ -					| PIXIS_VCFGEN1_TSEC4SER) +#define PIXIS_LBMAP_SWITCH	7 +#define PIXIS_LBMAP_MASK	0xf0 +#define PIXIS_LBMAP_SHIFT	4 +#define PIXIS_LBMAP_ALTBANK	0x20 +#endif  #define CONFIG_SYS_INIT_RAM_LOCK	1  #define CONFIG_SYS_INIT_RAM_ADDR	0xffd00000	/* Initial L1 address */ diff --git a/include/configs/PCI405.h b/include/configs/PCI405.h index 4e397990c..0d443ea2d 100644 --- a/include/configs/PCI405.h +++ b/include/configs/PCI405.h @@ -204,6 +204,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/PCI5441.h b/include/configs/PCI5441.h index 831a60d9a..c60a9f7bc 100644 --- a/include/configs/PCI5441.h +++ b/include/configs/PCI5441.h @@ -92,7 +92,8 @@  /*------------------------------------------------------------------------   * CONSOLE   *----------------------------------------------------------------------*/ -#if defined(CONFIG_CONSOLE_JTAG) +#define CONFIG_ALTERA_UART		1	/* Use altera uart */ +#if defined(CONFIG_ALTERA_JTAG_UART)  #define CONFIG_SYS_NIOS_CONSOLE	0x00920820	/* JTAG UART base addr	*/  #else  #define CONFIG_SYS_NIOS_CONSOLE	0x009208a0	/* UART base addr	*/ @@ -113,14 +114,16 @@   * TIMEBASE --   *   * The high res timer defaults to 1 msec. Since it includes the period - * registers, we can slow it down to 10 msec using TMRCNT. If the default - * period is acceptable, TMRCNT can be left undefined. + * registers, the interrupt frequency can be reduced using TMRCNT. + * If the default period is acceptable, TMRCNT can be left undefined. + * TMRMS represents the desired mecs per tick (msecs per interrupt).   *----------------------------------------------------------------------*/ +#define CONFIG_SYS_HZ			1000	/* Always 1000 */  #define CONFIG_SYS_NIOS_TMRBASE	0x00920860	/* Tick timer base addr	*/ -#define CONFIG_SYS_NIOS_TMRIRQ		3		/* Timer IRQ num	*/ -#define CONFIG_SYS_NIOS_TMRMS		10		/* 10 msec per tick	*/ -#define CONFIG_SYS_NIOS_TMRCNT	(CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000)) -#define	CONFIG_SYS_HZ		(CONFIG_SYS_CLK_FREQ/(CONFIG_SYS_NIOS_TMRCNT + 1)) +#define CONFIG_SYS_NIOS_TMRIRQ		3	/* Timer IRQ num */ +#define CONFIG_SYS_NIOS_TMRMS		10	/* Desired period (msec)*/ +#define CONFIG_SYS_NIOS_TMRCNT \ +		(CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000))  /* diff --git a/include/configs/PIP405.h b/include/configs/PIP405.h index 962b29e95..3e57c0b92 100644 --- a/include/configs/PIP405.h +++ b/include/configs/PIP405.h @@ -86,6 +86,7 @@   * The Atmel EEPROM uses 16Bit addressing.   ***************************************************************/  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		50000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/PK1C20.h b/include/configs/PK1C20.h index cf6f7a9e8..874c20b93 100644 --- a/include/configs/PK1C20.h +++ b/include/configs/PK1C20.h @@ -94,7 +94,8 @@  /*------------------------------------------------------------------------   * CONSOLE   *----------------------------------------------------------------------*/ -#if defined(CONFIG_CONSOLE_JTAG) +#define CONFIG_ALTERA_UART		1	/* Use altera uart */ +#if defined(CONFIG_ALTERA_JTAG_UART)  #define CONFIG_SYS_NIOS_CONSOLE	0x021208b0	/* JTAG UART base addr	*/  #else  #define CONFIG_SYS_NIOS_CONSOLE	0x02120840	/* UART base addr	*/ @@ -123,14 +124,16 @@   * TIMEBASE --   *   * The high res timer defaults to 1 msec. Since it includes the period - * registers, we can slow it down to 10 msec using TMRCNT. If the default - * period is acceptable, TMRCNT can be left undefined. + * registers, the interrupt frequency can be reduced using TMRCNT. + * If the default period is acceptable, TMRCNT can be left undefined. + * TMRMS represents the desired mecs per tick (msecs per interrupt).   *----------------------------------------------------------------------*/ +#define CONFIG_SYS_HZ			1000	/* Always 1000 */  #define CONFIG_SYS_NIOS_TMRBASE	0x02120820	/* Tick timer base addr */ -#define CONFIG_SYS_NIOS_TMRIRQ		3		/* Timer IRQ num	*/ -#define CONFIG_SYS_NIOS_TMRMS		10		/* 10 msec per tick	*/ -#define CONFIG_SYS_NIOS_TMRCNT (CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000)) -#define CONFIG_SYS_HZ		(CONFIG_SYS_CLK_FREQ/(CONFIG_SYS_NIOS_TMRCNT + 1)) +#define CONFIG_SYS_NIOS_TMRIRQ		3	/* Timer IRQ num */ +#define CONFIG_SYS_NIOS_TMRMS		10	/* Desired period */ +#define CONFIG_SYS_NIOS_TMRCNT \ +		(CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000))  /*------------------------------------------------------------------------   * STATUS LED -- Provides a simple blinking led. For Nios2 each board diff --git a/include/configs/PLU405.h b/include/configs/PLU405.h index 3d59454eb..f917eb5c2 100644 --- a/include/configs/PLU405.h +++ b/include/configs/PLU405.h @@ -278,6 +278,7 @@   * I2C EEPROM (24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/PMC405.h b/include/configs/PMC405.h index 87ea7b6d4..00a12fb83 100644 --- a/include/configs/PMC405.h +++ b/include/configs/PMC405.h @@ -235,6 +235,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000 /* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/PMC405DE.h b/include/configs/PMC405DE.h index 7198632c3..2c048dd0d 100644 --- a/include/configs/PMC405DE.h +++ b/include/configs/PMC405DE.h @@ -215,6 +215,7 @@   * I2C EEPROM (24W16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000 /* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/PMC440.h b/include/configs/PMC440.h index 89799af3f..c2fb56c6f 100644 --- a/include/configs/PMC440.h +++ b/include/configs/PMC440.h @@ -226,6 +226,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1	/* I2C with hardware support    */  #undef	CONFIG_SOFT_I2C		/* I2C bit-banged               */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address  */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/PPChameleonEVB.h b/include/configs/PPChameleonEVB.h index 8e9d92872..44f03dc39 100644 --- a/include/configs/PPChameleonEVB.h +++ b/include/configs/PPChameleonEVB.h @@ -414,6 +414,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/VOH405.h b/include/configs/VOH405.h index 38a1d0dec..9c91fccb1 100644 --- a/include/configs/VOH405.h +++ b/include/configs/VOH405.h @@ -277,6 +277,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/VOM405.h b/include/configs/VOM405.h index 4717869dd..871e4c339 100644 --- a/include/configs/VOM405.h +++ b/include/configs/VOM405.h @@ -203,6 +203,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/W7OLMC.h b/include/configs/W7OLMC.h index c0179150c..f06bfe552 100644 --- a/include/configs/W7OLMC.h +++ b/include/configs/W7OLMC.h @@ -273,6 +273,7 @@   * I2C EEPROM (CAT24WC08) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/W7OLMG.h b/include/configs/W7OLMG.h index 1d4ad13ed..be8c9f82e 100644 --- a/include/configs/W7OLMG.h +++ b/include/configs/W7OLMG.h @@ -280,6 +280,7 @@   * I2C EEPROM (ATMEL 24C04N)   */  #define CONFIG_HARD_I2C		1		/* Hardware assisted I2C	*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/WUH405.h b/include/configs/WUH405.h index 5c281a1a6..be9ac6261 100644 --- a/include/configs/WUH405.h +++ b/include/configs/WUH405.h @@ -241,6 +241,7 @@   * I2C EEPROM (CAT24WC16) for environment   */  #define CONFIG_HARD_I2C			/* I2c with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/XPEDITE1000.h b/include/configs/XPEDITE1000.h index 658e9473b..cf39aeaaf 100644 --- a/include/configs/XPEDITE1000.h +++ b/include/configs/XPEDITE1000.h @@ -141,6 +141,7 @@ extern void out32(unsigned int, unsigned long);   * I2C   */  #define CONFIG_HARD_I2C			1	/* I2C with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7f  #define CONFIG_I2C_MULTI_BUS diff --git a/include/configs/alpr.h b/include/configs/alpr.h index 0fed9ad68..f2392f648 100644 --- a/include/configs/alpr.h +++ b/include/configs/alpr.h @@ -118,6 +118,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES	{0x69}	/* Don't probe these addrs	*/ diff --git a/include/configs/amcc-common.h b/include/configs/amcc-common.h index 8cd97b86d..13a941ef6 100644 --- a/include/configs/amcc-common.h +++ b/include/configs/amcc-common.h @@ -40,6 +40,7 @@   * I2C   */  #define CONFIG_HARD_I2C			/* I2C with hardware support	*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SLAVE		0x7F  /* diff --git a/include/configs/csb272.h b/include/configs/csb272.h index aed6f50f9..9ded33066 100644 --- a/include/configs/csb272.h +++ b/include/configs/csb272.h @@ -171,6 +171,7 @@   *   */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed			*/  #define CONFIG_SYS_I2C_SLAVE		0x7F	/* I2C slave address		*/ diff --git a/include/configs/csb472.h b/include/configs/csb472.h index 24b961f3e..71eb083e3 100644 --- a/include/configs/csb472.h +++ b/include/configs/csb472.h @@ -170,6 +170,7 @@   *   */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed			*/  #define CONFIG_SYS_I2C_SLAVE		0x7F	/* I2C slave address		*/ diff --git a/include/configs/korat.h b/include/configs/korat.h index 026dd0854..f95df684e 100644 --- a/include/configs/korat.h +++ b/include/configs/korat.h @@ -153,6 +153,7 @@   */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/lwmon5.h b/include/configs/lwmon5.h index 011dd5c81..6461124e5 100644 --- a/include/configs/lwmon5.h +++ b/include/configs/lwmon5.h @@ -258,6 +258,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1		/* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C				/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/meesc.h b/include/configs/meesc.h index d002b9751..e085f4a47 100644 --- a/include/configs/meesc.h +++ b/include/configs/meesc.h @@ -82,7 +82,6 @@   */  #include <config_cmd_default.h>  #undef CONFIG_CMD_BDI -#undef CONFIG_CMD_AUTOSCRIPT  #undef CONFIG_CMD_FPGA  #undef CONFIG_CMD_LOADS  #undef CONFIG_CMD_IMLS diff --git a/include/configs/netstal-common.h b/include/configs/netstal-common.h index 4bed7ae26..cb7efe7ab 100644 --- a/include/configs/netstal-common.h +++ b/include/configs/netstal-common.h @@ -42,6 +42,7 @@   * I2C   */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support */ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/otc570.h b/include/configs/otc570.h index 4fde012c8..fb0f576f4 100644 --- a/include/configs/otc570.h +++ b/include/configs/otc570.h @@ -131,7 +131,6 @@   * Command line configuration.   */  #include <config_cmd_default.h> -#undef CONFIG_CMD_AUTOSCRIPT  #undef CONFIG_CMD_FPGA  #undef CONFIG_CMD_LOADS  #undef CONFIG_CMD_IMLS diff --git a/include/configs/p3p440.h b/include/configs/p3p440.h index 729ca6ac7..d6b92070a 100644 --- a/include/configs/p3p440.h +++ b/include/configs/p3p440.h @@ -92,6 +92,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES	{0x69}	/* Don't probe these addrs	*/ diff --git a/include/configs/pcs440ep.h b/include/configs/pcs440ep.h index 000ae5cd7..1f744b875 100644 --- a/include/configs/pcs440ep.h +++ b/include/configs/pcs440ep.h @@ -138,6 +138,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1	    /* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C			    /* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/quad100hd.h b/include/configs/quad100hd.h index b08dcd42d..403837e14 100644 --- a/include/configs/quad100hd.h +++ b/include/configs/quad100hd.h @@ -150,6 +150,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1		/* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C				/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/sbc405.h b/include/configs/sbc405.h index 242f42fdc..429b11c19 100644 --- a/include/configs/sbc405.h +++ b/include/configs/sbc405.h @@ -166,6 +166,7 @@  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/  #undef  CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/sc3.h b/include/configs/sc3.h index a5eca3989..d00f2480c 100644 --- a/include/configs/sc3.h +++ b/include/configs/sc3.h @@ -251,6 +251,7 @@   */  #define  CONFIG_HARD_I2C		/* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define I2C_INIT  #define I2C_ACTIVE 0 diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h index a8ba0528b..09bce6d0f 100644 --- a/include/configs/smdkc100.h +++ b/include/configs/smdkc100.h @@ -83,7 +83,6 @@  #undef CONFIG_CMD_FLASH  #undef CONFIG_CMD_IMLS  #undef CONFIG_CMD_NAND -#undef CONFIG_CMD_NET  #define CONFIG_CMD_CACHE  #define CONFIG_CMD_REGINFO @@ -235,4 +234,15 @@  #define CONFIG_DOS_PARTITION		1 +/* + * Ethernet Contoller driver + */ +#ifdef CONFIG_CMD_NET +#define CONFIG_NET_MULTI +#define CONFIG_SMC911X         1       /* we have a SMC9115 on-board   */ +#define CONFIG_SMC911X_16_BIT  1       /* SMC911X_16_BIT Mode          */ +#define CONFIG_SMC911X_BASE    0x98800300      /* SMC911X Drive Base   */ +#define CONFIG_ENV_SROM_BANK   3       /* Select SROM Bank-3 for Ethernet*/ +#endif /* CONFIG_CMD_NET */ +  #endif	/* __CONFIG_H */ diff --git a/include/configs/zeus.h b/include/configs/zeus.h index 1a77c7196..3b2aede4f 100644 --- a/include/configs/zeus.h +++ b/include/configs/zeus.h @@ -167,6 +167,7 @@   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1		/* I2C with hardware support	*/  #undef	CONFIG_SOFT_I2C				/* I2C bit-banged		*/ +#define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/fdt_support.h b/include/fdt_support.h index a3d5f8cbf..9a453af34 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -82,6 +82,7 @@ int fdt_resize(void *blob);  int fdt_fixup_nor_flash_size(void *blob, int cs, u32 size);  void fdt_fixup_mtdparts(void *fdt, void *node_info, int node_info_size); +void fdt_del_node_and_alias(void *blob, const char *alias);  #endif /* ifdef CONFIG_OF_LIBFDT */  #endif /* ifndef __FDT_SUPPORT_H */ diff --git a/include/fsl_esdhc.h b/include/fsl_esdhc.h index 01b7dec18..f9ae15ad4 100644 --- a/include/fsl_esdhc.h +++ b/include/fsl_esdhc.h @@ -2,7 +2,7 @@   * FSL SD/MMC Defines   *-------------------------------------------------------------------   * - * Copyright 2007-2008, Freescale Semiconductor, Inc + * Copyright 2007-2008,2010 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 @@ -39,6 +39,7 @@  #define SYSCTL_PEREN		0x00000004  #define SYSCTL_HCKEN		0x00000002  #define SYSCTL_IPGEN		0x00000001 +#define SYSCTL_RSTA		0x01000000  #define IRQSTAT			0x0002e030  #define IRQSTAT_DMAE		(0x10000000) @@ -132,6 +133,8 @@  #define WML		0x2e044  #define WML_WRITE	0x00010000 +#define WML_RD_WML_MASK	0xff +#define WML_WR_WML_MASK	0xff0000  #define BLKATTR		0x2e004  #define BLKATTR_CNT(x)	((x & 0xffff) << 16) @@ -148,7 +151,6 @@  struct fsl_esdhc_cfg {  	u32	esdhc_base;  	u32	no_snoop; -	u32	clk_enable;  };  /* Select the correct accessors depending on endianess */ diff --git a/include/linux/stat.h b/include/linux/stat.h index 2ce1c25ac..cef636959 100644 --- a/include/linux/stat.h +++ b/include/linux/stat.h @@ -68,7 +68,7 @@ struct stat {  #endif	/* __PPC__ */  #if defined (__ARM__) || defined (__I386__) || defined (__M68K__) || defined (__bfin__) ||\ -	defined (__microblaze__) +	defined (__microblaze__) || defined (__nios2__)  struct stat {  	unsigned short st_dev;  |