blob: e90398a17e8d891973f3811fccc5b6d1a90945c1 [file] [log] [blame]
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -07001/* Copyright (C) 2010 Google, Inc.
2 * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
3 * Author: Dima Zavin <dima@android.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 and
7 * only version 2 as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#ifndef _LINUX_MSM_SSBI_H
16#define _LINUX_MSM_SSBI_H
17
18#include <linux/types.h>
19
20struct msm_ssbi_slave_info {
21 const char *name;
22 void *platform_data;
23};
24
25enum msm_ssbi_controller_type {
26 MSM_SBI_CTRL_SSBI = 0,
27 MSM_SBI_CTRL_SSBI2,
28 MSM_SBI_CTRL_PMIC_ARBITER,
29 FSM_SBI_CTRL_SSBI,
30};
31
32struct msm_ssbi_platform_data {
33 struct msm_ssbi_slave_info slave;
34 enum msm_ssbi_controller_type controller_type;
35};
36
37#ifdef CONFIG_MSM_SSBI
38int msm_ssbi_write(struct device *dev, u16 addr, u8 *buf, int len);
39int msm_ssbi_read(struct device *dev, u16 addr, u8 *buf, int len);
40#else
41static inline int msm_ssbi_write(struct device *dev, u16 addr, u8 *buf, int len)
42{
43 return -ENXIO;
44}
45static inline int msm_ssbi_read(struct device *dev, u16 addr, u8 *buf, int len)
46{
47 return -ENXIO;
48}
49#endif
50#endif