#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/gpio/consumer.h>
#include <linux/platform_device.h>
#include <media/rc-core.h>
#define DRIVER_NAME "gpio-ir-tx"
#define DEVICE_NAME "GPIO IR Bit Banging Transmitter"
static const struct of_device_id gpio_ir_tx_of_match[] = {
{ .compatible = "gpio-ir-tx", },
MODULE_DEVICE_TABLE(of, gpio_ir_tx_of_match);
static int gpio_ir_tx_set_duty_cycle(struct rc_dev *dev, u32 duty_cycle)
struct gpio_ir *gpio_ir = dev->priv;
gpio_ir->duty_cycle = duty_cycle;
static int gpio_ir_tx_set_carrier(struct rc_dev *dev, u32 carrier)
struct gpio_ir *gpio_ir = dev->priv;
gpio_ir->carrier = carrier;
static int gpio_ir_tx(struct rc_dev *dev, unsigned int *txbuf,
struct gpio_ir *gpio_ir = dev->priv;