- Jun 03, 2008
-
-
Haavard Skinnemoen authored
This patch gets rid of the spi_chipsel table and adds a handful of new functions that makes the SPI layer cleaner and more flexible. Instead of the spi_chipsel table, each board that wants to use SPI gets to implement three hooks: * spi_cs_activate(): Activates the chipselect for a given slave * spi_cs_deactivate(): Deactivates the chipselect for a given slave * spi_cs_is_valid(): Determines if the given bus/chipselect combination can be activated. Not all drivers may need those extra functions however. If that's the case, the board code may just leave them out (assuming they know what the driver needs) or rely on the linker to strip them out (assuming --gc-sections is being used.) To set up communication parameters for a given slave, the driver needs to call spi_setup_slave(). This returns a pointer to an opaque spi_slave struct which must be passed as a parameter to subsequent SPI calls. This struct can be freed by calling spi_free_slave(), but most driver probably don't want to do this. Before starting one or more SPI transfers, the driver must call spi_claim_bus() to gain exclusive access to the SPI bus and initialize the hardware. When all transfers are done, the driver must call spi_release_bus() to make the bus available to others, and possibly shut down the SPI controller hardware. spi_xfer() behaves mostly the same as before, but it now takes a spi_slave parameter instead of a spi_chipsel function pointer. It also got a new parameter, flags, which is used to specify chip select behaviour. This may be extended with other flags in the future. This patch has been build-tested on all powerpc and arm boards involved. I have not tested NIOS since I don't have a toolchain for it installed, so I expect some breakage there even though I've tried fixing up everything I could find by visual inspection. I have run-time tested this on AVR32 ATNGW100 using the atmel_spi and DataFlash drivers posted as a follow-up. I'd like some help testing other boards that use the existing SPI API. But most of all, I'd like some comments on the new API. Is this stuff usable for everyone? If not, why? Changed in v4: - Build fixes for various boards, drivers and commands - Provide common struct spi_slave definition that can be extended by drivers - Pass a struct spi_slave * to spi_cs_activate and spi_cs_deactivate - Make default bus and mode build-time configurable - Override default SPI bus ID and mode on mx32ads and imx31_litekit. Changed in v3: - Add opaque struct spi_slave for controller-specific data associated with a slave. - Add spi_claim_bus() and spi_release_bus() - Add spi_free_slave() - spi_setup() is now called spi_setup_slave() and returns a struct spi_slave - soft_spi now supports four SPI modes (CPOL|CPHA) - Add bus parameter to spi_setup_slave() - Convert the new i.MX32 SPI driver - Convert the new MC13783 RTC driver Changed in v2: - Convert the mpc8xxx_spi driver and the mpc8349emds board to the new API. Signed-off-by:
Haavard Skinnemoen <hskinnemoen@atmel.com> Tested-by:
Guennadi Liakhovetski <lg@denx.de>
-
Haavard Skinnemoen authored
AVR32 and AT91SAM9 both have their own identical definitions of container_of() taken from the Linux kernel. Move it to common.h so that all architectures can use it. container_of() is already used by some drivers, and will be used extensively by the new and improved SPI API. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
Spotted by Dean Capindale. Systems that support open-drain GPIO properly are allowed provide an empty I2C_TRISTATE define. However, this means that we need to be careful not to drive SDA low when the slave is expected to respond. This patch adds a missing I2C_SDA(1) to read_byte() required to tristate the SDA line on systems that support open-drain GPIO. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Kumar Gala authored
* The cfi_flash.c memset fix actual allows the board to boot so there is a bit more going on here than just resolving warnings associated with uninitialized variables. * include/asm/bitops.h:302: warning: '__swab32p' is static but used in inline function 'ext2_find_next_zero_bit' which is not static Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Becky Bruce authored
Currently, END_OF_RAM is used by the trap code to determine if we should attempt to access the stack pointer or not. However, on systems with a lot of RAM, only a subset of the RAM is guaranteed to be mapped in and accessible. Change END_OF_RAM to use get_effective_memsize() instead of using the raw ram size out of the bd. Signed-off-by:
Becky Bruce <becky.bruce@freescale.com>
-
Kumar Gala authored
If common.h isn't first we can get CONFIG_ options defined in the board config file ignored. This can cause an issue if any of those config options impact the size of types of data structures (eg CONFIG_PHYS_64BIT). Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Marian Balakowicz authored
Add logbuffer to reserved LMB areas to prevent initrd allocation from overlaping with it. Make sure to use correct logbuffer base address. Signed-off-by:
Marian Balakowicz <m8@semihalf.com>
-
Sascha Laue authored
-
Becky Bruce authored
Signed-off-by:
Becky Bruce <becky.bruce@freescale.com>
-
Becky Bruce authored
This function prints the values of all the BAT register pairs - I needed this for debug earlier this week; adding it to lib_ppc so others can use it (and add it to reginfo commands if so desired). Signed-off-by:
Becky Bruce <becky.bruce@freescale.com>
-
Becky Bruce authored
Currently, this code only deals with BATs 0-3, which makes it useless on systems that support BATs 4-7. Add the support for these registers. Signed-off-by:
Becky Bruce <Becky.bruce@freescale.com>
-
Becky Bruce authored
Change all code that conditionally operates on high bat registers (that is, BATs 4-7) to look at CONFIG_HIGH_BATS instead of the myriad ways this is done now. Define the option for every config for which high bats are supported (and enabled by early boot, on parts where they're not always enabled) Signed-off-by:
Becky Bruce <becky.bruce@freescale.com>
-
- Jun 02, 2008
-
-
Wolfgang Denk authored
-
Wolfgang Denk authored
-
Wolfgang Denk authored
-
Wolfgang Denk authored
-
Wolfgang Denk authored
-
- May 29, 2008
-
-
Jason McMullan authored
All other u-boot architectures have an include/asm/errno.h, so this change adds it to the mips include/asm-mips headers also. Stolen from Linux 2.6.25. Signed-off-by:
Jason McMullan <mcmullan@netapp.com>
-
Shinya Kuribayashi authored
Signed-off-by:
Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
-
Shinya Kuribayashi authored
Signed-off-by:
Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
-
Shinya Kuribayashi authored
No functional changes. Signed-off-by:
Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
-
Jason McMullan authored
The mips architecture currently does not call 'spi_init()' in the generic board initialization routine is CONFIG_CMD_SPI is defined. This patch rectifies that problem. Signed-off-by:
Jason McMullan <mcmullan@netapp.com> Signed-off-by:
Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
-
Jason McMullan authored
This patch adds the standard 'nand_init()' call to the mips generic 'board_init_r()' call, bringing MIPS in line with the other architectures. Signed-off-by:
Jason McMullan <mcmullan@netapp.com> Signed-off-by:
Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
-
- May 28, 2008
-
-
Scott Wood authored
Likewise with onenand_init(). Signed-off-by:
Scott Wood <scottwood@freescale.com>
-
Scott Wood authored
Don't assume types are provided by previously included headers. Signed-off-by:
Scott Wood <scottwood@freescale.com>
-
Dirk Behme authored
For NAND erase sizes smaller than one NAND erase block, erase percentage output becomes grater than 100% e.g. -- cut -- > nand info Device 0: NAND 64MiB 1,8V 8-bit, sector size 16 KiB > nand erase 0x100000 0x2000 NAND erase: device 0 offset 0x100000, size 0x2000 Erasing at 0x100000 -- 200% complete. OK > -- cut -- Correct this and give user a warning that more is erased than specified: -- cut -- > nand erase 0x100000 0x2000 NAND erase: device 0 offset 0x100000, size 0x2000 Warning: Erase size 0x00002000 smaller than one erase block 0x00004000 Erasing 0x00004000 instead Erasing at 0x100000 -- 100% complete. OK > -- cut -- Signed-off-by:
Dirk Behme <dirk.behme@gmail.com>
-
Stelian Pop authored
The nand_info array is declared as extern in several .c files. Those days, nand.h contains a reference to the array, so there is no need to declare it elsewhere. Signed-off-by:
Stelian Pop <stelian@popies.net> Signed-off-by:
Scott Wood <scottwood@freescale.com>
-
Scott Wood authored
This allows the header to be included regardless of whether a board's config file provides NAND-related defininitions. Signed-off-by:
Scott Wood <scottwood@freescale.com>
-
- May 27, 2008
-
-
Haavard Skinnemoen authored
If the specified delay is very short, the cycle counter may go past the "end" time we are waiting for before we get around to reading it. Fix it by checking the different between the cycle count "now" and the cycle count at the beginning. This will work as long as the delay measured in number of cycles is below 2^31. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
Remove #ifdef CONFIG_MMC from the source file and use conditional compilation in the Makefile instead. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
Make sure we check for CRC errors when sending commands that use CRC checking. Reported-by:
Gururaja Hebbar K R <gururajakr@sanyo.co.in> Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
The warnings are harmless but annoying. Let's fix them. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
This cleans up the SDRAM initialization and related code a bit, and allows faster booting. * Add definitions for EBI and internal SRAM to asm/arch/memory-map.h * Remove memory test from sdram_init() and make caller responsible for verifying the SDRAM and determining its size. * Remove base_address member from struct sdram_config (was sdram_info) * Add data_bits member to struct sdram_config and kill CFG_SDRAM_16BIT * Add support for a common STK1000 hack: 16MB SDRAM instead of 8. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
Don't do a stack dump if the stack pointer is outside the memory area reserved for stack. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
Since the reset vector is always aligned to a very large boundary, we can save a couple of KB worth of alignment padding by placing the exception vectors at the same address. Deciding which one it is is easy: If we're handling an exception, the CPU is in Exception mode. If we're starting up after reset, the CPU is in Supervisor mode. So this adds a very minimal overhead to the reset path (only executed once) and the exception handling path (normally never executed at all.) Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
All C code is compiled with -ffunction-sections -fdata-sections. Assembly functions should get their own sections as well so that everything looks consistent. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
pm_init() was always more about clock initialization than anything else. Dealing with PLLs, clock gating and such is also inherently SoC-specific, so move it into a SoC-specific directory. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
This makes it easier to avoid compiling certain files later. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-
Haavard Skinnemoen authored
Rework the HMATRIX configuration interface so that it becomes easier to configure the HMATRIX for boards with special needs, and add new parts. The HMATRIX header file has been split into a general, chip-independent part with register definitions, etc. and a chip-specific part with SFR bitfield definitions and master/slave identifiers. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-