log is now : cfi_flash cfi_flash0: found cfi flash at 10000000, size 16777216 Signed-off-by: Eric Bénard <eric@xxxxxxxxxx> --- arch/arm/boards/sama5d3xek/init.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/arch/arm/boards/sama5d3xek/init.c b/arch/arm/boards/sama5d3xek/init.c index ff62550..f7dfea0 100644 --- a/arch/arm/boards/sama5d3xek/init.c +++ b/arch/arm/boards/sama5d3xek/init.c @@ -118,6 +118,40 @@ static void ek_add_device_nand(void) static void ek_add_device_nand(void) {} #endif +#if defined(CONFIG_DRIVER_CFI) +static struct sama5_smc_config __initdata cm_nor_smc_config = { + .ncs_read_setup = 10, + .nrd_setup = 10, + .ncs_write_setup = 10, + .nwe_setup = 10, + + .ncs_read_pulse = 11, + .nrd_pulse = 11, + .ncs_write_pulse = 11, + .nwe_pulse = 11, + + .read_cycle = 22, + .write_cycle = 22, + + .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_DBW_16, + .tdf_cycles = 6, +}; + +static void ek_add_device_norcfi(void) +{ + struct clk *clk = clk_get(NULL, "smc_clk"); + + clk_enable(clk); + + /* configure chip-select 0 (NOR) */ + sama5_smc_configure(0, 0, &cm_nor_smc_config); + + add_cfi_flash_device(0, AT91_CHIPSELECT_0, 256 * 1024 * 1024, 0); +} +#else +static void ek_add_device_norcfi(void) {} +#endif + #if defined(CONFIG_DRIVER_NET_MACB) static struct macb_platform_data gmac_pdata = { .phy_interface = PHY_INTERFACE_MODE_RGMII, @@ -413,6 +447,7 @@ static int at91sama5d3xek_devices_init(void) ek_add_device_w1(); ek_add_device_hdmi(); ek_add_device_nand(); + ek_add_device_norcfi(); ek_add_led(); ek_add_device_eth(); ek_add_device_spi(); -- 1.8.3.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox