diff --git a/drivers/net/pfe_eth/pfe_driver.c b/drivers/net/pfe_eth/pfe_driver.c
index 6f443b4..5e14f82 100644
--- a/drivers/net/pfe_eth/pfe_driver.c
+++ b/drivers/net/pfe_eth/pfe_driver.c
@@ -25,7 +25,7 @@
  * @param[out] pkt_ptr - Pointer to store rx packet
  * @param[out] phy_port - Pointer to store recv phy port
  *
- * @return -1 if no packet, else return length of packet.
+ * Return: -1 if no packet, else return length of packet.
  */
 int pfe_recv(uchar **pkt_ptr, int *phy_port)
 {
@@ -121,7 +121,7 @@
  * @param[in] data	Pointer to the data
  * @param[in] length	Length of the ethernet packet to be transferred.
  *
- * @return -1 if tx Q is full, else returns the tx location where the pkt is
+ * Return: -1 if tx Q is full, else returns the tx location where the pkt is
  * placed.
  */
 int pfe_send(int phy_port, void *data, int length)
@@ -190,7 +190,7 @@
  *  locations
  *  if success, moves the tx_to_send to next location.
  *
- * @return -1 if TX ownership bit is not cleared by hw.
+ * Return: -1 if TX ownership bit is not cleared by hw.
  * else on success (tx done completion) return zero.
  */
 int pfe_tx_done(void)
@@ -557,7 +557,7 @@
  *
  * @param[in]	edev	Pointer to eth device structure.
  *
- * @return 0, on success.
+ * Return: 0, on success.
  */
 static int pfe_hw_init(struct pfe_ddr_address *pfe_addr)
 {
diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c
index 0c27a66..d338b36 100644
--- a/drivers/net/pfe_eth/pfe_eth.c
+++ b/drivers/net/pfe_eth/pfe_eth.c
@@ -101,7 +101,7 @@
  *
  * @param[in]   edev    Pointer to eth device structure.
  *
- * @return      none
+ * Return:      none
  */
 static inline void pfe_eth_stop(struct udevice *dev)
 {
diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c
index 93e5ea5..6669048 100644
--- a/drivers/net/pfe_eth/pfe_firmware.c
+++ b/drivers/net/pfe_eth/pfe_firmware.c
@@ -37,7 +37,7 @@
  * @param pe_mask	Mask of PE id's to load firmware to
  * @param pfe_firmware	Pointer to the firmware image
  *
- * @return		0 on success, a negative value on error
+ * Return:		0 on success, a negative value on error
  */
 static int pfe_load_elf(int pe_mask, uint8_t *pfe_firmware)
 {
@@ -99,7 +99,7 @@
  * @param size pointer to size of the firmware
  * @param fw_name pfe firmware name, either class or tmu
  *
- * @return 0 on success, a negative value on error
+ * Return: 0 on success, a negative value on error
  */
 static int pfe_get_fw(const void **data,
 		      size_t *size, char *fw_name)
@@ -148,7 +148,7 @@
 /*
  * Check PFE FIT image
  *
- * @return 0 on success, a negative value on error
+ * Return: 0 on success, a negative value on error
  */
 static int pfe_fit_check(void)
 {
@@ -248,7 +248,7 @@
  * firmware files
  * Takes PE's out of reset
  *
- * @return 0 on success, a negative value on error
+ * Return: 0 on success, a negative value on error
  */
 int pfe_firmware_init(void)
 {
diff --git a/drivers/net/pfe_eth/pfe_hw.c b/drivers/net/pfe_eth/pfe_hw.c
index 722f5c2..4db6f31 100644
--- a/drivers/net/pfe_eth/pfe_hw.c
+++ b/drivers/net/pfe_eth/pfe_hw.c
@@ -128,7 +128,7 @@
  * @param[in] addr		PMEM read address (must be aligned on size)
  * @param[in] size		Number of bytes to read (maximum 4, must not
  *				cross 32bit boundaries)
- * @return			the data read (in PE endianness, i.e BE).
+ * Return:			the data read (in PE endianness, i.e BE).
  */
 u32 pe_pmem_read(int id, u32 addr, u8 size)
 {
@@ -176,7 +176,7 @@
  * @param[in] addr		DMEM read address (must be aligned on size)
  * @param[in] size		Number of bytes to read (maximum 4, must not
  *				cross 32bit boundaries)
- * @return			the data read (in PE endianness, i.e BE).
+ * Return:			the data read (in PE endianness, i.e BE).
  */
 u32 pe_dmem_read(int id, u32 addr, u8 size)
 {
@@ -222,7 +222,7 @@
  * through indirect access registers.
  * @param[in] addr	Address to read from (must be aligned on size)
  * @param[in] size	Number of bytes to read (1, 2 or 4)
- * @return		the read data
+ * Return:		the read data
  */
 static u32 class_bus_read(u32 addr, u8 size)
 {
