#include <linux/kernel.h>
#include <linux/rmi.h>
#include <linux/firmware.h>
#include <linux/unaligned.h>
#include <linux/bitops.h>
#include "rmi_driver.h"
#include "rmi_f34.h"
static int rmi_f34_write_bootloader_id(struct f34_data *f34)
{ … }
static int rmi_f34_command(struct f34_data *f34, u8 command,
unsigned int timeout, bool write_bl_id)
{ … }
static irqreturn_t rmi_f34_attention(int irq, void *ctx)
{ … }
static int rmi_f34_write_blocks(struct f34_data *f34, const void *data,
int block_count, u8 command)
{ … }
static int rmi_f34_write_firmware(struct f34_data *f34, const void *data)
{ … }
static int rmi_f34_write_config(struct f34_data *f34, const void *data)
{ … }
static int rmi_f34_enable_flash(struct f34_data *f34)
{ … }
static int rmi_f34_flash_firmware(struct f34_data *f34,
const struct rmi_f34_firmware *syn_fw)
{ … }
static int rmi_f34_update_firmware(struct f34_data *f34,
const struct firmware *fw)
{ … }
static int rmi_f34_status(struct rmi_function *fn)
{ … }
static ssize_t rmi_driver_bootloader_id_show(struct device *dev,
struct device_attribute *dattr,
char *buf)
{ … }
static DEVICE_ATTR(bootloader_id, 0444, rmi_driver_bootloader_id_show, NULL);
static ssize_t rmi_driver_configuration_id_show(struct device *dev,
struct device_attribute *dattr,
char *buf)
{ … }
static DEVICE_ATTR(configuration_id, 0444,
rmi_driver_configuration_id_show, NULL);
static int rmi_firmware_update(struct rmi_driver_data *data,
const struct firmware *fw)
{ … }
static ssize_t rmi_driver_update_fw_store(struct device *dev,
struct device_attribute *dattr,
const char *buf, size_t count)
{ … }
static DEVICE_ATTR(update_fw, 0200, NULL, rmi_driver_update_fw_store);
static ssize_t rmi_driver_update_fw_status_show(struct device *dev,
struct device_attribute *dattr,
char *buf)
{ … }
static DEVICE_ATTR(update_fw_status, 0444,
rmi_driver_update_fw_status_show, NULL);
static struct attribute *rmi_firmware_attrs[] = …;
static const struct attribute_group rmi_firmware_attr_group = …;
static int rmi_f34_probe(struct rmi_function *fn)
{ … }
int rmi_f34_create_sysfs(struct rmi_device *rmi_dev)
{ … }
void rmi_f34_remove_sysfs(struct rmi_device *rmi_dev)
{ … }
struct rmi_function_handler rmi_f34_handler = …;