diff --git a/drivers/core/device.c b/drivers/core/device.c
index 7216963..f4ae778 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -73,7 +73,7 @@
 	dev->driver = drv;
 	dev->uclass = uc;
 
-	dev->sqq = -1;
+	dev->seq_ = -1;
 	if (CONFIG_IS_ENABLED(DM_SEQ_ALIAS) &&
 	    (uc->uc_drv->flags & DM_UC_FLAG_SEQ_ALIAS)) {
 		/*
@@ -83,13 +83,13 @@
 		if (CONFIG_IS_ENABLED(OF_CONTROL) &&
 		    !CONFIG_IS_ENABLED(OF_PLATDATA)) {
 			if (uc->uc_drv->name && ofnode_valid(node)) {
-				if (!dev_read_alias_seq(dev, &dev->sqq))
+				if (!dev_read_alias_seq(dev, &dev->seq_))
 					auto_seq = false;
 			}
 		}
 	}
 	if (auto_seq && !(uc->uc_drv->flags & DM_UC_FLAG_NO_AUTO_SEQ))
-		dev->sqq = uclass_find_next_free_seq(uc);
+		dev->seq_ = uclass_find_next_free_seq(uc);
 
 	if (drv->plat_auto) {
 		bool alloc = !plat;
@@ -658,7 +658,7 @@
 	*devp = NULL;
 
 	list_for_each_entry(dev, &parent->child_head, sibling_node) {
-		if (dev->sqq == seq) {
+		if (dev->seq_ == seq) {
 			*devp = dev;
 			return 0;
 		}
diff --git a/drivers/core/dump.c b/drivers/core/dump.c
index 7784ec0..1d4628a 100644
--- a/drivers/core/dump.c
+++ b/drivers/core/dump.c
@@ -69,7 +69,7 @@
 	printf("%-3i %c %s @ %08lx", index,
 	       dev->flags & DM_FLAG_ACTIVATED ? '*' : ' ',
 	       dev->name, (ulong)map_to_sysmem(dev));
-	if (dev->sqq != -1)
+	if (dev->seq_ != -1)
 		printf(", seq %d", dev_seq(dev));
 	puts("\n");
 }
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c
index f60bc9a..e773e34 100644
--- a/drivers/core/uclass.c
+++ b/drivers/core/uclass.c
@@ -297,8 +297,8 @@
 
 	/* Avoid conflict with existing devices */
 	list_for_each_entry(dev, &uc->dev_head, uclass_node) {
-		if (dev->sqq > max)
-			max = dev->sqq;
+		if (dev->seq_ > max)
+			max = dev->seq_;
 	}
 	/*
 	 * At this point, max will be -1 if there are no existing aliases or
@@ -323,8 +323,8 @@
 		return ret;
 
 	uclass_foreach_dev(dev, uc) {
-		log_debug("   - %d '%s'\n", dev->sqq, dev->name);
-		if (dev->sqq == seq) {
+		log_debug("   - %d '%s'\n", dev->seq_, dev->name);
+		if (dev->seq_ == seq) {
 			*devp = dev;
 			log_debug("   - found\n");
 			return 0;
diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c
index 37a2338..1f6c51f 100644
--- a/drivers/pci/pci-uclass.c
+++ b/drivers/pci/pci-uclass.c
@@ -1019,7 +1019,7 @@
 		ret = uclass_get(UCLASS_PCI, &uc);
 		if (ret)
 			return ret;
-		bus->sqq = uclass_find_next_free_seq(uc);
+		bus->seq_ = uclass_find_next_free_seq(uc);
 	}
 
 	/* For bridges, use the top-level PCI controller */
diff --git a/include/dm/device.h b/include/dm/device.h
index daebd6e..a063bba 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -136,11 +136,12 @@
  * @child_head: List of children of this device
  * @sibling_node: Next device in list of all devices
  * @flags: Flags for this device DM_FLAG_...
- * @seq: Allocated sequence number for this device (-1 = none). This is set up
+ * @seq_: Allocated sequence number for this device (-1 = none). This is set up
  * when the device is bound and is unique within the device's uclass. If the
  * device has an alias in the devicetree then that is used to set the sequence
  * number. Otherwise, the next available number is used. Sequence numbers are
- * used by certain commands that need device to be numbered (e.g. 'mmc dev')
+ * used by certain commands that need device to be numbered (e.g. 'mmc dev').
+ * (do not access outside driver model)
  * @devres_head: List of memory allocations associated with this device.
  *		When CONFIG_DEVRES is enabled, devm_kmalloc() and friends will
  *		add to this list. Memory so-allocated will be freed
@@ -163,7 +164,7 @@
 	struct list_head child_head;
 	struct list_head sibling_node;
 	uint32_t flags;
-	int sqq;
+	int seq_;
 #ifdef CONFIG_DEVRES
 	struct list_head devres_head;
 #endif
@@ -190,7 +191,7 @@
 
 static inline int dev_seq(const struct udevice *dev)
 {
-	return dev->sqq;
+	return dev->seq_;
 }
 
 /**
diff --git a/test/dm/core.c b/test/dm/core.c
index cf66e27..b274b04 100644
--- a/test/dm/core.c
+++ b/test/dm/core.c
@@ -1075,10 +1075,10 @@
 
 	list_for_each_entry(uc, &gd->uclass_root, sibling_node) {
 		list_for_each_entry(dev, &uc->dev_head, uclass_node) {
-			if (dev->sqq == -1)
+			if (dev->seq_ == -1)
 				printf("Device '%s' has no seq (%d)\n",
-				       dev->name, dev->sqq);
-			ut_assert(dev->sqq != -1);
+				       dev->name, dev->seq_);
+			ut_assert(dev->seq_ != -1);
 		}
 	}
 
