From ed4da3f2de93bf445f10b762aeb1fc75967b5660 Mon Sep 17 00:00:00 2001 From: Jean-Christophe PLAGNIOL-VILLARD Date: Tue, 12 Feb 2013 14:03:26 +0100 Subject: [PATCH] sp804: introduce amba_is_arm_sp804 to detect if the sp804 is present at the address Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Sascha Hauer --- 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 d9a30c228..fedcb6483 100644 --- a/drivers/clocksource/amba-sp804.c +++ b/drivers/clocksource/amba-sp804.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include @@ -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 000000000..aba550c37 --- /dev/null +++ b/include/linux/amba/sp804.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD + * + * GPLv2 only + */ + +#ifndef __AMBA_SP804_H__ +#define __AMBA_SP804_H__ + +#include +#include + +#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__ */