#include <linux/device.h>
#include <linux/err.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/spinlock.h>
#include <linux/bitfield.h>
#include <linux/regmap.h>
#include <media/rc-core.h>
#define DRIVER_NAME …
#define IR_DEC_LDR_ACTIVE …
#define IR_DEC_LDR_ACTIVE_MAX …
#define IR_DEC_LDR_ACTIVE_MIN …
#define IR_DEC_LDR_IDLE …
#define IR_DEC_LDR_IDLE_MAX …
#define IR_DEC_LDR_IDLE_MIN …
#define IR_DEC_LDR_REPEAT …
#define IR_DEC_LDR_REPEAT_MAX …
#define IR_DEC_LDR_REPEAT_MIN …
#define IR_DEC_BIT_0 …
#define IR_DEC_BIT_0_MAX …
#define IR_DEC_BIT_0_MIN …
#define IR_DEC_REG0 …
#define IR_DEC_REG0_FILTER …
#define IR_DEC_REG0_FRAME_TIME_MAX …
#define IR_DEC_REG0_BASE_TIME …
#define IR_DEC_FRAME …
#define IR_DEC_STATUS …
#define IR_DEC_STATUS_BIT_1_ENABLE …
#define IR_DEC_STATUS_BIT_1_MAX …
#define IR_DEC_STATUS_BIT_1_MIN …
#define IR_DEC_STATUS_PULSE …
#define IR_DEC_STATUS_BUSY …
#define IR_DEC_STATUS_FRAME_STATUS …
#define IR_DEC_REG1 …
#define IR_DEC_REG1_TIME_IV …
#define IR_DEC_REG1_FRAME_LEN …
#define IR_DEC_REG1_ENABLE …
#define IR_DEC_REG1_HOLD_CODE …
#define IR_DEC_REG1_IRQSEL …
#define IR_DEC_REG1_RESET …
#define IR_DEC_REG1_MODE …
#define IR_DEC_REG2 …
#define IR_DEC_REG2_TICK_MODE …
#define IR_DEC_REG2_REPEAT_COUNTER …
#define IR_DEC_REG2_REPEAT_TIME …
#define IR_DEC_REG2_COMPARE_FRAME …
#define IR_DEC_REG2_BIT_ORDER …
#define IR_DEC_REG2_MODE …
#define IR_DEC_DURATN2 …
#define IR_DEC_DURATN2_MAX …
#define IR_DEC_DURATN2_MIN …
#define IR_DEC_DURATN3 …
#define IR_DEC_DURATN3_MAX …
#define IR_DEC_DURATN3_MIN …
#define IR_DEC_FRAME1 …
#define FRAME_MSB_FIRST …
#define FRAME_LSB_FIRST …
#define DEC_MODE_NEC …
#define DEC_MODE_RAW …
#define DEC_MODE_RC6 …
#define DEC_MODE_XMP …
#define DEC_MODE_UNKNOW …
#define DEC_STATUS_VALID …
#define DEC_STATUS_DATA_CODE_ERR …
#define DEC_STATUS_CUSTOM_CODE_ERR …
#define DEC_STATUS_REPEAT …
#define IRQSEL_DEC_MODE …
#define IRQSEL_RISE_FALL …
#define IRQSEL_FALL …
#define IRQSEL_RISE …
#define MESON_RAW_TRATE …
#define MESON_HW_TRATE …
struct meson_ir_protocol { … };
struct meson_ir_param { … };
struct meson_ir { … };
static struct regmap_config meson_ir_regmap_config = …;
static const struct meson_ir_protocol protocol_timings[] = …;
static void meson_ir_nec_handler(struct meson_ir *ir)
{ … }
static void meson_ir_hw_handler(struct meson_ir *ir)
{ … }
static irqreturn_t meson_ir_irq(int irqno, void *dev_id)
{ … }
static int meson_ir_hw_decoder_init(struct rc_dev *dev, u64 *rc_type)
{ … }
static void meson_ir_sw_decoder_init(struct rc_dev *dev)
{ … }
static int meson_ir_probe(struct platform_device *pdev)
{ … }
static void meson_ir_remove(struct platform_device *pdev)
{ … }
static void meson_ir_shutdown(struct platform_device *pdev)
{ … }
static __maybe_unused int meson_ir_resume(struct device *dev)
{ … }
static __maybe_unused int meson_ir_suspend(struct device *dev)
{ … }
static SIMPLE_DEV_PM_OPS(meson_ir_pm_ops, meson_ir_suspend, meson_ir_resume);
static const struct meson_ir_param meson6_ir_param = …;
static const struct meson_ir_param meson8b_ir_param = …;
static const struct meson_ir_param meson_s4_ir_param = …;
static const struct of_device_id meson_ir_match[] = …;
MODULE_DEVICE_TABLE(of, meson_ir_match);
static struct platform_driver meson_ir_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;