Files
kernel-tenderloin-3.0/include/linux/msm_ssbi.h
Kenneth Heitke 84245ed3ba ssbi: add remote spinlock support
Remote spinlocks are needed for targets that share the SSBI2 controller
with other processors (i.e. modem).  Targets that have the PMIC Arbiter
are not impacted because the hardware handles the arbitration of the
different software masters.

Change-Id: I3ffd41d7d259e0745ff4d03cd99d5c4bdbc94fa6
Signed-off-by: Kenneth Heitke <kheitke@codeaurora.org>
2012-01-12 14:08:13 -07:00

52 lines
1.4 KiB
C

/* Copyright (C) 2010 Google, Inc.
* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
* Author: Dima Zavin <dima@android.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _LINUX_MSM_SSBI_H
#define _LINUX_MSM_SSBI_H
#include <linux/types.h>
struct msm_ssbi_slave_info {
const char *name;
void *platform_data;
};
enum msm_ssbi_controller_type {
MSM_SBI_CTRL_SSBI = 0,
MSM_SBI_CTRL_SSBI2,
MSM_SBI_CTRL_PMIC_ARBITER,
FSM_SBI_CTRL_SSBI,
};
struct msm_ssbi_platform_data {
const char *rsl_id;
struct msm_ssbi_slave_info slave;
enum msm_ssbi_controller_type controller_type;
};
#ifdef CONFIG_MSM_SSBI
int msm_ssbi_write(struct device *dev, u16 addr, u8 *buf, int len);
int msm_ssbi_read(struct device *dev, u16 addr, u8 *buf, int len);
#else
static inline int msm_ssbi_write(struct device *dev, u16 addr, u8 *buf, int len)
{
return -ENXIO;
}
static inline int msm_ssbi_read(struct device *dev, u16 addr, u8 *buf, int len)
{
return -ENXIO;
}
#endif
#endif