| /* Copyright (c) 2018-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 LINUX_BG_CHAR_H |
| #define LINUX_BG_CHAR_H |
| #define BGCOM_REG_READ 0 |
| #define BGCOM_AHB_READ 1 |
| #define BGCOM_AHB_WRITE 2 |
| #define BGCOM_SET_SPI_FREE 3 |
| #define BGCOM_SET_SPI_BUSY 4 |
| #define BGCOM_REG_WRITE 5 |
| #define BGCOM_SOFT_RESET 6 |
| #define BGCOM_MODEM_DOWN2_BG 7 |
| #define BGCOM_TWM_EXIT 8 |
| #define BGCOM_BG_APP_RUNNING 9 |
| #define BGCOM_ADSP_DOWN2_BG 10 |
| #define BGCOM_BG_WEAR_LOAD 11 |
| #define BGCOM_BG_WEAR_TWM_LOAD 12 |
| #define BGCOM_BG_WEAR_UNLOAD 13 |
| #define EXCHANGE_CODE 'V' |
| |
| struct bg_ui_data { |
| uint64_t __user write; |
| uint64_t __user result; |
| uint32_t bg_address; |
| uint32_t cmd; |
| uint32_t num_of_words; |
| }; |
| |
| enum bg_event_type { |
| BG_BEFORE_POWER_DOWN = 1, |
| BG_AFTER_POWER_DOWN, |
| BG_BEFORE_POWER_UP, |
| BG_AFTER_POWER_UP, |
| MODEM_BEFORE_POWER_DOWN, |
| MODEM_AFTER_POWER_UP, |
| ADSP_BEFORE_POWER_DOWN, |
| ADSP_AFTER_POWER_UP, |
| TWM_BG_AFTER_POWER_UP, |
| }; |
| |
| #define REG_READ \ |
| _IOWR(EXCHANGE_CODE, BGCOM_REG_READ, \ |
| struct bg_ui_data) |
| #define AHB_READ \ |
| _IOWR(EXCHANGE_CODE, BGCOM_AHB_READ, \ |
| struct bg_ui_data) |
| #define AHB_WRITE \ |
| _IOW(EXCHANGE_CODE, BGCOM_AHB_WRITE, \ |
| struct bg_ui_data) |
| #define SET_SPI_FREE \ |
| _IOR(EXCHANGE_CODE, BGCOM_SET_SPI_FREE, \ |
| struct bg_ui_data) |
| #define SET_SPI_BUSY \ |
| _IOR(EXCHANGE_CODE, BGCOM_SET_SPI_BUSY, \ |
| struct bg_ui_data) |
| #define REG_WRITE \ |
| _IOWR(EXCHANGE_CODE, BGCOM_REG_WRITE, \ |
| struct bg_ui_data) |
| #define BG_SOFT_RESET \ |
| _IOWR(EXCHANGE_CODE, BGCOM_SOFT_RESET, \ |
| struct bg_ui_data) |
| #define BG_TWM_EXIT \ |
| _IOWR(EXCHANGE_CODE, BGCOM_TWM_EXIT, \ |
| struct bg_ui_data) |
| #define BG_APP_RUNNING \ |
| _IOWR(EXCHANGE_CODE, BGCOM_BG_APP_RUNNING, \ |
| struct bg_ui_data) |
| #define BG_MODEM_DOWN2_BG_DONE \ |
| _IOWR(EXCHANGE_CODE, BGCOM_MODEM_DOWN2_BG, \ |
| struct bg_ui_data) |
| #define BG_WEAR_LOAD \ |
| _IOWR(EXCHANGE_CODE, BGCOM_BG_WEAR_LOAD, \ |
| struct bg_ui_data) |
| #define BG_WEAR_TWM_LOAD \ |
| _IOWR(EXCHANGE_CODE, BGCOM_BG_WEAR_TWM_LOAD, \ |
| struct bg_ui_data) |
| #define BG_WEAR_UNLOAD \ |
| _IOWR(EXCHANGE_CODE, BGCOM_BG_WEAR_UNLOAD, \ |
| struct bg_ui_data) |
| #define BG_ADSP_DOWN2_BG_DONE \ |
| _IOWR(EXCHANGE_CODE, BGCOM_ADSP_DOWN2_BG, \ |
| struct bg_ui_data) |
| #endif |