/* Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. * * 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 BGRSB_H #define BGRSB_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "bgrsb_rpmsg.h" struct event { uint8_t sub_id; int16_t evnt_data; uint32_t evnt_tm; }; #define BGRSB_GLINK_INTENT_SIZE 0x04 #define BGRSB_MSG_SIZE 0x08 #define TIMEOUT_MS 2000 #define BGRSB_LDO15_VTG_MIN_UV 3000000 #define BGRSB_LDO15_VTG_MAX_UV 3000000 #define BGRSB_LDO11_VTG_MIN_UV 1800000 #define BGRSB_LDO11_VTG_MAX_UV 1800000 #define BGRSB_BGWEAR_SUBSYS "bg-wear" #define BGRSB_POWER_DISABLE 0 #define BGRSB_POWER_ENABLE 1 #define BGRSB_POWER_CALIBRATION 2 #define BGRSB_BTTN_CONFIGURE 5 #define BGRSB_IN_TWM 8 #define BGRSB_OUT_TWM 9 struct bgrsb_regulator { struct regulator *regldo11; struct regulator *regldo15; }; enum ldo_task { BGRSB_HW_TURN_ON, BGRSB_ENABLE_WHEEL_EVENTS, BGRSB_HW_TURN_OFF, BGRSB_DISABLE_WHEEL_EVENTS, BGRSB_NO_ACTION }; enum bgrsb_state { BGRSB_STATE_UNKNOWN, BGRSB_STATE_INIT, BGRSB_STATE_LDO11_ENABLED, BGRSB_STATE_RSB_CONFIGURED, BGRSB_STATE_RSB_ENABLED }; struct bgrsb_msg { uint32_t cmd_id; uint32_t data; }; void bgrsb_send_input(struct event *evnt); void bgrsb_notify_glink_channel_state(bool state); void bgrsb_rx_msg(void *data, int len); #endif /* BGCOM_H */