blob: 6858d0043d308b184ffabfb9719696cfd32a182e [file] [log] [blame]
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -07001/* Copyright (C) 2010 Google, Inc.
Duy Truong790f06d2013-02-13 16:38:12 -08002 * Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -07003 * 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 {
Kenneth Heitke84245ed2012-01-12 13:58:58 -070033 const char *rsl_id;
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070034 struct msm_ssbi_slave_info slave;
35 enum msm_ssbi_controller_type controller_type;
36};
37
38#ifdef CONFIG_MSM_SSBI
39int msm_ssbi_write(struct device *dev, u16 addr, u8 *buf, int len);
40int msm_ssbi_read(struct device *dev, u16 addr, u8 *buf, int len);
41#else
42static inline int msm_ssbi_write(struct device *dev, u16 addr, u8 *buf, int len)
43{
44 return -ENXIO;
45}
46static inline int msm_ssbi_read(struct device *dev, u16 addr, u8 *buf, int len)
47{
48 return -ENXIO;
49}
50#endif
51#endif