forked from Imagelibrary/rtems
bsp/lpc32xx: Add lpc32xx_select_nand_controller()
This commit is contained in:
@@ -136,6 +136,7 @@ libbsp_a_SOURCES += misc/nand-mlc-write-blocks.c
|
|||||||
libbsp_a_SOURCES += misc/restart.c
|
libbsp_a_SOURCES += misc/restart.c
|
||||||
libbsp_a_SOURCES += misc/system-clocks.c
|
libbsp_a_SOURCES += misc/system-clocks.c
|
||||||
libbsp_a_SOURCES += misc/timer.c
|
libbsp_a_SOURCES += misc/timer.c
|
||||||
|
libbsp_a_SOURCES += misc/nand-select.c
|
||||||
|
|
||||||
# SSP
|
# SSP
|
||||||
|
|
||||||
|
|||||||
@@ -138,6 +138,14 @@ uint32_t lpc32xx_arm_clk(void);
|
|||||||
|
|
||||||
uint32_t lpc32xx_dram_clk(void);
|
uint32_t lpc32xx_dram_clk(void);
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
LPC32XX_NAND_CONTROLLER_NONE,
|
||||||
|
LPC32XX_NAND_CONTROLLER_MLC,
|
||||||
|
LPC32XX_NAND_CONTROLLER_SLC
|
||||||
|
} lpc32xx_nand_controller;
|
||||||
|
|
||||||
|
void lpc32xx_select_nand_controller(lpc32xx_nand_controller nand_controller);
|
||||||
|
|
||||||
void bsp_restart(void *addr);
|
void bsp_restart(void *addr);
|
||||||
|
|
||||||
#define BSP_CONSOLE_UART_BASE LPC32XX_BASE_UART_5
|
#define BSP_CONSOLE_UART_BASE LPC32XX_BASE_UART_5
|
||||||
|
|||||||
44
c/src/lib/libbsp/arm/lpc32xx/misc/nand-select.c
Normal file
44
c/src/lib/libbsp/arm/lpc32xx/misc/nand-select.c
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
/**
|
||||||
|
* @file
|
||||||
|
*
|
||||||
|
* @ingroup lpc32xx
|
||||||
|
*
|
||||||
|
* @brief NAND controller selection.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
|
||||||
|
*
|
||||||
|
* embedded brains GmbH
|
||||||
|
* Obere Lagerstr. 30
|
||||||
|
* 82178 Puchheim
|
||||||
|
* Germany
|
||||||
|
* <rtems@embedded-brains.de>
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.rtems.com/license/LICENSE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <bsp.h>
|
||||||
|
#include <bsp/lpc32xx.h>
|
||||||
|
#include <bsp/nand-mlc.h>
|
||||||
|
|
||||||
|
void lpc32xx_select_nand_controller(lpc32xx_nand_controller nand_controller)
|
||||||
|
{
|
||||||
|
uint32_t flashclk_ctrl = LPC32XX_FLASHCLK_CTRL & ~(FLASHCLK_IRQ_MLC
|
||||||
|
| FLASHCLK_SELECT_SLC | FLASHCLK_MLC_CLK_ENABLE | FLASHCLK_SLC_CLK_ENABLE);
|
||||||
|
|
||||||
|
switch (nand_controller) {
|
||||||
|
case LPC32XX_NAND_CONTROLLER_MLC:
|
||||||
|
flashclk_ctrl |= FLASHCLK_IRQ_MLC | FLASHCLK_MLC_CLK_ENABLE;
|
||||||
|
break;
|
||||||
|
case LPC32XX_NAND_CONTROLLER_SLC:
|
||||||
|
flashclk_ctrl |= FLASHCLK_SELECT_SLC | FLASHCLK_SLC_CLK_ENABLE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
LPC32XX_FLASHCLK_CTRL = flashclk_ctrl;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user