blob: 7acbe80a75990e62976c24887881ad4e30247203 [file] [log] [blame]
/*
* Copyright (C) 2018, Samsung Electronics Co. Ltd. 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 as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* 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 __SSP_PLATFORM_H__
#define __SSP_PLATFORM_H__
#include <linux/kernel.h>
struct ssp_data;
#define SSP_BOOTLOADER_FILE "sensorhub/shub_bl.fw"
void *ssp_device_probe(struct device *);
void ssp_device_remove(void *ssp_data);
void ssp_device_suspend(void *ssp_data);
void ssp_device_resume(void *ssp_data);
void ssp_platform_init(void *ssp_data, void *);
void ssp_handle_recv_packet(void *ssp_data, char *, int);
void ssp_platform_start_refrsh_task(void *ssp_data);
int sensorhub_reset(void *ssp_data);
int sensorhub_shutdown(void *ssp_data);
int sensorhub_firmware_download(void *ssp_data);
int sensorhub_comms_read(void *ssp_data, u8 *buf, int length, int timeout);
int sensorhub_comms_write(void *ssp_data, u8 *buf, int length, int timeout);
void save_ram_dump(void *ssp_data);
int get_sensorhub_dump_size(void);
void *get_sensorhub_dump_address(void);
void ssp_dump_write_file(void *ssp_data, void *dump_data, int dump_size, int err_type);
bool is_sensorhub_working(void *ssp_data);
int ssp_download_firmware(void *ssp_data, struct device *dev, void *addr);
void ssp_set_firmware_name(void *ssp_data, const char *fw_name);
#endif /* __SSP_PLATFORM_H__ */