13 #include <linux/kernel.h>
15 #include <linux/module.h>
18 #include <linux/slab.h>
24 #define GPIO_IR_DRIVER_NAME "gpio-rc-recv"
25 #define GPIO_IR_DEVICE_NAME "gpio_ir_recv"
66 pdev->
dev.platform_data;
82 goto err_allocate_device;
85 rcdev->
priv = gpio_dev;
93 rcdev->
dev.parent = &pdev->
dev;
101 gpio_dev->
rcdev = rcdev;
107 goto err_gpio_request;
110 goto err_gpio_direction_input;
114 dev_err(&pdev->
dev,
"failed to register rc device\n");
115 goto err_register_rc_device;
118 platform_set_drvdata(pdev, gpio_dev);
123 "gpio-ir-recv-irq", gpio_dev);
125 goto err_request_irq;
130 platform_set_drvdata(pdev,
NULL);
132 err_register_rc_device:
133 err_gpio_direction_input:
145 struct gpio_rc_dev *gpio_dev = platform_get_drvdata(pdev);
148 platform_set_drvdata(pdev,
NULL);
157 static int gpio_ir_recv_suspend(
struct device *
dev)
160 struct gpio_rc_dev *gpio_dev = platform_get_drvdata(pdev);
162 if (device_may_wakeup(dev))
170 static int gpio_ir_recv_resume(
struct device *dev)
173 struct gpio_rc_dev *gpio_dev = platform_get_drvdata(pdev);
175 if (device_may_wakeup(dev))
183 static const struct dev_pm_ops gpio_ir_recv_pm_ops = {
184 .
suspend = gpio_ir_recv_suspend,
185 .resume = gpio_ir_recv_resume,
190 .probe = gpio_ir_recv_probe,
196 .pm = &gpio_ir_recv_pm_ops,