diff --git a/kernel/spec-pci.c b/kernel/spec-pci.c
index cf82b83ad838ed6d2c0979d59fd947be8f11633d..8678b498d856fe013e77e2266ec671b7c93c6ab2 100644
--- a/kernel/spec-pci.c
+++ b/kernel/spec-pci.c
@@ -144,6 +144,9 @@ static int spec_probe(struct pci_dev *pdev,
 	if (ret)
 		goto out_unmap;
 
+	snprintf(spec->name, SPEC_NAME_LEN, "spec-%04x",
+		 spec->pdev->bus->number << 8 | spec->pdev->devfn);
+
 	/* Done */
 	pci_set_drvdata(pdev, spec);
 	return 0;
diff --git a/kernel/spec.h b/kernel/spec.h
index e0ab02a7fe011d9ced7a1170043a2dd40026bddc..35ac77987d75ce9627835678e53f92fc18a3d1cb 100644
--- a/kernel/spec.h
+++ b/kernel/spec.h
@@ -22,6 +22,8 @@
 
 #define SPEC_DEFAULT_LM32_ADDR 0x80000 /* used if "1" is passed */
 
+#define SPEC_NAME_LEN 10
+
 /* Our device structure */
 struct spec_dev {
 	struct pci_dev		*pdev;
@@ -35,6 +37,8 @@ struct spec_dev {
 	struct gpio_chip	*gpio;
 	struct vic_irq_controller *vic;
 	spinlock_t		irq_lock;
+
+	char                    name[SPEC_NAME_LEN];
 };
 
 #define SPEC_FLAG_FAKE_EEPROM		0x00000001