diff --git a/drivers/core/device.c b/drivers/core/device.c
index ef41a9be3edc3d9cb20247f5026bd720a265d5a7..32e80e82b59c99f9ac5734c8f3dadc7c3b0c5f28 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -109,6 +109,8 @@ int device_bind(struct udevice *parent, struct driver *drv, const char *name,
 	dev->seq = -1;
 #ifdef CONFIG_OF_CONTROL
 	dev->req_seq = fdtdec_get_int(gd->fdt_blob, of_offset, "reg", -1);
+	if (!IS_ERR_VALUE(dev->req_seq))
+		dev->req_seq &= INT_MAX;
 	if (uc->uc_drv->name && of_offset != -1) {
 		fdtdec_get_alias_seq(gd->fdt_blob, uc->uc_drv->name, of_offset,
 				     &dev->req_seq);