Lines Matching refs:rc_dev

24 	struct rc_dev			*rdev;
64 static void st_rc_send_lirc_timeout(struct rc_dev *rdev)
199 struct st_rc_device *rc_dev = platform_get_drvdata(pdev);
203 clk_disable_unprepare(rc_dev->sys_clock);
204 rc_unregister_device(rc_dev->rdev);
207 static int st_rc_open(struct rc_dev *rdev)
220 static void st_rc_close(struct rc_dev *rdev)
231 struct rc_dev *rdev;
233 struct st_rc_device *rc_dev;
237 rc_dev = devm_kzalloc(dev, sizeof(struct st_rc_device), GFP_KERNEL);
239 if (!rc_dev)
250 rc_dev->rxuhfmode = true;
252 rc_dev->rxuhfmode = false;
262 rc_dev->sys_clock = devm_clk_get(dev, NULL);
263 if (IS_ERR(rc_dev->sys_clock)) {
265 ret = PTR_ERR(rc_dev->sys_clock);
269 rc_dev->irq = platform_get_irq(pdev, 0);
270 if (rc_dev->irq < 0) {
271 ret = rc_dev->irq;
275 rc_dev->base = devm_platform_ioremap_resource(pdev, 0);
276 if (IS_ERR(rc_dev->base)) {
277 ret = PTR_ERR(rc_dev->base);
281 if (rc_dev->rxuhfmode)
282 rc_dev->rx_base = rc_dev->base + 0x40;
284 rc_dev->rx_base = rc_dev->base;
286 rc_dev->rstc = reset_control_get_optional_exclusive(dev, NULL);
287 if (IS_ERR(rc_dev->rstc)) {
288 ret = PTR_ERR(rc_dev->rstc);
292 rc_dev->dev = dev;
293 platform_set_drvdata(pdev, rc_dev);
294 ret = st_rc_hardware_init(rc_dev);
302 rdev->priv = rc_dev;
313 rc_dev->rdev = rdev;
314 if (devm_request_irq(dev, rc_dev->irq, st_rc_rx_interrupt,
315 0, IR_ST_NAME, rc_dev) < 0) {
316 dev_err(dev, "IRQ %d register failed\n", rc_dev->irq);
323 dev_pm_set_wake_irq(dev, rc_dev->irq);
331 dev_info(dev, "setup in %s mode\n", rc_dev->rxuhfmode ? "UHF" : "IR");
338 clk_disable_unprepare(rc_dev->sys_clock);
348 struct st_rc_device *rc_dev = dev_get_drvdata(dev);
351 if (!enable_irq_wake(rc_dev->irq))
352 rc_dev->irq_wake = 1;
357 writel(0x00, rc_dev->rx_base + IRB_RX_EN);
358 writel(0x00, rc_dev->rx_base + IRB_RX_INT_EN);
359 clk_disable_unprepare(rc_dev->sys_clock);
360 reset_control_assert(rc_dev->rstc);
369 struct st_rc_device *rc_dev = dev_get_drvdata(dev);
370 struct rc_dev *rdev = rc_dev->rdev;
372 if (rc_dev->irq_wake) {
373 disable_irq_wake(rc_dev->irq);
374 rc_dev->irq_wake = 0;
377 ret = st_rc_hardware_init(rc_dev);
382 writel(IRB_RX_INTS, rc_dev->rx_base + IRB_RX_INT_EN);
383 writel(0x01, rc_dev->rx_base + IRB_RX_EN);