linux/drivers/input/joystick/fsia6b.c

// SPDX-License-Identifier: GPL-2.0
/*
 * FS-iA6B iBus RC receiver driver
 *
 * This driver provides all 14 channels of the FlySky FS-ia6B RC receiver
 * as analog values.
 *
 * Additionally, the channels can be converted to discrete switch values.
 * By default, it is configured for the offical FS-i6 remote control.
 * If you use a different hardware configuration, you can configure it
 * using the `switch_config` parameter.
 */

#include <linux/device.h>
#include <linux/input.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/serio.h>
#include <linux/slab.h>
#include <linux/types.h>

#define DRIVER_DESC

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();

#define IBUS_SERVO_COUNT

static char *switch_config =;
module_param(switch_config, charp, 0444);
MODULE_PARM_DESC();

static int fsia6b_axes[IBUS_SERVO_COUNT] =;

enum ibus_state {};

struct ibus_packet {};

struct fsia6b {};

static irqreturn_t fsia6b_serio_irq(struct serio *serio,
				    unsigned char data, unsigned int flags)
{}

static int fsia6b_serio_connect(struct serio *serio, struct serio_driver *drv)
{}

static void fsia6b_serio_disconnect(struct serio *serio)
{}

static const struct serio_device_id fsia6b_serio_ids[] =;

MODULE_DEVICE_TABLE(serio, fsia6b_serio_ids);

static struct serio_driver fsia6b_serio_drv =;

module_serio_driver()