memory: atmel-ebi: add Atmel EBI (External Bus Interface) driver
The EBI is used to access peripherals like NAND, SRAM, NOR etc. Add this driver to probe the nand flash controller. This is a dummy driver and not yet a complete device driver for EBI. Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com>
This commit is contained in:
parent
de32a2a32a
commit
68ddf18dc3
4 changed files with 46 additions and 0 deletions
|
@ -409,6 +409,7 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-atmel.git
|
||||||
F: arch/arm/mach-at91/
|
F: arch/arm/mach-at91/
|
||||||
F: board/atmel/
|
F: board/atmel/
|
||||||
F: drivers/cpu/at91_cpu.c
|
F: drivers/cpu/at91_cpu.c
|
||||||
|
F: drivers/memory/atmel-ebi.c
|
||||||
F: drivers/misc/microchip_flexcom.c
|
F: drivers/misc/microchip_flexcom.c
|
||||||
F: drivers/timer/atmel_tcb_timer.c
|
F: drivers/timer/atmel_tcb_timer.c
|
||||||
F: include/dt-bindings/mfd/atmel-flexcom.h
|
F: include/dt-bindings/mfd/atmel-flexcom.h
|
||||||
|
|
|
@ -13,6 +13,13 @@ config MEMORY
|
||||||
SRAM, Ethernet adapters, FPGAs, etc.
|
SRAM, Ethernet adapters, FPGAs, etc.
|
||||||
For now this uclass has no methods yet.
|
For now this uclass has no methods yet.
|
||||||
|
|
||||||
|
config ATMEL_EBI
|
||||||
|
bool "Support for Atmel EBI"
|
||||||
|
help
|
||||||
|
Driver for Atmel EBI controller. This is a dummy
|
||||||
|
driver. Doesn't provide an access to EBI controller. Select
|
||||||
|
this option to enable the NAND flash controller driver
|
||||||
|
|
||||||
config SANDBOX_MEMORY
|
config SANDBOX_MEMORY
|
||||||
bool "Enable Sandbox Memory Controller driver"
|
bool "Enable Sandbox Memory Controller driver"
|
||||||
depends on SANDBOX && MEMORY
|
depends on SANDBOX && MEMORY
|
||||||
|
|
|
@ -2,5 +2,6 @@
|
||||||
obj-$(CONFIG_MEMORY) += memory-uclass.o
|
obj-$(CONFIG_MEMORY) += memory-uclass.o
|
||||||
obj-$(CONFIG_SANDBOX_MEMORY) += memory-sandbox.o
|
obj-$(CONFIG_SANDBOX_MEMORY) += memory-sandbox.o
|
||||||
obj-$(CONFIG_STM32_FMC2_EBI) += stm32-fmc2-ebi.o
|
obj-$(CONFIG_STM32_FMC2_EBI) += stm32-fmc2-ebi.o
|
||||||
|
obj-$(CONFIG_ATMEL_EBI) += atmel_ebi.o
|
||||||
obj-$(CONFIG_TI_AEMIF) += ti-aemif.o
|
obj-$(CONFIG_TI_AEMIF) += ti-aemif.o
|
||||||
obj-$(CONFIG_TI_GPMC) += ti-gpmc.o
|
obj-$(CONFIG_TI_GPMC) += ti-gpmc.o
|
||||||
|
|
37
drivers/memory/atmel_ebi.c
Normal file
37
drivers/memory/atmel_ebi.c
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <dm/device.h>
|
||||||
|
#include <dm/read.h>
|
||||||
|
#include <dm/uclass.h>
|
||||||
|
#include <fdtdec.h>
|
||||||
|
|
||||||
|
static int atmel_ebi_probe(struct udevice *dev)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
struct udevice *ndev;
|
||||||
|
|
||||||
|
ret = uclass_get_device_by_driver(UCLASS_MTD,
|
||||||
|
DM_DRIVER_GET(atmel_nand_controller),
|
||||||
|
&ndev);
|
||||||
|
if (ret)
|
||||||
|
printf("Failed to probe nand driver (err = %d)\n", ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct udevice_id atmel_ebi_match[] = {
|
||||||
|
{.compatible = "microchip,sam9x60-ebi"},
|
||||||
|
{.compatible = "atmel,sama5d3-ebi"},
|
||||||
|
{ /* Sentinel */ }
|
||||||
|
};
|
||||||
|
|
||||||
|
U_BOOT_DRIVER(atmel_ebi) = {
|
||||||
|
.name = "atmel_ebi",
|
||||||
|
.id = UCLASS_NOP,
|
||||||
|
.of_match = atmel_ebi_match,
|
||||||
|
.probe = atmel_ebi_probe,
|
||||||
|
.bind = dm_scan_fdt_dev,
|
||||||
|
};
|
Loading…
Reference in a new issue