diff --git a/fs/cbfs/cbfs.c b/fs/cbfs/cbfs.c
index 3e905c7..714f4ba 100644
--- a/fs/cbfs/cbfs.c
+++ b/fs/cbfs/cbfs.c
@@ -85,7 +85,7 @@
  * @node: Node to fill
  * @start: Pointer to the start of the CBFS file in memory
  * @header: Pointer to the header information (in our enddianess)
- * @return 0 if OK, -EBADF if the header is too small
+ * Return: 0 if OK, -EBADF if the header is too small
  */
 static int fill_node(struct cbfs_cachenode *node, void *start,
 		     struct cbfs_fileheader *header)
@@ -142,7 +142,7 @@
  * @param used		A pointer to the count of of bytes scanned through,
  *			including the file if one is found.
  *
- * @return 0 if a file is found, -ENOENT if one isn't, -EBADF if a bad header
+ * Return: 0 if a file is found, -ENOENT if one isn't, -EBADF if a bad header
  *	is found.
  */
 static int file_cbfs_next_file(struct cbfs_priv *priv, void *start, int size,
@@ -234,7 +234,7 @@
  *
  * @priv: Private data, which is inited by this function
  * @addr: Address of CBFS header in memory-mapped SPI flash
- * @return 0 if OK, -ENXIO if the header is bad
+ * Return: 0 if OK, -ENXIO if the header is bad
  */
 static int load_header(struct cbfs_priv *priv, ulong addr)
 {
@@ -259,7 +259,7 @@
  *
  * @priv: Private data, which is inited by this function
  * @end_of_rom: Address of the last byte of the ROM (typically 0xffffffff)
- * @return 0 if OK, -ENXIO if the header is bad
+ * Return: 0 if OK, -ENXIO if the header is bad
  */
 static int file_cbfs_load_header(struct cbfs_priv *priv, ulong end_of_rom)
 {
@@ -279,7 +279,7 @@
  *
  * @priv: Private data, which is inited by this function
  * @base: Address of the first byte of the ROM (e.g. 0xff000000)
- * @return 0 if OK, -ENXIO if the header is bad
+ * Return: 0 if OK, -ENXIO if the header is bad
  */
 static int cbfs_load_header_ptr(struct cbfs_priv *priv, ulong base)
 {
diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index 65f77c4..df9ea2c 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -735,7 +735,7 @@
  *
  * @itr: iterator to initialize
  * @fsdata: filesystem data for the partition
- * @return 0 on success, else -errno
+ * Return: 0 on success, else -errno
  */
 static int fat_itr_root(fat_itr *itr, fsdata *fsdata)
 {
@@ -954,7 +954,7 @@
  * Must be called once on a new iterator before the cursor is valid.
  *
  * @itr: the iterator to iterate
- * @return boolean, 1 if success or 0 if no more entries in the
+ * Return: boolean, 1 if success or 0 if no more entries in the
  *    current directory
  */
 static int fat_itr_next(fat_itr *itr)
@@ -1024,7 +1024,7 @@
  * fat_itr_isdir() - is current cursor position pointing to a directory
  *
  * @itr: the iterator
- * @return true if cursor is at a directory
+ * Return: true if cursor is at a directory
  */
 static int fat_itr_isdir(fat_itr *itr)
 {
@@ -1052,7 +1052,7 @@
  * @itr: iterator initialized to root
  * @path: the requested path
  * @type: bitmask of allowable file types
- * @return 0 on success or -errno
+ * Return: 0 on success or -errno
  */
 static int fat_itr_resolve(fat_itr *itr, const char *path, unsigned type)
 {
