blob: bd12345b82a2684ed7fe53e35d92eb80a9d472db [file] [log] [blame]
Greg Kroah-Hartman1e5dd1f2015-12-30 13:38:33 -08001/*
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
Bryan O'Donoghue970dc852016-06-05 14:03:26 +010013#include "timesync.h"
14
Vaibhav Hirematha821adb2016-02-13 02:04:02 +053015enum arche_platform_state {
16 ARCHE_PLATFORM_STATE_OFF,
17 ARCHE_PLATFORM_STATE_ACTIVE,
18 ARCHE_PLATFORM_STATE_STANDBY,
Vaibhav Hiremath7691fed2016-02-13 02:04:08 +053019 ARCHE_PLATFORM_STATE_FW_FLASHING,
Vaibhav Hiremath886aba52016-05-05 15:34:58 +010020 ARCHE_PLATFORM_STATE_TIME_SYNC,
Vaibhav Hirematha821adb2016-02-13 02:04:02 +053021};
22
Bryan O'Donoghue970dc852016-06-05 14:03:26 +010023int arche_platform_change_state(enum arche_platform_state state,
24 struct gb_timesync_svc *pdata);
Vaibhav Hiremath65fd5a52016-02-13 02:04:16 +053025
Bryan O'Donoghue970dc852016-06-05 14:03:26 +010026extern int (*arche_platform_change_state_cb)(enum arche_platform_state state,
27 struct gb_timesync_svc *pdata);
Viresh Kumar7b62b612016-04-20 11:48:37 +053028int __init arche_apb_init(void);
29void __exit arche_apb_exit(void);
Vaibhav Hiremath65fd5a52016-02-13 02:04:16 +053030
31/* Operational states for the APB device */
32int apb_ctrl_coldboot(struct device *dev);
33int apb_ctrl_fw_flashing(struct device *dev);
34int apb_ctrl_standby_boot(struct device *dev);
35void apb_ctrl_poweroff(struct device *dev);
Bryan O'Donoghue970dc852016-06-05 14:03:26 +010036void apb_bootret_assert(struct device *dev);
37void apb_bootret_deassert(struct device *dev);
Vaibhav Hiremath65fd5a52016-02-13 02:04:16 +053038
Greg Kroah-Hartman1e5dd1f2015-12-30 13:38:33 -080039#endif /* __ARCHE_PLATFORM_H */