#include <linux/module.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/hwspinlock.h>
#include <linux/platform_device.h>
#include "hwspinlock_internal.h"
#define U8500_MAX_SEMAPHORE …
#define RESET_SEMAPHORE …
#define HSEM_MASTER_ID …
#define HSEM_REGISTER_OFFSET …
#define HSEM_CTRL_REG …
#define HSEM_ICRALL …
#define HSEM_PROTOCOL_1 …
static int u8500_hsem_trylock(struct hwspinlock *lock)
{ … }
static void u8500_hsem_unlock(struct hwspinlock *lock)
{ … }
static void u8500_hsem_relax(struct hwspinlock *lock)
{ … }
static const struct hwspinlock_ops u8500_hwspinlock_ops = …;
static int u8500_hsem_probe(struct platform_device *pdev)
{ … }
static void u8500_hsem_remove(struct platform_device *pdev)
{ … }
static struct platform_driver u8500_hsem_driver = …;
static int __init u8500_hsem_init(void)
{ … }
postcore_initcall(u8500_hsem_init);
static void __exit u8500_hsem_exit(void)
{ … }
module_exit(u8500_hsem_exit);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;