diff --git a/drivers/input/cros_ec_keyb.c b/drivers/input/cros_ec_keyb.c
index dc3b08c..c485346 100644
--- a/drivers/input/cros_ec_keyb.c
+++ b/drivers/input/cros_ec_keyb.c
@@ -38,7 +38,7 @@
  * @param keys		List of keys that we have detected
  * @param max_count	Maximum number of keys to return
  * @param samep		Set to true if this scan repeats the last, else false
- * @return number of pressed keys, 0 for none, -EIO on error
+ * Return: number of pressed keys, 0 for none, -EIO on error
  */
 static int check_for_keys(struct udevice *dev, struct key_matrix_key *keys,
 			  int max_count, bool *samep)
@@ -112,7 +112,7 @@
  * characters
  *
  * @param input		Input configuration
- * @return 1, to indicate that we have something to look at
+ * Return: 1, to indicate that we have something to look at
  */
 int cros_ec_kbc_check(struct input_config *input)
 {
@@ -176,7 +176,7 @@
  * @param blob		Device tree blob
  * @param node		Node to decode from
  * @param config	Configuration data read from fdt
- * @return 0 if ok, -1 on error
+ * Return: 0 if ok, -1 on error
  */
 static int cros_ec_keyb_decode_fdt(struct udevice *dev,
 				   struct cros_ec_keyb_priv *config)
diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
index d3743dc..3563dc9 100644
--- a/drivers/input/i8042.c
+++ b/drivers/input/i8042.c
@@ -78,7 +78,7 @@
  * check_leds() - Check the keyboard LEDs and update them it needed
  *
  * @ret:	Value to return
- * @return value of @ret
+ * Return: value of @ret
  */
 static int i8042_kbd_update_leds(struct udevice *dev, int leds)
 {
@@ -199,7 +199,7 @@
  * Disables the keyboard so that key strokes no longer generate scancodes to
  * the host.
  *
- * @return 0 if ok, -1 if keyboard input was found while disabling
+ * Return: 0 if ok, -1 if keyboard input was found while disabling
  */
 static int i8042_disable(void)
 {
@@ -312,7 +312,7 @@
  * wait for the keyboard to init. We do this only when a key is first
  * read - see kbd_wait_for_fifo_init().
  *
- * @return 0 if ok, -ve on error
+ * Return: 0 if ok, -ve on error
  */
 static int i8042_kbd_probe(struct udevice *dev)
 {
diff --git a/drivers/input/input.c b/drivers/input/input.c
index c1c5e42..a4341e8 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -253,7 +253,7 @@
  * @param config	Input state
  * @param key		Key code to process
  * @param release	0 if a press, 1 if a release
- * @return pointer to keycode->ascii translation table that should be used
+ * Return: pointer to keycode->ascii translation table that should be used
  */
 static struct input_key_xlate *process_modifier(struct input_config *config,
 						int key, int release)
@@ -322,7 +322,7 @@
  * @param array	Array to search
  * @param count	Number of elements in array
  * @param key	Key value to find
- * @return element where value was first found, -1 if none
+ * Return: element where value was first found, -1 if none
  */
 static int array_search(int *array, int count, int key)
 {
@@ -347,7 +347,7 @@
  * @param count		Number of elements to sort
  * @param order		Array containing ordering elements
  * @param ocount	Number of ordering elements
- * @return number of elements in dest that are in order (these will be at the
+ * Return: number of elements in dest that are in order (these will be at the
  *	start of dest).
  */
 static int sort_array_by_ordering(int *dest, int count, int *order,
@@ -417,7 +417,7 @@
  *			be at least ANSI_CHAR_MAX bytes long, to allow for
  *			an ANSI sequence.
  * @param max_chars	Maximum number of characters to add to output_ch
- * @return number of characters output, if the key was converted, otherwise 0.
+ * Return: number of characters output, if the key was converted, otherwise 0.
  *	This may be larger than max_chars, in which case the overflow
  *	characters are not output.
  */
@@ -462,7 +462,7 @@
  *			ANSI sequences.
  * @param max_chars	Maximum number of characters to add to output_ch
  * @param same		Number of key codes which are the same
- * @return number of characters written into output_ch, or -1 if we would
+ * Return: number of characters written into output_ch, or -1 if we would
  *	exceed max_chars chars.
  */
 static int input_keycodes_to_ascii(struct input_config *config,
diff --git a/drivers/input/key_matrix.c b/drivers/input/key_matrix.c
index 4631728..e2fb2e1 100644
--- a/drivers/input/key_matrix.c
+++ b/drivers/input/key_matrix.c
@@ -22,7 +22,7 @@
  * @param config	Keyboard matrix config
  * @param keys		List of keys to check
  * @param valid		Number of valid keypresses to check
- * @return 0 if no ghosting is possible, 1 if it is
+ * Return: 0 if no ghosting is possible, 1 if it is
  */
 static int has_ghosting(struct key_matrix *config, struct key_matrix_key *keys,
 			int valid)
@@ -103,7 +103,7 @@
  * @param len           Number of entries in keycode table
  * @param map_keycode   Key code to find in the map
  * @param pos           Returns position of map_keycode, if found, else -1
- * @return map  Pointer to allocated map
+ * Return: map  Pointer to allocated map
  */
 static uchar *create_keymap(struct key_matrix *config, const u32 *data, int len,
 			    int map_keycode, int *pos)
diff --git a/drivers/input/tegra-kbc.c b/drivers/input/tegra-kbc.c
index 5113041..d4741a7 100644
--- a/drivers/input/tegra-kbc.c
+++ b/drivers/input/tegra-kbc.c
@@ -66,7 +66,7 @@
  * @param priv		Keyboard private data
  * @param fifo		Place to put fifo results
  * @param max_keycodes	Maximum number of key codes to put in the fifo
- * @return number of items put into fifo
+ * Return: number of items put into fifo
  */
 static int tegra_kbc_find_keys(struct tegra_kbd_priv *priv, int *fifo,
 			       int max_keycodes)
@@ -179,7 +179,7 @@
  * characters
  *
  * @param input		Input configuration
- * @return 1, to indicate that we have something to look at
+ * Return: 1, to indicate that we have something to look at
  */
 static int tegra_kbc_check(struct input_config *input)
 {
@@ -281,7 +281,7 @@
  * wait for the keyboard to init. We do this only when a key is first
  * read - see kbd_wait_for_fifo_init().
  *
- * @return 0 if ok, -ve on error
+ * Return: 0 if ok, -ve on error
  */
 static int tegra_kbd_probe(struct udevice *dev)
 {
