diff --git a/include/atmel_lcd.h b/include/atmel_lcd.h
index 4aa955b..66436b9 100644
--- a/include/atmel_lcd.h
+++ b/include/atmel_lcd.h
@@ -10,11 +10,11 @@
 #define _ATMEL_LCD_H_
 
 /**
- * struct atmel_lcd_platdata - platform data for Atmel LCDs with driver model
+ * struct atmel_lcd_plat - platform data for Atmel LCDs with driver model
  *
  * @timing_index:	Index of LCD timing to use in device tree node
  */
-struct atmel_lcd_platdata {
+struct atmel_lcd_plat {
 	int timing_index;
 };
 
diff --git a/include/cpu.h b/include/cpu.h
index 1d53308..5831bfa 100644
--- a/include/cpu.h
+++ b/include/cpu.h
@@ -8,7 +8,7 @@
 #define __CPU_H
 
 /**
- * struct cpu_platdata - platform data for a CPU
+ * struct cpu_plat - platform data for a CPU
  * @cpu_id:	   Platform-specific way of identifying the CPU.
  * @ucode_version: Microcode version, if CPU_FEAT_UCODE is set
  * @device_id:     Driver-defined device identifier
@@ -20,7 +20,7 @@
  * This can be accessed with dev_get_parent_plat() for any UCLASS_CPU
  * device.
  */
-struct cpu_platdata {
+struct cpu_plat {
 	int cpu_id;
 	int ucode_version;
 	ulong device_id;
diff --git a/include/dm/platform_data/fsl_espi.h b/include/dm/platform_data/fsl_espi.h
index 812933f..de2307f 100644
--- a/include/dm/platform_data/fsl_espi.h
+++ b/include/dm/platform_data/fsl_espi.h
@@ -6,7 +6,7 @@
 #ifndef __fsl_espi_h
 #define __fsl_espi_h
 
-struct fsl_espi_platdata {
+struct fsl_espi_plat {
 	uint flags;
 	uint speed_hz;
 	uint num_chipselect;
diff --git a/include/dm/platform_data/lpc32xx_hsuart.h b/include/dm/platform_data/lpc32xx_hsuart.h
index 9bfd628..6f41e0e73 100644
--- a/include/dm/platform_data/lpc32xx_hsuart.h
+++ b/include/dm/platform_data/lpc32xx_hsuart.h
@@ -7,11 +7,11 @@
 #define _LPC32XX_HSUART_PLAT_H
 
 /**
- * struct lpc32xx_hsuart_platdata - NXP LPC32xx HSUART platform data
+ * struct lpc32xx_hsuart_plat - NXP LPC32xx HSUART platform data
  *
  * @base:               Base register address
  */
-struct lpc32xx_hsuart_platdata {
+struct lpc32xx_hsuart_plat {
 	unsigned long base;
 };
 
diff --git a/include/dm/platform_data/pxa_mmc_gen.h b/include/dm/platform_data/pxa_mmc_gen.h
index 9875bab..d15c155 100644
--- a/include/dm/platform_data/pxa_mmc_gen.h
+++ b/include/dm/platform_data/pxa_mmc_gen.h
@@ -9,7 +9,7 @@
 #include <mmc.h>
 
 /*
- * struct pxa_mmc_platdata - information about a PXA MMC controller
+ * struct pxa_mmc_plat - information about a PXA MMC controller
  *
  * @base:	MMC controller base register address
  */
diff --git a/include/dm/platform_data/serial_bcm283x_mu.h b/include/dm/platform_data/serial_bcm283x_mu.h
index 37f5174..6c77272 100644
--- a/include/dm/platform_data/serial_bcm283x_mu.h
+++ b/include/dm/platform_data/serial_bcm283x_mu.h
@@ -14,7 +14,7 @@
  *
  * @base: Register base address
  */
-struct bcm283x_mu_serial_platdata {
+struct bcm283x_mu_serial_plat {
 	unsigned long base;
 	unsigned int clock;
 	bool skip_init;
diff --git a/include/dm/platform_data/serial_coldfire.h b/include/dm/platform_data/serial_coldfire.h
index ba916fe..5e265e9 100644
--- a/include/dm/platform_data/serial_coldfire.h
+++ b/include/dm/platform_data/serial_coldfire.h
@@ -7,13 +7,13 @@
 #define __serial_coldfire_h
 
 /*
- * struct coldfire_serial_platdata - information about a coldfire port
+ * struct coldfire_serial_plat - information about a coldfire port
  *
  * @base:               Uart port base register address
  * @port:               Uart port index, for cpu with pinmux for uart / gpio
  * baudrtatre:          Uart port baudrate
  */
-struct coldfire_serial_platdata {
+struct coldfire_serial_plat {
 	unsigned long base;
 	int port;
 	int baudrate;
diff --git a/include/dm/platform_data/serial_mxc.h b/include/dm/platform_data/serial_mxc.h
index 86cd3bc..cc59eeb 100644
--- a/include/dm/platform_data/serial_mxc.h
+++ b/include/dm/platform_data/serial_mxc.h
@@ -7,7 +7,7 @@
 #define __serial_mxc_h
 
 /* Information about a serial port */
-struct mxc_serial_platdata {
+struct mxc_serial_plat {
 	struct mxc_uart *reg;  /* address of registers in physical memory */
 	bool use_dte;
 };
diff --git a/include/dm/platform_data/serial_pl01x.h b/include/dm/platform_data/serial_pl01x.h
index 77d96c4..e3d4e30 100644
--- a/include/dm/platform_data/serial_pl01x.h
+++ b/include/dm/platform_data/serial_pl01x.h
@@ -20,7 +20,7 @@
  * @skip_init: Don't attempt to change port configuration (also means @clock
  * is ignored)
  */
-struct pl01x_serial_platdata {
+struct pl01x_serial_plat {
 	unsigned long base;
 	enum pl01x_type type;
 	unsigned int clock;
diff --git a/include/dm/platform_data/serial_pxa.h b/include/dm/platform_data/serial_pxa.h
index b78bdb6..0d7dc4c 100644
--- a/include/dm/platform_data/serial_pxa.h
+++ b/include/dm/platform_data/serial_pxa.h
@@ -40,13 +40,13 @@
 #endif
 
 /*
- * struct pxa_serial_platdata - information about a PXA port
+ * struct pxa_serial_plat - information about a PXA port
  *
  * @base:	Uart port base register address
  * @port:	Uart port index, for cpu with pinmux for uart / gpio
  * baudrtatre:	Uart port baudrate
  */
-struct pxa_serial_platdata {
+struct pxa_serial_plat {
 	struct pxa_uart_regs *base;
 	int port;
 	int baudrate;
diff --git a/include/dm/platform_data/serial_sh.h b/include/dm/platform_data/serial_sh.h
index 711435d..69cd012 100644
--- a/include/dm/platform_data/serial_sh.h
+++ b/include/dm/platform_data/serial_sh.h
@@ -27,7 +27,7 @@
  * @clk_mode:	Clock mode, set internal (INT) or external (EXT)
  * @type:	Type of SCIF
  */
-struct sh_serial_platdata {
+struct sh_serial_plat {
 	unsigned long base;
 	unsigned int clk;
 	enum sh_clk_mode clk_mode;
diff --git a/include/dm/platform_data/spi_coldfire.h b/include/dm/platform_data/spi_coldfire.h
index 8ad8eae..da514ba 100644
--- a/include/dm/platform_data/spi_coldfire.h
+++ b/include/dm/platform_data/spi_coldfire.h
@@ -10,14 +10,14 @@
 #define MAX_CTAR_FIELDS		8
 
 /*
- * struct coldfire_spi_platdata - information about a coldfire spi module
+ * struct coldfire_spi_plat - information about a coldfire spi module
  *
  * @regs_addr: base address for module registers
  * @speed_hz: default SCK frequency
  * @mode: default SPI mode
  * @num_cs: number of DSPI chipselect signals
  */
-struct coldfire_spi_platdata {
+struct coldfire_spi_plat {
 	fdt_addr_t regs_addr;
 	uint speed_hz;
 	uint mode;
diff --git a/include/dm/platform_data/spi_davinci.h b/include/dm/platform_data/spi_davinci.h
index fbc62c2..42a467e 100644
--- a/include/dm/platform_data/spi_davinci.h
+++ b/include/dm/platform_data/spi_davinci.h
@@ -7,7 +7,7 @@
 #ifndef __spi_davinci_h
 #define __spi_davinci_h
 
-struct davinci_spi_platdata {
+struct davinci_spi_plat {
 	struct davinci_spi_regs *regs;
 	u8 num_cs;	   /* total no. of CS available */
 };
diff --git a/include/dm/root.h b/include/dm/root.h
index 113e92e..89afbee 100644
--- a/include/dm/root.h
+++ b/include/dm/root.h
@@ -31,7 +31,7 @@
 void dm_fixup_for_gd_move(struct global_data *new_gd);
 
 /**
- * dm_scan_platdata() - Scan all platform data and bind drivers
+ * dm_scan_plat() - Scan all platform data and bind drivers
  *
  * This scans all available plat and creates drivers for each
  *
@@ -39,7 +39,7 @@
  * flag. If false bind all drivers.
  * @return 0 if OK, -ve on error
  */
-int dm_scan_platdata(bool pre_reloc_only);
+int dm_scan_plat(bool pre_reloc_only);
 
 /**
  * dm_scan_fdt() - Scan the device tree and bind drivers
diff --git a/include/fs_loader.h b/include/fs_loader.h
index 1b3c580..8de7cb1 100644
--- a/include/fs_loader.h
+++ b/include/fs_loader.h
@@ -31,7 +31,7 @@
  * @mtdpart: MTD partition for ubi partition.
  * @ubivol: UBI volume-name for ubifsmount.
  */
-struct device_platdata {
+struct device_plat {
 	struct phandle_part phandlepart;
 	char *mtdpart;
 	char *ubivol;
diff --git a/include/ns16550.h b/include/ns16550.h
index 08e933f..bef2961 100644
--- a/include/ns16550.h
+++ b/include/ns16550.h
@@ -56,7 +56,7 @@
 };
 
 /**
- * struct ns16550_platdata - information about a NS16550 port
+ * struct ns16550_plat - information about a NS16550 port
  *
  * @base:		Base register address
  * @reg_width:		IO accesses size of registers (in bytes, 1 or 4)
@@ -67,7 +67,7 @@
  * @flags:		A few flags (enum ns16550_flags)
  * @bdf:		PCI slot/function (pci_dev_t)
  */
-struct ns16550_platdata {
+struct ns16550_plat {
 	unsigned long base;
 	int reg_width;
 	int reg_shift;
@@ -111,7 +111,7 @@
 	UART_REG(ssr);		/* 11*/
 #endif
 #ifdef CONFIG_DM_SERIAL
-	struct ns16550_platdata *plat;
+	struct ns16550_plat *plat;
 #endif
 };
 
diff --git a/include/p2sb.h b/include/p2sb.h
index a25170e..ddbc8d5 100644
--- a/include/p2sb.h
+++ b/include/p2sb.h
@@ -17,11 +17,11 @@
 #define PCH_P2SB_HBDF		0x70
 
 /**
- * struct p2sb_child_platdata - Information about each child of a p2sb device
+ * struct p2sb_child_plat - Information about each child of a p2sb device
  *
  * @pid: Port ID for this child
  */
-struct p2sb_child_platdata {
+struct p2sb_child_plat {
 	uint pid;
 };
 
diff --git a/include/pci.h b/include/pci.h
index a8472dd..d5b42ce 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -899,7 +899,7 @@
 
 #ifdef CONFIG_DM_PCI
 /**
- * struct pci_child_platdata - information stored about each PCI device
+ * struct pci_child_plat - information stored about each PCI device
  *
  * Every device on a PCI bus has this per-child data.
  *
@@ -914,7 +914,7 @@
  * @pfdev:	Handle to Physical Function device
  * @virtid:	Virtual Function Index
  */
-struct pci_child_platdata {
+struct pci_child_plat {
 	int devfn;
 	unsigned short vendor;
 	unsigned short device;
diff --git a/include/power/acpi_pmc.h b/include/power/acpi_pmc.h
index 222288b..64176d7 100644
--- a/include/power/acpi_pmc.h
+++ b/include/power/acpi_pmc.h
@@ -180,7 +180,7 @@
  */
 int pmc_global_reset_set_enable(struct udevice *dev, bool enable);
 
-int pmc_ofdata_to_uc_platdata(struct udevice *dev);
+int pmc_ofdata_to_uc_plat(struct udevice *dev);
 
 int pmc_disable_tco_base(ulong tco_base);
 
diff --git a/include/regmap.h b/include/regmap.h
index c6258fa..8216de0 100644
--- a/include/regmap.h
+++ b/include/regmap.h
@@ -373,7 +373,7 @@
 int regmap_init_mem(ofnode node, struct regmap **mapp);
 
 /**
- * regmap_init_mem_platdata() - Set up a new memory register map for
+ * regmap_init_mem_plat() - Set up a new memory register map for
  *				of-platdata
  *
  * @dev:	Device that uses this map
@@ -388,8 +388,8 @@
  * Use regmap_uninit() to free it.
  *
  */
-int regmap_init_mem_platdata(struct udevice *dev, fdt_val_t *reg, int count,
-			     struct regmap **mapp);
+int regmap_init_mem_plat(struct udevice *dev, fdt_val_t *reg, int count,
+			 struct regmap **mapp);
 
 int regmap_init_mem_index(ofnode node, struct regmap **mapp, int index);
 
diff --git a/include/scsi.h b/include/scsi.h
index 96cb726..90cec99 100644
--- a/include/scsi.h
+++ b/include/scsi.h
@@ -162,14 +162,14 @@
 #define SCSI_WRITE_SAME	0x41		/* Write Same (O) */
 
 /**
- * struct scsi_platdata - stores information about SCSI controller
+ * struct scsi_plat - stores information about SCSI controller
  *
  * @base: Controller base address
  * @max_lun: Maximum number of logical units
  * @max_id: Maximum number of target ids
  * @max_bytes_per_req: Maximum number of bytes per read/write request
  */
-struct scsi_platdata {
+struct scsi_plat {
 	unsigned long base;
 	unsigned long max_lun;
 	unsigned long max_id;
diff --git a/include/spi.h b/include/spi.h
index 85a785e..6b42b3e 100644
--- a/include/spi.h
+++ b/include/spi.h
@@ -45,7 +45,7 @@
 };
 
 /**
- * struct dm_spi_platdata - platform data for all SPI slaves
+ * struct dm_spi_plat - platform data for all SPI slaves
  *
  * This describes a SPI slave, a child device of the SPI bus. To obtain this
  * struct from a spi_slave, use dev_get_parent_plat(dev) or
@@ -58,7 +58,7 @@
  * @max_hz:	Maximum bus speed that this slave can tolerate
  * @mode:	SPI mode to use for this device (see SPI mode flags)
  */
-struct dm_spi_slave_platdata {
+struct dm_spi_slave_plat {
 	unsigned int cs;
 	uint max_hz;
 	uint mode;
@@ -609,8 +609,7 @@
  * @node:	Node offset to read from
  * @plat:	Place to put the decoded information
  */
-int spi_slave_of_to_plat(struct udevice *dev,
-			 struct dm_spi_slave_platdata *plat);
+int spi_slave_of_to_plat(struct udevice *dev, struct dm_spi_slave_plat *plat);
 
 /**
  * spi_cs_info() - Check information on a chip select
diff --git a/include/syscon.h b/include/syscon.h
index 3df96e3..2e02199 100644
--- a/include/syscon.h
+++ b/include/syscon.h
@@ -33,7 +33,7 @@
  *
  * Update: 64-bit is now supported and we have an education crisis.
  */
-struct syscon_base_platdata {
+struct syscon_base_plat {
 	fdt_val_t reg[2];
 };
 #endif
diff --git a/include/usb.h b/include/usb.h
index 9e1ec53..b3851fd 100644
--- a/include/usb.h
+++ b/include/usb.h
@@ -597,16 +597,16 @@
 
 #if CONFIG_IS_ENABLED(DM_USB)
 /**
- * struct usb_platdata - Platform data about a USB controller
+ * struct usb_plat - Platform data about a USB controller
  *
  * Given a USB controller (UCLASS_USB) dev this is dev_get_plat(dev)
  */
-struct usb_platdata {
+struct usb_plat {
 	enum usb_init_type init_type;
 };
 
 /**
- * struct usb_dev_platdata - Platform data about a USB device
+ * struct usb_dev_plat - Platform data about a USB device
  *
  * Given a USB device dev this structure is dev_get_parent_plat(dev).
  * This is used by sandbox to provide emulation data also.
@@ -617,7 +617,7 @@
  * @strings:	List of descriptor strings (for sandbox emulation purposes)
  * @desc_list:	List of descriptors (for sandbox emulation purposes)
  */
-struct usb_dev_platdata {
+struct usb_dev_plat {
 	struct usb_device_id id;
 	int devnum;
 	/*
@@ -659,14 +659,14 @@
 };
 
 /**
- * struct usb_emul_platdata - platform data about the USB emulator
+ * struct usb_emul_plat - platform data about the USB emulator
  *
  * Given a USB emulator (UCLASS_USB_EMUL) 'dev', this is
  * dev_get_uclass_plat(dev).
  *
  * @port1:	USB emulator device port number on the parent hub
  */
-struct usb_emul_platdata {
+struct usb_emul_plat {
 	int port1;	/* Port number (numbered from 1) */
 };
 
diff --git a/include/vbe.h b/include/vbe.h
index f420f49..1631260 100644
--- a/include/vbe.h
+++ b/include/vbe.h
@@ -104,10 +104,10 @@
 extern struct vbe_mode_info mode_info;
 
 struct video_priv;
-struct video_uc_platdata;
+struct video_uc_plat;
 int vbe_setup_video_priv(struct vesa_mode_info *vesa,
 			 struct video_priv *uc_priv,
-			 struct video_uc_platdata *plat);
+			 struct video_uc_plat *plat);
 int vbe_setup_video(struct udevice *dev, int (*int15_handler)(void));
 
 #endif
diff --git a/include/video.h b/include/video.h
index 31a12bd..7b7f62a 100644
--- a/include/video.h
+++ b/include/video.h
@@ -18,7 +18,7 @@
 struct udevice;
 
 /**
- * struct video_uc_platdata - uclass platform data for a video device
+ * struct video_uc_plat - uclass platform data for a video device
  *
  * This holds information that the uclass needs to know about each device. It
  * is accessed using dev_get_uclass_plat(dev). See 'Theory of operation' at
@@ -31,7 +31,7 @@
  * @copy_base: Base address of a hardware copy of the frame buffer. See
  *	CONFIG_VIDEO_COPY.
  */
-struct video_uc_platdata {
+struct video_uc_plat {
 	uint align;
 	uint size;
 	ulong base;
@@ -77,7 +77,7 @@
  * @fb:		Frame buffer
  * @fb_size:	Frame buffer size
  * @copy_fb:	Copy of the frame buffer to keep up to date; see struct
- *		video_uc_platdata
+ *		video_uc_plat
  * @line_length:	Length of each frame buffer line, in bytes. This can be
  *		set by the driver, but if not, the uclass will set it after
  *		probing
