aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/Kconfig9
-rw-r--r--drivers/misc/Makefile1
-rw-r--r--drivers/misc/altera_sysid.c12
-rw-r--r--drivers/misc/atsha204a-i2c.c6
-rw-r--r--drivers/misc/cros_ec.c2
-rw-r--r--drivers/misc/cros_ec_i2c.c4
-rw-r--r--drivers/misc/cros_ec_sandbox.c6
-rw-r--r--drivers/misc/fs_loader.c18
-rw-r--r--drivers/misc/gdsys_ioep.c2
-rw-r--r--drivers/misc/gdsys_rxaui_ctrl.c2
-rw-r--r--drivers/misc/gdsys_soc.c2
-rw-r--r--drivers/misc/i2c_eeprom.c16
-rw-r--r--drivers/misc/i2c_eeprom_emul.c20
-rw-r--r--drivers/misc/ihs_fpga.c2
-rw-r--r--drivers/misc/imx8/scu.c6
-rw-r--r--drivers/misc/irq_sandbox.c2
-rw-r--r--drivers/misc/k3_avs.c2
-rw-r--r--drivers/misc/microchip_flexcom.c10
-rw-r--r--drivers/misc/misc_sandbox.c2
-rw-r--r--drivers/misc/mpc83xx_serdes.c2
-rw-r--r--drivers/misc/p2sb-uclass.c30
-rw-r--r--drivers/misc/p2sb_emul.c18
-rw-r--r--drivers/misc/p2sb_sandbox.c2
-rw-r--r--drivers/misc/rockchip-efuse.c14
-rw-r--r--drivers/misc/rockchip-otp.c16
-rw-r--r--drivers/misc/sandbox_adder.c4
-rw-r--r--drivers/misc/sifive-otp.c14
-rw-r--r--drivers/misc/spltest_sandbox.c6
-rw-r--r--drivers/misc/stm32mp_fuse.c16
-rw-r--r--drivers/misc/swap_case.c16
-rw-r--r--drivers/misc/tegra186_bpmp.c2
-rw-r--r--drivers/misc/test_drv.c222
-rw-r--r--drivers/misc/vexpress_config.c2
33 files changed, 355 insertions, 133 deletions
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 29432ae7eb..7d2a299779 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -343,6 +343,15 @@ config TEGRA186_BPMP
can make requests to the BPMP. This driver is similar to an MFD
driver in the Linux kernel.
+config TEST_DRV
+ bool "Enable support for test drivers"
+ default y if SANDBOX
+ help
+ This enables drivers and uclasses that provides a way of testing the
+ operations of memory allocation and driver/uclass methods in driver
+ model. This should only be enabled for testing as it is not useful for
+ anything else.
+
config TWL4030_LED
bool "Enable TWL4030 LED controller"
help
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 947bd3a647..d737203704 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -67,6 +67,7 @@ obj-$(CONFIG_STM32_RCC) += stm32_rcc.o
obj-$(CONFIG_SYS_DPAA_QBMAN) += fsl_portals.o
obj-$(CONFIG_TEGRA186_BPMP) += tegra186_bpmp.o
obj-$(CONFIG_TEGRA_CAR) += tegra_car.o
+obj-$(CONFIG_TEST_DRV) += test_drv.o
obj-$(CONFIG_TWL4030_LED) += twl4030_led.o
obj-$(CONFIG_VEXPRESS_CONFIG) += vexpress_config.o
obj-$(CONFIG_WINBOND_W83627) += winbond_w83627.o
diff --git a/drivers/misc/altera_sysid.c b/drivers/misc/altera_sysid.c
index c6502650b7..878df12771 100644
--- a/drivers/misc/altera_sysid.c
+++ b/drivers/misc/altera_sysid.c
@@ -17,7 +17,7 @@ struct altera_sysid_regs {
u32 timestamp; /* Timestamp */
};
-struct altera_sysid_platdata {
+struct altera_sysid_plat {
struct altera_sysid_regs *regs;
};
@@ -59,7 +59,7 @@ U_BOOT_CMD(
static int altera_sysid_read(struct udevice *dev,
int offset, void *buf, int size)
{
- struct altera_sysid_platdata *plat = dev->platdata;
+ struct altera_sysid_plat *plat = dev_get_plat(dev);
struct altera_sysid_regs *const regs = plat->regs;
u32 *sysid = buf;
@@ -69,9 +69,9 @@ static int altera_sysid_read(struct udevice *dev,
return 0;
}
-static int altera_sysid_ofdata_to_platdata(struct udevice *dev)
+static int altera_sysid_of_to_plat(struct udevice *dev)
{
- struct altera_sysid_platdata *plat = dev_get_platdata(dev);
+ struct altera_sysid_plat *plat = dev_get_plat(dev);
plat->regs = map_physmem(dev_read_addr(dev),
sizeof(struct altera_sysid_regs),
@@ -93,7 +93,7 @@ U_BOOT_DRIVER(altera_sysid) = {
.name = "altera_sysid",
.id = UCLASS_MISC,
.of_match = altera_sysid_ids,
- .ofdata_to_platdata = altera_sysid_ofdata_to_platdata,
- .platdata_auto_alloc_size = sizeof(struct altera_sysid_platdata),
+ .of_to_plat = altera_sysid_of_to_plat,
+ .plat_auto = sizeof(struct altera_sysid_plat),
.ops = &altera_sysid_ops,
};
diff --git a/drivers/misc/atsha204a-i2c.c b/drivers/misc/atsha204a-i2c.c
index 422ea6f3e5..90f9cd246a 100644
--- a/drivers/misc/atsha204a-i2c.c
+++ b/drivers/misc/atsha204a-i2c.c
@@ -382,7 +382,7 @@ int atsha204a_get_random(struct udevice *dev, u8 *buffer, size_t max)
return 0;
}
-static int atsha204a_ofdata_to_platdata(struct udevice *dev)
+static int atsha204a_of_to_plat(struct udevice *dev)
{
fdt_addr_t *priv = dev_get_priv(dev);
fdt_addr_t addr;
@@ -406,6 +406,6 @@ U_BOOT_DRIVER(atsha204) = {
.name = "atsha204",
.id = UCLASS_MISC,
.of_match = atsha204a_ids,
- .ofdata_to_platdata = atsha204a_ofdata_to_platdata,
- .priv_auto_alloc_size = sizeof(fdt_addr_t),
+ .of_to_plat = atsha204a_of_to_plat,
+ .priv_auto = sizeof(fdt_addr_t),
};
diff --git a/drivers/misc/cros_ec.c b/drivers/misc/cros_ec.c
index 1b22f1883e..f03b7d55d6 100644
--- a/drivers/misc/cros_ec.c
+++ b/drivers/misc/cros_ec.c
@@ -1505,7 +1505,7 @@ int cros_ec_set_lid_shutdown_mask(struct udevice *dev, int enable)
UCLASS_DRIVER(cros_ec) = {
.id = UCLASS_CROS_EC,
.name = "cros-ec",
- .per_device_auto_alloc_size = sizeof(struct cros_ec_dev),
+ .per_device_auto = sizeof(struct cros_ec_dev),
.post_bind = dm_scan_fdt_dev,
.flags = DM_UC_FLAG_ALLOC_PRIV_DMA,
};
diff --git a/drivers/misc/cros_ec_i2c.c b/drivers/misc/cros_ec_i2c.c
index 664bd2b938..a1b78a3045 100644
--- a/drivers/misc/cros_ec_i2c.c
+++ b/drivers/misc/cros_ec_i2c.c
@@ -52,7 +52,7 @@ struct ec_host_response_i2c {
static int cros_ec_i2c_packet(struct udevice *udev, int out_bytes, int in_bytes)
{
struct cros_ec_dev *dev = dev_get_uclass_priv(udev);
- struct dm_i2c_chip *chip = dev_get_parent_platdata(udev);
+ struct dm_i2c_chip *chip = dev_get_parent_plat(udev);
struct ec_host_request_i2c *ec_request_i2c =
(struct ec_host_request_i2c *)dev->dout;
struct ec_host_response_i2c *ec_response_i2c =
@@ -112,7 +112,7 @@ static int cros_ec_i2c_command(struct udevice *udev, uint8_t cmd,
int dout_len, uint8_t **dinp, int din_len)
{
struct cros_ec_dev *dev = dev_get_uclass_priv(udev);
- struct dm_i2c_chip *chip = dev_get_parent_platdata(udev);
+ struct dm_i2c_chip *chip = dev_get_parent_plat(udev);
struct i2c_msg i2c_msg[2];
/* version8, cmd8, arglen8, out8[dout_len], csum8 */
int out_bytes = dout_len + 4;
diff --git a/drivers/misc/cros_ec_sandbox.c b/drivers/misc/cros_ec_sandbox.c
index d72db3eace..9fd6cc2086 100644
--- a/drivers/misc/cros_ec_sandbox.c
+++ b/drivers/misc/cros_ec_sandbox.c
@@ -520,8 +520,8 @@ void cros_ec_check_keyboard(struct udevice *dev)
int cros_ec_probe(struct udevice *dev)
{
- struct ec_state *ec = dev->priv;
- struct cros_ec_dev *cdev = dev->uclass_priv;
+ struct ec_state *ec = dev_get_priv(dev);
+ struct cros_ec_dev *cdev = dev_get_uclass_priv(dev);
struct udevice *keyb_dev;
ofnode node;
int err;
@@ -585,6 +585,6 @@ U_BOOT_DRIVER(google_cros_ec_sandbox) = {
.id = UCLASS_CROS_EC,
.of_match = cros_ec_ids,
.probe = cros_ec_probe,
- .priv_auto_alloc_size = sizeof(struct ec_state),
+ .priv_auto = sizeof(struct ec_state),
.ops = &cros_ec_ops,
};
diff --git a/drivers/misc/fs_loader.c b/drivers/misc/fs_loader.c
index 56406aa1dd..f460b1a64c 100644
--- a/drivers/misc/fs_loader.c
+++ b/drivers/misc/fs_loader.c
@@ -61,7 +61,7 @@ static int mount_ubifs(char *mtdpart, char *ubivol)
}
#endif
-static int select_fs_dev(struct device_platdata *plat)
+static int select_fs_dev(struct device_plat *plat)
{
int ret;
@@ -161,7 +161,7 @@ static int fw_get_filesystem_firmware(struct udevice *dev)
else
ret = -ENODEV;
} else {
- ret = select_fs_dev(dev->platdata);
+ ret = select_fs_dev(dev_get_plat(dev));
}
if (ret)
@@ -219,16 +219,16 @@ int request_firmware_into_buf(struct udevice *dev,
return ret;
}
-static int fs_loader_ofdata_to_platdata(struct udevice *dev)
+static int fs_loader_of_to_plat(struct udevice *dev)
{
u32 phandlepart[2];
ofnode fs_loader_node = dev_ofnode(dev);
if (ofnode_valid(fs_loader_node)) {
- struct device_platdata *plat;
+ struct device_plat *plat;
- plat = dev->platdata;
+ plat = dev_get_plat(dev);
if (!ofnode_read_u32_array(fs_loader_node,
"phandlepart",
phandlepart, 2)) {
@@ -250,7 +250,7 @@ static int fs_loader_probe(struct udevice *dev)
{
#if CONFIG_IS_ENABLED(DM) && CONFIG_IS_ENABLED(BLK)
int ret;
- struct device_platdata *plat = dev->platdata;
+ struct device_plat *plat = dev_get_plat(dev);
if (plat->phandlepart.phandle) {
ofnode node = ofnode_get_by_phandle(plat->phandlepart.phandle);
@@ -284,9 +284,9 @@ U_BOOT_DRIVER(fs_loader) = {
.id = UCLASS_FS_FIRMWARE_LOADER,
.of_match = fs_loader_ids,
.probe = fs_loader_probe,
- .ofdata_to_platdata = fs_loader_ofdata_to_platdata,
- .platdata_auto_alloc_size = sizeof(struct device_platdata),
- .priv_auto_alloc_size = sizeof(struct firmware),
+ .of_to_plat = fs_loader_of_to_plat,
+ .plat_auto = sizeof(struct device_plat),
+ .priv_auto = sizeof(struct firmware),
};
UCLASS_DRIVER(fs_loader) = {
diff --git a/drivers/misc/gdsys_ioep.c b/drivers/misc/gdsys_ioep.c
index 69e16a06a0..145cfa23c6 100644
--- a/drivers/misc/gdsys_ioep.c
+++ b/drivers/misc/gdsys_ioep.c
@@ -206,5 +206,5 @@ U_BOOT_DRIVER(gdsys_ioep) = {
.flags = DM_UC_FLAG_SEQ_ALIAS,
.of_match = gdsys_ioep_ids,
.probe = gdsys_ioep_probe,
- .priv_auto_alloc_size = sizeof(struct gdsys_ioep_priv),
+ .priv_auto = sizeof(struct gdsys_ioep_priv),
};
diff --git a/drivers/misc/gdsys_rxaui_ctrl.c b/drivers/misc/gdsys_rxaui_ctrl.c
index c56abce4d4..8f5cbe420f 100644
--- a/drivers/misc/gdsys_rxaui_ctrl.c
+++ b/drivers/misc/gdsys_rxaui_ctrl.c
@@ -77,5 +77,5 @@ U_BOOT_DRIVER(gdsys_rxaui_ctrl) = {
.ops = &gdsys_rxaui_ctrl_ops,
.of_match = gdsys_rxaui_ctrl_ids,
.probe = gdsys_rxaui_ctrl_probe,
- .priv_auto_alloc_size = sizeof(struct gdsys_rxaui_ctrl_priv),
+ .priv_auto = sizeof(struct gdsys_rxaui_ctrl_priv),
};
diff --git a/drivers/misc/gdsys_soc.c b/drivers/misc/gdsys_soc.c
index b4c721c6fe..27e7dc4832 100644
--- a/drivers/misc/gdsys_soc.c
+++ b/drivers/misc/gdsys_soc.c
@@ -71,5 +71,5 @@ U_BOOT_DRIVER(gdsys_soc_bus) = {
.id = UCLASS_SIMPLE_BUS,
.of_match = gdsys_soc_ids,
.probe = gdsys_soc_probe,
- .priv_auto_alloc_size = sizeof(struct gdsys_soc_priv),
+ .priv_auto = sizeof(struct gdsys_soc_priv),
};
diff --git a/drivers/misc/i2c_eeprom.c b/drivers/misc/i2c_eeprom.c
index 3651ba4871..5926c91a2e 100644
--- a/drivers/misc/i2c_eeprom.c
+++ b/drivers/misc/i2c_eeprom.c
@@ -93,7 +93,7 @@ static const struct i2c_eeprom_ops i2c_eeprom_std_ops = {
.size = i2c_eeprom_std_size,
};
-static int i2c_eeprom_std_ofdata_to_platdata(struct udevice *dev)
+static int i2c_eeprom_std_of_to_plat(struct udevice *dev)
{
struct i2c_eeprom *priv = dev_get_priv(dev);
struct i2c_eeprom_drv_data *data =
@@ -131,8 +131,8 @@ static int i2c_eeprom_std_bind(struct udevice *dev)
if (!name)
continue;
- device_bind_ofnode(dev, DM_GET_DRIVER(i2c_eeprom_partition),
- name, NULL, partition, NULL);
+ device_bind(dev, DM_DRIVER_GET(i2c_eeprom_partition), name,
+ NULL, partition, NULL);
}
return 0;
@@ -283,8 +283,8 @@ U_BOOT_DRIVER(i2c_eeprom_std) = {
.of_match = i2c_eeprom_std_ids,
.bind = i2c_eeprom_std_bind,
.probe = i2c_eeprom_std_probe,
- .ofdata_to_platdata = i2c_eeprom_std_ofdata_to_platdata,
- .priv_auto_alloc_size = sizeof(struct i2c_eeprom),
+ .of_to_plat = i2c_eeprom_std_of_to_plat,
+ .priv_auto = sizeof(struct i2c_eeprom),
.ops = &i2c_eeprom_std_ops,
};
@@ -298,7 +298,7 @@ static int i2c_eeprom_partition_probe(struct udevice *dev)
return 0;
}
-static int i2c_eeprom_partition_ofdata_to_platdata(struct udevice *dev)
+static int i2c_eeprom_partition_of_to_plat(struct udevice *dev)
{
struct i2c_eeprom_partition *priv = dev_get_priv(dev);
u32 reg[2];
@@ -365,8 +365,8 @@ U_BOOT_DRIVER(i2c_eeprom_partition) = {
.name = "i2c_eeprom_partition",
.id = UCLASS_I2C_EEPROM,
.probe = i2c_eeprom_partition_probe,
- .ofdata_to_platdata = i2c_eeprom_partition_ofdata_to_platdata,
- .priv_auto_alloc_size = sizeof(struct i2c_eeprom_partition),
+ .of_to_plat = i2c_eeprom_partition_of_to_plat,
+ .priv_auto = sizeof(struct i2c_eeprom_partition),
.ops = &i2c_eeprom_partition_ops,
};
diff --git a/drivers/misc/i2c_eeprom_emul.c b/drivers/misc/i2c_eeprom_emul.c
index 6be76ad02e..85b127c406 100644
--- a/drivers/misc/i2c_eeprom_emul.c
+++ b/drivers/misc/i2c_eeprom_emul.c
@@ -36,14 +36,14 @@ struct sandbox_i2c_flash {
void sandbox_i2c_eeprom_set_test_mode(struct udevice *dev,
enum sandbox_i2c_eeprom_test_mode mode)
{
- struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+ struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
plat->test_mode = mode;
}
void sandbox_i2c_eeprom_set_offset_len(struct udevice *dev, int offset_len)
{
- struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+ struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
plat->offset_len = offset_len;
}
@@ -51,7 +51,7 @@ void sandbox_i2c_eeprom_set_offset_len(struct udevice *dev, int offset_len)
void sandbox_i2c_eeprom_set_chip_addr_offset_mask(struct udevice *dev,
uint mask)
{
- struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+ struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
plat->chip_addr_offset_mask = mask;
}
@@ -74,7 +74,7 @@ static int sandbox_i2c_eeprom_xfer(struct udevice *emul, struct i2c_msg *msg,
int nmsgs)
{
struct sandbox_i2c_flash *priv = dev_get_priv(emul);
- struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(emul);
+ struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(emul);
uint offset = msg->addr & plat->chip_addr_offset_mask;
debug("\n%s\n", __func__);
@@ -149,9 +149,9 @@ struct dm_i2c_ops sandbox_i2c_emul_ops = {
.xfer = sandbox_i2c_eeprom_xfer,
};
-static int sandbox_i2c_eeprom_ofdata_to_platdata(struct udevice *dev)
+static int sandbox_i2c_eeprom_of_to_plat(struct udevice *dev)
{
- struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+ struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
plat->size = dev_read_u32_default(dev, "sandbox,size", 32);
plat->filename = dev_read_string(dev, "sandbox,filename");
@@ -169,7 +169,7 @@ static int sandbox_i2c_eeprom_ofdata_to_platdata(struct udevice *dev)
static int sandbox_i2c_eeprom_probe(struct udevice *dev)
{
- struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+ struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
struct sandbox_i2c_flash *priv = dev_get_priv(dev);
priv->data = calloc(1, plat->size);
@@ -197,10 +197,10 @@ U_BOOT_DRIVER(sandbox_i2c_emul) = {
.name = "sandbox_i2c_eeprom_emul",
.id = UCLASS_I2C_EMUL,
.of_match = sandbox_i2c_ids,
- .ofdata_to_platdata = sandbox_i2c_eeprom_ofdata_to_platdata,
+ .of_to_plat = sandbox_i2c_eeprom_of_to_plat,
.probe = sandbox_i2c_eeprom_probe,
.remove = sandbox_i2c_eeprom_remove,
- .priv_auto_alloc_size = sizeof(struct sandbox_i2c_flash),
- .platdata_auto_alloc_size = sizeof(struct sandbox_i2c_flash_plat_data),
+ .priv_auto = sizeof(struct sandbox_i2c_flash),
+ .plat_auto = sizeof(struct sandbox_i2c_flash_plat_data),
.ops = &sandbox_i2c_emul_ops,
};
diff --git a/drivers/misc/ihs_fpga.c b/drivers/misc/ihs_fpga.c
index 00d34a3adc..a0fece985d 100644
--- a/drivers/misc/ihs_fpga.c
+++ b/drivers/misc/ihs_fpga.c
@@ -866,5 +866,5 @@ U_BOOT_DRIVER(ihs_fpga_bus) = {
.id = UCLASS_MISC,
.of_match = ihs_fpga_ids,
.probe = ihs_fpga_probe,
- .priv_auto_alloc_size = sizeof(struct ihs_fpga_priv),
+ .priv_auto = sizeof(struct ihs_fpga_priv),
};
diff --git a/drivers/misc/imx8/scu.c b/drivers/misc/imx8/scu.c
index 223aac8518..72a3473263 100644
--- a/drivers/misc/imx8/scu.c
+++ b/drivers/misc/imx8/scu.c
@@ -158,7 +158,7 @@ static int sc_ipc_write(struct mu_type *base, void *data)
static int imx8_scu_call(struct udevice *dev, int no_resp, void *tx_msg,
int tx_size, void *rx_msg, int rx_size)
{
- struct imx8_scu *plat = dev_get_platdata(dev);
+ struct imx8_scu *plat = dev_get_plat(dev);
sc_err_t result;
int ret;
@@ -182,7 +182,7 @@ static int imx8_scu_call(struct udevice *dev, int no_resp, void *tx_msg,
static int imx8_scu_probe(struct udevice *dev)
{
- struct imx8_scu *plat = dev_get_platdata(dev);
+ struct imx8_scu *plat = dev_get_plat(dev);
fdt_addr_t addr;
debug("%s(dev=%p) (plat=%p)\n", __func__, dev, plat);
@@ -245,6 +245,6 @@ U_BOOT_DRIVER(imx8_scu) = {
.bind = imx8_scu_bind,
.remove = imx8_scu_remove,
.ops = &imx8_scu_ops,
- .platdata_auto_alloc_size = sizeof(struct imx8_scu),
+ .plat_auto = sizeof(struct imx8_scu),
.flags = DM_FLAG_PRE_RELOC,
};
diff --git a/drivers/misc/irq_sandbox.c b/drivers/misc/irq_sandbox.c
index a2511b32fc..1f7e62e661 100644
--- a/drivers/misc/irq_sandbox.c
+++ b/drivers/misc/irq_sandbox.c
@@ -108,5 +108,5 @@ U_BOOT_DRIVER(sandbox_irq_drv) = {
.id = UCLASS_IRQ,
.of_match = sandbox_irq_ids,
.ops = &sandbox_irq_ops,
- .priv_auto_alloc_size = sizeof(struct sandbox_irq_priv),
+ .priv_auto = sizeof(struct sandbox_irq_priv),
};
diff --git a/drivers/misc/k3_avs.c b/drivers/misc/k3_avs.c
index 408c89315a..840148d090 100644
--- a/drivers/misc/k3_avs.c
+++ b/drivers/misc/k3_avs.c
@@ -390,5 +390,5 @@ U_BOOT_DRIVER(k3_avs) = {
.of_match = k3_avs_ids,
.id = UCLASS_MISC,
.probe = k3_avs_probe,
- .priv_auto_alloc_size = sizeof(struct k3_avs_privdata),
+ .priv_auto = sizeof(struct k3_avs_privdata),
};
diff --git a/drivers/misc/microchip_flexcom.c b/drivers/misc/microchip_flexcom.c
index 64cc4ae7b6..e0a6f2d388 100644
--- a/drivers/misc/microchip_flexcom.c
+++ b/drivers/misc/microchip_flexcom.c
@@ -16,14 +16,14 @@ struct microchip_flexcom_regs {
u32 cr;
};
-struct microchip_flexcom_platdata {
+struct microchip_flexcom_plat {
struct microchip_flexcom_regs *regs;
u32 flexcom_mode;
};
-static int microchip_flexcom_ofdata_to_platdata(struct udevice *dev)
+static int microchip_flexcom_of_to_plat(struct udevice *dev)
{
- struct microchip_flexcom_platdata *plat = dev_get_platdata(dev);
+ struct microchip_flexcom_plat *plat = dev_get_plat(dev);
int ret;
plat->regs = map_physmem(dev_read_addr(dev),
@@ -61,6 +61,6 @@ U_BOOT_DRIVER(microchip_flexcom) = {
.name = "microchip_flexcom",
.id = UCLASS_MISC,
.of_match = microchip_flexcom_ids,
- .ofdata_to_platdata = microchip_flexcom_ofdata_to_platdata,
- .platdata_auto_alloc_size = sizeof(struct microchip_flexcom_platdata),
+ .of_to_plat = microchip_flexcom_of_to_plat,
+ .plat_auto = sizeof(struct microchip_flexcom_plat),
};
diff --git a/drivers/misc/misc_sandbox.c b/drivers/misc/misc_sandbox.c
index f7c5b2e25f..0e4292fd0a 100644
--- a/drivers/misc/misc_sandbox.c
+++ b/drivers/misc/misc_sandbox.c
@@ -129,5 +129,5 @@ U_BOOT_DRIVER(misc_sandbox) = {
.ops = &misc_sandbox_ops,
.of_match = misc_sandbox_ids,
.probe = misc_sandbox_probe,
- .priv_auto_alloc_size = sizeof(struct misc_sandbox_priv),
+ .priv_auto = sizeof(struct misc_sandbox_priv),
};
diff --git a/drivers/misc/mpc83xx_serdes.c b/drivers/misc/mpc83xx_serdes.c
index ab1e34e6f4..93c87e998c 100644
--- a/drivers/misc/mpc83xx_serdes.c
+++ b/drivers/misc/mpc83xx_serdes.c
@@ -183,5 +183,5 @@ U_BOOT_DRIVER(mpc83xx_serdes) = {
.id = UCLASS_MISC,
.of_match = mpc83xx_serdes_ids,
.probe = mpc83xx_serdes_probe,
- .priv_auto_alloc_size = sizeof(struct mpc83xx_serdes_priv),
+ .priv_auto = sizeof(struct mpc83xx_serdes_priv),
};
diff --git a/drivers/misc/p2sb-uclass.c b/drivers/misc/p2sb-uclass.c
index 12abcff2da..ac2852559f 100644
--- a/drivers/misc/p2sb-uclass.c
+++ b/drivers/misc/p2sb-uclass.c
@@ -30,7 +30,7 @@ int p2sb_set_hide(struct udevice *dev, bool hide)
void *pcr_reg_address(struct udevice *dev, uint offset)
{
- struct p2sb_child_platdata *pplat = dev_get_parent_platdata(dev);
+ struct p2sb_child_plat *pplat = dev_get_parent_plat(dev);
struct udevice *p2sb = dev_get_parent(dev);
struct p2sb_uc_priv *upriv = dev_get_uclass_priv(p2sb);
uintptr_t reg_addr;
@@ -161,34 +161,19 @@ void pcr_clrsetbits8(struct udevice *dev, uint offset, uint clr, uint set)
int p2sb_get_port_id(struct udevice *dev)
{
- struct p2sb_child_platdata *pplat = dev_get_parent_platdata(dev);
+ struct p2sb_child_plat *pplat = dev_get_parent_plat(dev);
return pplat->pid;
}
int p2sb_set_port_id(struct udevice *dev, int portid)
{
- struct udevice *ps2b;
- struct p2sb_child_platdata *pplat;
+ struct p2sb_child_plat *pplat;
if (!CONFIG_IS_ENABLED(OF_PLATDATA))
return -ENOSYS;
- if (!CONFIG_IS_ENABLED(OF_PLATDATA_PARENT)) {
- uclass_find_first_device(UCLASS_P2SB, &ps2b);
- if (!ps2b)
- return -EDEADLK;
- dev->parent = ps2b;
-
- /*
- * We must allocate this, since when the device was bound it did
- * not have a parent.
- */
- dev->parent_platdata = malloc(sizeof(*pplat));
- if (!dev->parent_platdata)
- return -ENOMEM;
- }
- pplat = dev_get_parent_platdata(dev);
+ pplat = dev_get_parent_plat(dev);
pplat->pid = portid;
return 0;
@@ -197,7 +182,7 @@ int p2sb_set_port_id(struct udevice *dev, int portid)
static int p2sb_child_post_bind(struct udevice *dev)
{
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
- struct p2sb_child_platdata *pplat = dev_get_parent_platdata(dev);
+ struct p2sb_child_plat *pplat = dev_get_parent_plat(dev);
int ret;
u32 pid;
@@ -221,9 +206,8 @@ static int p2sb_post_bind(struct udevice *dev)
UCLASS_DRIVER(p2sb) = {
.id = UCLASS_P2SB,
.name = "p2sb",
- .per_device_auto_alloc_size = sizeof(struct p2sb_uc_priv),
+ .per_device_auto = sizeof(struct p2sb_uc_priv),
.post_bind = p2sb_post_bind,
.child_post_bind = p2sb_child_post_bind,
- .per_child_platdata_auto_alloc_size =
- sizeof(struct p2sb_child_platdata),
+ .per_child_plat_auto = sizeof(struct p2sb_child_plat),
};
diff --git a/drivers/misc/p2sb_emul.c b/drivers/misc/p2sb_emul.c
index a4b6dba516..973d02d678 100644
--- a/drivers/misc/p2sb_emul.c
+++ b/drivers/misc/p2sb_emul.c
@@ -18,12 +18,12 @@
#include <p2sb.h>
/**
- * struct p2sb_emul_platdata - platform data for this device
+ * struct p2sb_emul_plat - platform data for this device
*
* @command: Current PCI command value
* @bar: Current base address values
*/
-struct p2sb_emul_platdata {
+struct p2sb_emul_plat {
u16 command;
u32 bar[6];
};
@@ -53,7 +53,7 @@ static int sandbox_p2sb_emul_read_config(const struct udevice *emul,
uint offset, ulong *valuep,
enum pci_size_t size)
{
- struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+ struct p2sb_emul_plat *plat = dev_get_plat(emul);
switch (offset) {
case PCI_COMMAND:
@@ -106,7 +106,7 @@ static int sandbox_p2sb_emul_read_config(const struct udevice *emul,
static int sandbox_p2sb_emul_write_config(struct udevice *emul, uint offset,
ulong value, enum pci_size_t size)
{
- struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+ struct p2sb_emul_plat *plat = dev_get_plat(emul);
switch (offset) {
case PCI_COMMAND:
@@ -134,7 +134,7 @@ static int sandbox_p2sb_emul_write_config(struct udevice *emul, uint offset,
static int sandbox_p2sb_emul_find_bar(struct udevice *emul, unsigned int addr,
int *barnump, unsigned int *offsetp)
{
- struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+ struct p2sb_emul_plat *plat = dev_get_plat(emul);
int barnum;
for (barnum = 0; barnum < ARRAY_SIZE(barinfo); barnum++) {
@@ -197,8 +197,8 @@ static int find_p2sb_channel(struct udevice *emul, uint offset,
return log_msg_ret("No client", ret);
device_foreach_child(dev, p2sb) {
- struct p2sb_child_platdata *pplat =
- dev_get_parent_platdata(dev);
+ struct p2sb_child_plat *pplat =
+ dev_get_parent_plat(dev);
log_debug(" - child %s, pid %d, want %d\n", dev->name,
pplat->pid, pid);
@@ -262,8 +262,8 @@ U_BOOT_DRIVER(sandbox_p2sb_emul_emul) = {
.id = UCLASS_PCI_EMUL,
.of_match = sandbox_p2sb_emul_ids,
.ops = &sandbox_p2sb_emul_emul_ops,
- .priv_auto_alloc_size = sizeof(struct p2sb_emul_priv),
- .platdata_auto_alloc_size = sizeof(struct p2sb_emul_platdata),
+ .priv_auto = sizeof(struct p2sb_emul_priv),
+ .plat_auto = sizeof(struct p2sb_emul_plat),
};
static struct pci_device_id sandbox_p2sb_emul_supported[] = {
diff --git a/drivers/misc/p2sb_sandbox.c b/drivers/misc/p2sb_sandbox.c
index ce50a9732e..d80bca22a6 100644
--- a/drivers/misc/p2sb_sandbox.c
+++ b/drivers/misc/p2sb_sandbox.c
@@ -35,5 +35,5 @@ U_BOOT_DRIVER(p2sb_sandbox) = {
.id = UCLASS_P2SB,
.of_match = sandbox_p2sb_ids,
.probe = sandbox_p2sb_probe,
- .priv_auto_alloc_size = sizeof(struct sandbox_p2sb_priv),
+ .priv_auto = sizeof(struct sandbox_p2sb_priv),
};
diff --git a/drivers/misc/rockchip-efuse.c b/drivers/misc/rockchip-efuse.c
index 46ce6305fe..083ee65e0a 100644
--- a/drivers/misc/rockchip-efuse.c
+++ b/drivers/misc/rockchip-efuse.c
@@ -37,7 +37,7 @@ struct rockchip_efuse_regs {
/* 0x14 efuse strobe finish control register */
};
-struct rockchip_efuse_platdata {
+struct rockchip_efuse_plat {
void __iomem *base;
struct clk *clk;
};
@@ -58,7 +58,7 @@ static int dump_efuses(struct cmd_tbl *cmdtp, int flag,
/* retrieve the device */
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(rockchip_efuse), &dev);
+ DM_DRIVER_GET(rockchip_efuse), &dev);
if (ret) {
printf("%s: no misc-device found\n", __func__);
return 0;
@@ -86,7 +86,7 @@ U_BOOT_CMD(
static int rockchip_rk3399_efuse_read(struct udevice *dev, int offset,
void *buf, int size)
{
- struct rockchip_efuse_platdata *plat = dev_get_platdata(dev);
+ struct rockchip_efuse_plat *plat = dev_get_plat(dev);
struct rockchip_efuse_regs *efuse =
(struct rockchip_efuse_regs *)plat->base;
@@ -137,9 +137,9 @@ static const struct misc_ops rockchip_efuse_ops = {
.read = rockchip_efuse_read,
};
-static int rockchip_efuse_ofdata_to_platdata(struct udevice *dev)
+static int rockchip_efuse_of_to_plat(struct udevice *dev)
{
- struct rockchip_efuse_platdata *plat = dev_get_platdata(dev);
+ struct rockchip_efuse_plat *plat = dev_get_plat(dev);
plat->base = dev_read_addr_ptr(dev);
return 0;
@@ -154,7 +154,7 @@ U_BOOT_DRIVER(rockchip_efuse) = {
.name = "rockchip_efuse",
.id = UCLASS_MISC,
.of_match = rockchip_efuse_ids,
- .ofdata_to_platdata = rockchip_efuse_ofdata_to_platdata,
- .platdata_auto_alloc_size = sizeof(struct rockchip_efuse_platdata),
+ .of_to_plat = rockchip_efuse_of_to_plat,
+ .plat_auto = sizeof(struct rockchip_efuse_plat),
.ops = &rockchip_efuse_ops,
};
diff --git a/drivers/misc/rockchip-otp.c b/drivers/misc/rockchip-otp.c
index bdd443b3db..cc9a5450e0 100644
--- a/drivers/misc/rockchip-otp.c
+++ b/drivers/misc/rockchip-otp.c
@@ -47,13 +47,13 @@
#define OTPC_TIMEOUT 10000
-struct rockchip_otp_platdata {
+struct rockchip_otp_plat {
void __iomem *base;
unsigned long secure_conf_base;
unsigned long otp_mask_base;
};
-static int rockchip_otp_wait_status(struct rockchip_otp_platdata *otp,
+static int rockchip_otp_wait_status(struct rockchip_otp_plat *otp,
u32 flag)
{
int delay = OTPC_TIMEOUT;
@@ -73,7 +73,7 @@ static int rockchip_otp_wait_status(struct rockchip_otp_platdata *otp,
return 0;
}
-static int rockchip_otp_ecc_enable(struct rockchip_otp_platdata *otp,
+static int rockchip_otp_ecc_enable(struct rockchip_otp_plat *otp,
bool enable)
{
int ret = 0;
@@ -102,7 +102,7 @@ static int rockchip_otp_ecc_enable(struct rockchip_otp_platdata *otp,
static int rockchip_px30_otp_read(struct udevice *dev, int offset,
void *buf, int size)
{
- struct rockchip_otp_platdata *otp = dev_get_platdata(dev);
+ struct rockchip_otp_plat *otp = dev_get_plat(dev);
u8 *buffer = buf;
int ret = 0;
@@ -145,9 +145,9 @@ static const struct misc_ops rockchip_otp_ops = {
.read = rockchip_otp_read,
};
-static int rockchip_otp_ofdata_to_platdata(struct udevice *dev)
+static int rockchip_otp_of_to_plat(struct udevice *dev)
{
- struct rockchip_otp_platdata *otp = dev_get_platdata(dev);
+ struct rockchip_otp_plat *otp = dev_get_plat(dev);
otp->base = dev_read_addr_ptr(dev);
@@ -171,6 +171,6 @@ U_BOOT_DRIVER(rockchip_otp) = {
.id = UCLASS_MISC,
.of_match = rockchip_otp_ids,
.ops = &rockchip_otp_ops,
- .ofdata_to_platdata = rockchip_otp_ofdata_to_platdata,
- .platdata_auto_alloc_size = sizeof(struct rockchip_otp_platdata),
+ .of_to_plat = rockchip_otp_of_to_plat,
+ .plat_auto = sizeof(struct rockchip_otp_plat),
};
diff --git a/drivers/misc/sandbox_adder.c b/drivers/misc/sandbox_adder.c
index df262e6255..3ea33e46e9 100644
--- a/drivers/misc/sandbox_adder.c
+++ b/drivers/misc/sandbox_adder.c
@@ -21,7 +21,7 @@ struct sandbox_adder_priv {
int sandbox_adder_read(struct udevice *dev, ulong address, void *data,
enum axi_size_t size)
{
- struct p2sb_child_platdata *pplat = dev_get_parent_platdata(dev);
+ struct p2sb_child_plat *pplat = dev_get_parent_plat(dev);
u32 *val = data;
*val = pplat->pid << 24 | address;
@@ -56,5 +56,5 @@ U_BOOT_DRIVER(adder_sandbox) = {
.of_match = sandbox_adder_ids,
.probe = sandbox_adder_probe,
.ops = &sandbox_adder_ops,
- .priv_auto_alloc_size = sizeof(struct sandbox_adder_priv),
+ .priv_auto = sizeof(struct sandbox_adder_priv),
};
diff --git a/drivers/misc/sifive-otp.c b/drivers/misc/sifive-otp.c
index 92f08dde01..3e658b3566 100644
--- a/drivers/misc/sifive-otp.c
+++ b/drivers/misc/sifive-otp.c
@@ -89,7 +89,7 @@ struct sifive_otp_regs {
u32 pwe; /* Write enable input (defines program cycle) */
};
-struct sifive_otp_platdata {
+struct sifive_otp_plat {
struct sifive_otp_regs __iomem *regs;
u32 total_fuses;
};
@@ -100,7 +100,7 @@ struct sifive_otp_platdata {
static int sifive_otp_read(struct udevice *dev, int offset,
void *buf, int size)
{
- struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+ struct sifive_otp_plat *plat = dev_get_plat(dev);
struct sifive_otp_regs *regs = (struct sifive_otp_regs *)plat->regs;
/* Check if offset and size are multiple of BYTES_PER_FUSE */
@@ -162,7 +162,7 @@ static int sifive_otp_read(struct udevice *dev, int offset,
static int sifive_otp_write(struct udevice *dev, int offset,
const void *buf, int size)
{
- struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+ struct sifive_otp_plat *plat = dev_get_plat(dev);
struct sifive_otp_regs *regs = (struct sifive_otp_regs *)plat->regs;
/* Check if offset and size are multiple of BYTES_PER_FUSE */
@@ -239,9 +239,9 @@ static int sifive_otp_write(struct udevice *dev, int offset,
return size;
}
-static int sifive_otp_ofdata_to_platdata(struct udevice *dev)
+static int sifive_otp_of_to_plat(struct udevice *dev)
{
- struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+ struct sifive_otp_plat *plat = dev_get_plat(dev);
int ret;
plat->regs = dev_read_addr_ptr(dev);
@@ -269,7 +269,7 @@ U_BOOT_DRIVER(sifive_otp) = {
.name = "sifive_otp",
.id = UCLASS_MISC,
.of_match = sifive_otp_ids,
- .ofdata_to_platdata = sifive_otp_ofdata_to_platdata,
- .platdata_auto_alloc_size = sizeof(struct sifive_otp_platdata),
+ .of_to_plat = sifive_otp_of_to_plat,
+ .plat_auto = sizeof(struct sifive_otp_plat),
.ops = &sifive_otp_ops,
};
diff --git a/drivers/misc/spltest_sandbox.c b/drivers/misc/spltest_sandbox.c
index 3ae6707593..6b9701a06a 100644
--- a/drivers/misc/spltest_sandbox.c
+++ b/drivers/misc/spltest_sandbox.c
@@ -8,8 +8,14 @@
#include <dm.h>
#include <dt-structs.h>
+static const struct udevice_id sandbox_spl_ids[] = {
+ { .compatible = "sandbox,spl-test", },
+ {} /* sentinel */
+};
+
U_BOOT_DRIVER(sandbox_spl_test) = {
.name = "sandbox_spl_test",
.id = UCLASS_MISC,
+ .of_match = sandbox_spl_ids,
.flags = DM_FLAG_PRE_RELOC,
};
diff --git a/drivers/misc/stm32mp_fuse.c b/drivers/misc/stm32mp_fuse.c
index 0eed345973..9fd6c367dc 100644
--- a/drivers/misc/stm32mp_fuse.c
+++ b/drivers/misc/stm32mp_fuse.c
@@ -26,7 +26,7 @@ int fuse_read(u32 bank, u32 word, u32 *val)
switch (bank) {
case STM32MP_OTP_BANK:
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(stm32mp_bsec),
+ DM_DRIVER_GET(stm32mp_bsec),
&dev);
if (ret)
return ret;
@@ -41,7 +41,7 @@ int fuse_read(u32 bank, u32 word, u32 *val)
#ifdef CONFIG_PMIC_STPMIC1
case STM32MP_NVM_BANK:
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(stpmic1_nvm),
+ DM_DRIVER_GET(stpmic1_nvm),
&dev);
if (ret)
return ret;
@@ -71,7 +71,7 @@ int fuse_prog(u32 bank, u32 word, u32 val)
switch (bank) {
case STM32MP_OTP_BANK:
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(stm32mp_bsec),
+ DM_DRIVER_GET(stm32mp_bsec),
&dev);
if (ret)
return ret;
@@ -86,7 +86,7 @@ int fuse_prog(u32 bank, u32 word, u32 val)
#ifdef CONFIG_PMIC_STPMIC1
case STM32MP_NVM_BANK:
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(stpmic1_nvm),
+ DM_DRIVER_GET(stpmic1_nvm),
&dev);
if (ret)
return ret;
@@ -115,7 +115,7 @@ int fuse_sense(u32 bank, u32 word, u32 *val)
switch (bank) {
case STM32MP_OTP_BANK:
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(stm32mp_bsec),
+ DM_DRIVER_GET(stm32mp_bsec),
&dev);
if (ret)
return ret;
@@ -129,7 +129,7 @@ int fuse_sense(u32 bank, u32 word, u32 *val)
#ifdef CONFIG_PMIC_STPMIC1
case STM32MP_NVM_BANK:
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(stpmic1_nvm),
+ DM_DRIVER_GET(stpmic1_nvm),
&dev);
if (ret)
return ret;
@@ -159,7 +159,7 @@ int fuse_override(u32 bank, u32 word, u32 val)
switch (bank) {
case STM32MP_OTP_BANK:
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(stm32mp_bsec),
+ DM_DRIVER_GET(stm32mp_bsec),
&dev);
if (ret)
return ret;
@@ -174,7 +174,7 @@ int fuse_override(u32 bank, u32 word, u32 val)
#ifdef CONFIG_PMIC_STPMIC1
case STM32MP_NVM_BANK:
ret = uclass_get_device_by_driver(UCLASS_MISC,
- DM_GET_DRIVER(stpmic1_nvm),
+ DM_DRIVER_GET(stpmic1_nvm),
&dev);
if (ret)
return ret;
diff --git a/drivers/misc/swap_case.c b/drivers/misc/swap_case.c
index 07c67577d5..3cbc8f37ec 100644
--- a/drivers/misc/swap_case.c
+++ b/drivers/misc/swap_case.c
@@ -15,12 +15,12 @@
#include <linux/ctype.h>
/**
- * struct swap_case_platdata - platform data for this device
+ * struct swap_case_plat - platform data for this device
*
* @command: Current PCI command value
* @bar: Current base address values
*/
-struct swap_case_platdata {
+struct swap_case_plat {
u16 command;
u32 bar[6];
};
@@ -54,7 +54,7 @@ struct swap_case_priv {
static int sandbox_swap_case_use_ea(const struct udevice *dev)
{
- return !!ofnode_get_property(dev->node, "use-ea", NULL);
+ return !!ofnode_get_property(dev_ofnode(dev), "use-ea", NULL);
}
/* Please keep these macros in sync with ea_regs below */
@@ -100,7 +100,7 @@ static int sandbox_swap_case_read_config(const struct udevice *emul,
uint offset, ulong *valuep,
enum pci_size_t size)
{
- struct swap_case_platdata *plat = dev_get_platdata(emul);
+ struct swap_case_plat *plat = dev_get_plat(emul);
/*
* The content of the EA capability structure is handled elsewhere to
@@ -200,7 +200,7 @@ static int sandbox_swap_case_read_config(const struct udevice *emul,
static int sandbox_swap_case_write_config(struct udevice *emul, uint offset,
ulong value, enum pci_size_t size)
{
- struct swap_case_platdata *plat = dev_get_platdata(emul);
+ struct swap_case_plat *plat = dev_get_plat(emul);
switch (offset) {
case PCI_COMMAND:
@@ -228,7 +228,7 @@ static int sandbox_swap_case_write_config(struct udevice *emul, uint offset,
static int sandbox_swap_case_find_bar(struct udevice *emul, unsigned int addr,
int *barnump, unsigned int *offsetp)
{
- struct swap_case_platdata *plat = dev_get_platdata(emul);
+ struct swap_case_plat *plat = dev_get_plat(emul);
int barnum;
for (barnum = 0; barnum < ARRAY_SIZE(barinfo); barnum++) {
@@ -391,8 +391,8 @@ U_BOOT_DRIVER(sandbox_swap_case_emul) = {
.id = UCLASS_PCI_EMUL,
.of_match = sandbox_swap_case_ids,
.ops = &sandbox_swap_case_emul_ops,
- .priv_auto_alloc_size = sizeof(struct swap_case_priv),
- .platdata_auto_alloc_size = sizeof(struct swap_case_platdata),
+ .priv_auto = sizeof(struct swap_case_priv),
+ .plat_auto = sizeof(struct swap_case_plat),
};
static struct pci_device_id sandbox_swap_case_supported[] = {
diff --git a/drivers/misc/tegra186_bpmp.c b/drivers/misc/tegra186_bpmp.c
index 18da138507..f2366d6592 100644
--- a/drivers/misc/tegra186_bpmp.c
+++ b/drivers/misc/tegra186_bpmp.c
@@ -257,5 +257,5 @@ U_BOOT_DRIVER(tegra186_bpmp) = {
.probe = tegra186_bpmp_probe,
.remove = tegra186_bpmp_remove,
.ops = &tegra186_bpmp_ops,
- .priv_auto_alloc_size = sizeof(struct tegra186_bpmp),
+ .priv_auto = sizeof(struct tegra186_bpmp),
};
diff --git a/drivers/misc/test_drv.c b/drivers/misc/test_drv.c
new file mode 100644
index 0000000000..7dd3de34c9
--- /dev/null
+++ b/drivers/misc/test_drv.c
@@ -0,0 +1,222 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2014 Google, Inc
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <dm/test.h>
+
+/* Records the last testbus device that was removed */
+static struct udevice *testbus_removed;
+
+struct udevice *testbus_get_clear_removed(void)
+{
+ struct udevice *removed = testbus_removed;
+
+ testbus_removed = NULL;
+
+ return removed;
+}
+
+static int testbus_drv_probe(struct udevice *dev)
+{
+ if (!CONFIG_IS_ENABLED(OF_PLATDATA)) {
+ int ret;
+
+ ret = dm_scan_fdt_dev(dev);
+ if (ret)
+ return ret;
+ }
+
+ return 0;
+}
+
+static int testbus_child_post_bind(struct udevice *dev)
+{
+ struct dm_test_parent_plat *plat;
+
+ plat = dev_get_parent_plat(dev);
+ plat->bind_flag = 1;
+ plat->uclass_bind_flag = 2;
+
+ return 0;
+}
+
+static int testbus_child_pre_probe(struct udevice *dev)
+{
+ struct dm_test_parent_data *parent_data = dev_get_parent_priv(dev);
+
+ parent_data->flag += TEST_FLAG_CHILD_PROBED;
+
+ return 0;
+}
+
+static int testbus_child_pre_probe_uclass(struct udevice *dev)
+{
+ struct dm_test_priv *priv = dev_get_priv(dev);
+
+ priv->uclass_flag++;
+
+ return 0;
+}
+
+static int testbus_child_post_probe_uclass(struct udevice *dev)
+{
+ struct dm_test_priv *priv = dev_get_priv(dev);
+
+ priv->uclass_postp++;
+
+ return 0;
+}
+
+static int testbus_child_post_remove(struct udevice *dev)
+{
+ struct dm_test_parent_data *parent_data = dev_get_parent_priv(dev);
+
+ parent_data->flag += TEST_FLAG_CHILD_REMOVED;
+ testbus_removed = dev;
+
+ return 0;
+}
+
+static const struct udevice_id testbus_ids[] = {
+ { .compatible = "denx,u-boot-test-bus", .data = DM_TEST_TYPE_FIRST },
+ { }
+};
+
+U_BOOT_DRIVER(testbus_drv) = {
+ .name = "testbus_drv",
+ .of_match = testbus_ids,
+ .id = UCLASS_TEST_BUS,
+ .probe = testbus_drv_probe,
+ .child_post_bind = testbus_child_post_bind,
+ .priv_auto = sizeof(struct dm_test_priv),
+ .plat_auto = sizeof(struct dm_test_pdata),
+ .per_child_auto = sizeof(struct dm_test_parent_data),
+ .per_child_plat_auto = sizeof(struct dm_test_parent_plat),
+ .child_pre_probe = testbus_child_pre_probe,
+ .child_post_remove = testbus_child_post_remove,
+};
+
+UCLASS_DRIVER(testbus) = {
+ .name = "testbus",
+ .id = UCLASS_TEST_BUS,
+ .flags = DM_UC_FLAG_SEQ_ALIAS,
+ .child_pre_probe = testbus_child_pre_probe_uclass,
+ .child_post_probe = testbus_child_post_probe_uclass,
+};
+
+static int testfdt_drv_ping(struct udevice *dev, int pingval, int *pingret)
+{
+ const struct dm_test_pdata *pdata = dev_get_plat(dev);
+ struct dm_test_priv *priv = dev_get_priv(dev);
+
+ *pingret = pingval + pdata->ping_add;
+ priv->ping_total += *pingret;
+
+ return 0;
+}
+
+static const struct test_ops test_ops = {
+ .ping = testfdt_drv_ping,
+};
+
+static int testfdt_of_to_plat(struct udevice *dev)
+{
+ struct dm_test_pdata *pdata = dev_get_plat(dev);
+
+ pdata->ping_add = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
+ "ping-add", -1);
+ pdata->base = fdtdec_get_addr(gd->fdt_blob, dev_of_offset(dev),
+ "ping-expect");
+
+ return 0;
+}
+
+static int testfdt_drv_probe(struct udevice *dev)
+{
+ struct dm_test_priv *priv = dev_get_priv(dev);
+
+ priv->ping_total += DM_TEST_START_TOTAL;
+
+ /*
+ * If this device is on a bus, the uclass_flag will be set before
+ * calling this function. In the meantime the uclass_postp is
+ * initlized to a value -1. These are used respectively by
+ * dm_test_bus_child_pre_probe_uclass() and
+ * dm_test_bus_child_post_probe_uclass().
+ */
+ priv->uclass_total += priv->uclass_flag;
+ priv->uclass_postp = -1;
+
+ return 0;
+}
+
+static const struct udevice_id testfdt_ids[] = {
+ { .compatible = "denx,u-boot-fdt-test", .data = DM_TEST_TYPE_FIRST },
+ { .compatible = "google,another-fdt-test", .data = DM_TEST_TYPE_SECOND },
+ { }
+};
+
+U_BOOT_DRIVER(testfdt_drv) = {
+ .name = "testfdt_drv",
+ .of_match = testfdt_ids,
+ .id = UCLASS_TEST_FDT,
+ .of_to_plat = testfdt_of_to_plat,
+ .probe = testfdt_drv_probe,
+ .ops = &test_ops,
+ .priv_auto = sizeof(struct dm_test_priv),
+ .plat_auto = sizeof(struct dm_test_pdata),
+};
+
+static const struct udevice_id testfdt1_ids[] = {
+ { .compatible = "denx,u-boot-fdt-test1", .data = DM_TEST_TYPE_FIRST },
+ { }
+};
+
+U_BOOT_DRIVER(testfdt1_drv) = {
+ .name = "testfdt1_drv",
+ .of_match = testfdt1_ids,
+ .id = UCLASS_TEST_FDT,
+ .of_to_plat = testfdt_of_to_plat,
+ .probe = testfdt_drv_probe,
+ .ops = &test_ops,
+ .priv_auto = sizeof(struct dm_test_priv),
+ .plat_auto = sizeof(struct dm_test_pdata),
+ .flags = DM_FLAG_PRE_RELOC,
+};
+
+/* From here is the testfdt uclass code */
+int testfdt_ping(struct udevice *dev, int pingval, int *pingret)
+{
+ const struct test_ops *ops = device_get_ops(dev);
+
+ if (!ops->ping)
+ return -ENOSYS;
+
+ return ops->ping(dev, pingval, pingret);
+}
+
+UCLASS_DRIVER(testfdt) = {
+ .name = "testfdt",
+ .id = UCLASS_TEST_FDT,
+ .flags = DM_UC_FLAG_SEQ_ALIAS,
+};
+
+static const struct udevice_id testfdtm_ids[] = {
+ { .compatible = "denx,u-boot-fdtm-test" },
+ { }
+};
+
+U_BOOT_DRIVER(testfdtm_drv) = {
+ .name = "testfdtm_drv",
+ .of_match = testfdtm_ids,
+ .id = UCLASS_TEST_FDT_MANUAL,
+};
+
+UCLASS_DRIVER(testfdtm) = {
+ .name = "testfdtm",
+ .id = UCLASS_TEST_FDT_MANUAL,
+ .flags = DM_UC_FLAG_SEQ_ALIAS | DM_UC_FLAG_NO_AUTO_SEQ,
+};
diff --git a/drivers/misc/vexpress_config.c b/drivers/misc/vexpress_config.c
index 02e5b586e2..2baca48109 100644
--- a/drivers/misc/vexpress_config.c
+++ b/drivers/misc/vexpress_config.c
@@ -109,7 +109,7 @@ static int vexpress_config_probe(struct udevice *dev)
if (!priv)
return -ENOMEM;
- dev->uclass_priv = priv;
+ dev_get_uclass_priv(dev) = priv;
priv->addr = ofnode_get_addr(args.node);
return dev_read_u32(dev, "arm,vexpress,site", &priv->site);