GNU Linux-libre 4.9.337-gnu1
[releases.git] / drivers / staging / greybus / arche_platform.h
1 /*
2  * Arche Platform driver to enable Unipro link.
3  *
4  * Copyright 2015-2016 Google Inc.
5  * Copyright 2015-2016 Linaro Ltd.
6  *
7  * Released under the GPLv2 only.
8  */
9
10 #ifndef __ARCHE_PLATFORM_H
11 #define __ARCHE_PLATFORM_H
12
13 #include "timesync.h"
14
15 enum arche_platform_state {
16         ARCHE_PLATFORM_STATE_OFF,
17         ARCHE_PLATFORM_STATE_ACTIVE,
18         ARCHE_PLATFORM_STATE_STANDBY,
19         ARCHE_PLATFORM_STATE_FW_FLASHING,
20         ARCHE_PLATFORM_STATE_TIME_SYNC,
21 };
22
23 int arche_platform_change_state(enum arche_platform_state state,
24                                 struct gb_timesync_svc *pdata);
25
26 extern int (*arche_platform_change_state_cb)(enum arche_platform_state state,
27                                              struct gb_timesync_svc *pdata);
28 int __init arche_apb_init(void);
29 void __exit arche_apb_exit(void);
30
31 /* Operational states for the APB device */
32 int apb_ctrl_coldboot(struct device *dev);
33 int apb_ctrl_fw_flashing(struct device *dev);
34 int apb_ctrl_standby_boot(struct device *dev);
35 void apb_ctrl_poweroff(struct device *dev);
36 void apb_bootret_assert(struct device *dev);
37 void apb_bootret_deassert(struct device *dev);
38
39 #endif  /* __ARCHE_PLATFORM_H */