dm: memory: Introduce new uclass

Introduce UCLASS_MEMORY for future Memory Controller
device drivers.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Roger Quadros 2022-10-20 16:30:46 +03:00 committed by Tom Rini
parent 27e6ebc5ea
commit 2c120375e9
8 changed files with 77 additions and 0 deletions

View file

@ -932,6 +932,10 @@
};
};
memory-controller {
compatible = "sandbox,memory";
};
misc-test {
#address-cells = <1>;
#size-cells = <1>;

View file

@ -4,6 +4,23 @@
menu "Memory Controller drivers"
config MEMORY
bool "Enable Driver Model for Memory Controller drivers"
depends on DM
help
Enable driver model for Memory Controller devices.
These devices provide Memory bus interface to various devices like
SRAM, Ethernet adapters, FPGAs, etc.
For now this uclass has no methods yet.
config SANDBOX_MEMORY
bool "Enable Sandbox Memory Controller driver"
depends on SANDBOX && MEMORY
help
This is a driver model based Memory Controller driver for sandbox.
Currently it is a stub only, as there are no usable uclass methods
yet.
config STM32_FMC2_EBI
bool "Support for FMC2 External Bus Interface on STM32MP SoCs"
depends on ARCH_STM32MP

View file

@ -1,3 +1,5 @@
obj-$(CONFIG_MEMORY) += memory-uclass.o
obj-$(CONFIG_SANDBOX_MEMORY) += memory-sandbox.o
obj-$(CONFIG_STM32_FMC2_EBI) += stm32-fmc2-ebi.o
obj-$(CONFIG_TI_AEMIF) += ti-aemif.o

View file

@ -0,0 +1,18 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2022
* Texas Instruments Incorporated, <www.ti.com>
*/
#include <dm.h>
static const struct udevice_id sandbox_memory_match[] = {
{ .compatible = "sandbox,memory" },
{ /* sentinel */ }
};
U_BOOT_DRIVER(sandbox_memory) = {
.name = "sandbox_memory",
.id = UCLASS_MEMORY,
.of_match = sandbox_memory_match,
};

View file

@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2022
* Texas Instruments Incorporated, <www.ti.com>
*/
#include <dm.h>
UCLASS_DRIVER(memory) = {
.name = "memory",
.id = UCLASS_MEMORY,
.post_bind = dm_scan_fdt_dev,
};

View file

@ -77,6 +77,7 @@ enum uclass_id {
UCLASS_MASS_STORAGE, /* Mass storage device */
UCLASS_MDIO, /* MDIO bus */
UCLASS_MDIO_MUX, /* MDIO MUX/switch */
UCLASS_MEMORY, /* Memory Controller device */
UCLASS_MISC, /* Miscellaneous device */
UCLASS_MMC, /* SD / MMC card or chip */
UCLASS_MOD_EXP, /* RSA Mod Exp device */

View file

@ -57,6 +57,7 @@ obj-$(CONFIG_LED) += led.o
obj-$(CONFIG_DM_MAILBOX) += mailbox.o
obj-$(CONFIG_DM_MDIO) += mdio.o
obj-$(CONFIG_DM_MDIO_MUX) += mdio_mux.o
obj-$(CONFIG_MEMORY) += memory.o
obj-$(CONFIG_MISC) += misc.o
obj-$(CONFIG_DM_MMC) += mmc.o
obj-$(CONFIG_CMD_MUX) += mux-cmd.o

21
test/dm/memory.c Normal file
View file

@ -0,0 +1,21 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2022
* Texas Instruments Incorporated, <www.ti.com>
*/
#include <dm.h>
#include <dm/test.h>
#include <test/test.h>
#include <test/ut.h>
static int dm_test_memory(struct unit_test_state *uts)
{
struct udevice *dev;
ut_assertok(uclass_first_device_err(UCLASS_MEMORY, &dev));
return 0;
}
DM_TEST(dm_test_memory, UT_TESTF_SCAN_FDT);