[PATCH 2/3] sp804: introduce amba_is_arm_sp804 to detect if the sp804 is present at the address

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Tue Feb 12 08:03:26 EST 2013


Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 drivers/clocksource/amba-sp804.c |    6 +++---
 include/linux/amba/sp804.h       |   30 ++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+), 3 deletions(-)
 create mode 100644 include/linux/amba/sp804.h

diff --git a/drivers/clocksource/amba-sp804.c b/drivers/clocksource/amba-sp804.c
index d9a30c2..fedcb64 100644
--- a/drivers/clocksource/amba-sp804.c
+++ b/drivers/clocksource/amba-sp804.c
@@ -9,7 +9,7 @@
 #include <io.h>
 #include <driver.h>
 #include <errno.h>
-#include <linux/amba/bus.h>
+#include <linux/amba/sp804.h>
 #include <linux/clk.h>
 #include <linux/err.h>
 
@@ -73,8 +73,8 @@ static int sp804_probe(struct amba_device *dev, const struct amba_id *id)
 
 static struct amba_id sp804_ids[] = {
 	{
-		.id	= 0x00141804,
-		.mask	= 0x00ffffff,
+		.id	= AMBA_ARM_SP804_ID,
+		.mask	= AMBA_ARM_SP804_ID_MASK,
 	},
 	{ 0, 0 },
 };
diff --git a/include/linux/amba/sp804.h b/include/linux/amba/sp804.h
new file mode 100644
index 0000000..aba550c
--- /dev/null
+++ b/include/linux/amba/sp804.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnio at jcrosoft.com>
+ *
+ * GPLv2 only
+ */
+
+#ifndef __AMBA_SP804_H__
+#define __AMBA_SP804_H__
+
+#include <linux/amba/bus.h>
+#include <sizes.h>
+
+#define AMBA_ARM_SP804_ID	0x00141804
+#define AMBA_ARM_SP804_ID_MASK	0x00ffffff
+
+static inline bool amba_is_arm_sp804(void __iomem *base)
+{
+	u32 pid, cid;
+	u32 size = SZ_4K;
+
+	cid = amba_device_get_cid(base, size);
+
+	if (cid != AMBA_CID)
+		return false;
+
+	pid = amba_device_get_pid(base, size);
+
+	return (pid & AMBA_ARM_SP804_ID_MASK) == AMBA_ARM_SP804_ID;
+}
+#endif /* __AMBA_SP804_H__ */
-- 
1.7.10.4




More information about the barebox mailing list