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 #include #include -#include +#include #include #include @@ -73,8 +73,8 @@ 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 + * + * 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__ */