linux/drivers/media/rc/fintek-cir.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Driver for Feature Integration Technology Inc. (aka Fintek) LPC CIR
 *
 * Copyright (C) 2011 Jarod Wilson <[email protected]>
 *
 * Special thanks to Fintek for providing hardware and spec sheets.
 * This driver is based upon the nuvoton, ite and ene drivers for
 * similar hardware.
 */

#define pr_fmt(fmt)

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pnp.h>
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <media/rc-core.h>

#include "fintek-cir.h"

/* write val to config reg */
static inline void fintek_cr_write(struct fintek_dev *fintek, u8 val, u8 reg)
{}

/* read val from config reg */
static inline u8 fintek_cr_read(struct fintek_dev *fintek, u8 reg)
{}

/* update config register bit without changing other bits */
static inline void fintek_set_reg_bit(struct fintek_dev *fintek, u8 val, u8 reg)
{}

/* enter config mode */
static inline void fintek_config_mode_enable(struct fintek_dev *fintek)
{}

/* exit config mode */
static inline void fintek_config_mode_disable(struct fintek_dev *fintek)
{}

/*
 * When you want to address a specific logical device, write its logical
 * device number to GCR_LOGICAL_DEV_NO
 */
static inline void fintek_select_logical_dev(struct fintek_dev *fintek, u8 ldev)
{}

/* write val to cir config register */
static inline void fintek_cir_reg_write(struct fintek_dev *fintek, u8 val, u8 offset)
{}

/* read val from cir config register */
static u8 fintek_cir_reg_read(struct fintek_dev *fintek, u8 offset)
{}

/* dump current cir register contents */
static void cir_dump_regs(struct fintek_dev *fintek)
{}

/* detect hardware features */
static int fintek_hw_detect(struct fintek_dev *fintek)
{}

static void fintek_cir_ldev_init(struct fintek_dev *fintek)
{}

/* enable CIR interrupts */
static void fintek_enable_cir_irq(struct fintek_dev *fintek)
{}

static void fintek_cir_regs_init(struct fintek_dev *fintek)
{}

static void fintek_enable_wake(struct fintek_dev *fintek)
{}

static int fintek_cmdsize(u8 cmd, u8 subcmd)
{}

/* process ir data stored in driver buffer */
static void fintek_process_rx_ir_data(struct fintek_dev *fintek)
{}

/* copy data from hardware rx register into driver buffer */
static void fintek_get_rx_ir_data(struct fintek_dev *fintek, u8 rx_irqs)
{}

static void fintek_cir_log_irqs(u8 status)
{}

/* interrupt service routine for incoming and outgoing CIR data */
static irqreturn_t fintek_cir_isr(int irq, void *data)
{}

static void fintek_enable_cir(struct fintek_dev *fintek)
{}

static void fintek_disable_cir(struct fintek_dev *fintek)
{}

static int fintek_open(struct rc_dev *dev)
{}

static void fintek_close(struct rc_dev *dev)
{}

/* Allocate memory, probe hardware, and initialize everything */
static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
{}

static void fintek_remove(struct pnp_dev *pdev)
{}

static int fintek_suspend(struct pnp_dev *pdev, pm_message_t state)
{}

static int fintek_resume(struct pnp_dev *pdev)
{}

static void fintek_shutdown(struct pnp_dev *pdev)
{}

static const struct pnp_device_id fintek_ids[] =;

static struct pnp_driver fintek_driver =;

module_param(debug, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC();

MODULE_DEVICE_TABLE(pnp, fintek_ids);
MODULE_DESCRIPTION();

MODULE_AUTHOR();
MODULE_LICENSE();

module_pnp_driver();