From: Michal Simek <michal.simek@xilinx.com>
Date: Thu, 29 Jul 2021 10:59:12 +0000 (+0200)
Subject: cmd: date: rtc: Update command to read the first RTC with seq 0
X-Git-Tag: v2025.01-rc5-pxa1908~1736^2~43
X-Git-Url: http://git.dujemihanovic.xyz/browse.php?a=commitdiff_plain;h=a1ae55ee7f8df911649a0cfa5eba3ea88bae92ab;p=u-boot.git

cmd: date: rtc: Update command to read the first RTC with seq 0

RTCs are using sequence number defined in aliases node. Date command with
DM_RTC enabled is looking for the first RTC with index 0. But when
RTC_EMULATION is enabled it gets likely most of the time index 0 even when
system has rtc0 device via aliases node and gets sequence number 0.
That's why extend the code to look for sequence 0 number first. If this
fails continue to use existing device with index 0.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

diff --git a/cmd/date.c b/cmd/date.c
index e377cfe165..149ca426e8 100644
--- a/cmd/date.c
+++ b/cmd/date.c
@@ -41,10 +41,13 @@ static int do_date(struct cmd_tbl *cmdtp, int flag, int argc,
 #ifdef CONFIG_DM_RTC
 	struct udevice *dev;
 
-	rcode = uclass_get_device(UCLASS_RTC, 0, &dev);
+	rcode = uclass_get_device_by_seq(UCLASS_RTC, 0, &dev);
 	if (rcode) {
-		printf("Cannot find RTC: err=%d\n", rcode);
-		return CMD_RET_FAILURE;
+		rcode = uclass_get_device(UCLASS_RTC, 0, &dev);
+		if (rcode) {
+			printf("Cannot find RTC: err=%d\n", rcode);
+			return CMD_RET_FAILURE;
+		}
 	}
 #elif defined(CONFIG_SYS_I2C_LEGACY)
 	old_bus = i2c_get_bus_num();