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:
Balamanikandan Gunasundar 2022-10-25 16:21:04 +05:30 committed by Eugen Hristev
parent de32a2a32a
commit 68ddf18dc3
4 changed files with 46 additions and 0 deletions

View File

@ -409,6 +409,7 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-atmel.git
F: arch/arm/mach-at91/
F: board/atmel/
F: drivers/cpu/at91_cpu.c
F: drivers/memory/atmel-ebi.c
F: drivers/misc/microchip_flexcom.c
F: drivers/timer/atmel_tcb_timer.c
F: include/dt-bindings/mfd/atmel-flexcom.h

View File

@ -13,6 +13,13 @@ config MEMORY
SRAM, Ethernet adapters, FPGAs, etc.
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
bool "Enable Sandbox Memory Controller driver"
depends on SANDBOX && MEMORY

View File

@ -2,5 +2,6 @@
obj-$(CONFIG_MEMORY) += memory-uclass.o
obj-$(CONFIG_SANDBOX_MEMORY) += memory-sandbox.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_GPMC) += ti-gpmc.o

View 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,
};