From 8e4bff4cab0ddac6060645b0715210484d02ff40 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Wed, 30 Aug 2017 08:25:59 +0000 Subject: Initial file dump from open source release --- drivers/net/irda/ep7211-sir.c | 70 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 drivers/net/irda/ep7211-sir.c (limited to 'drivers/net/irda/ep7211-sir.c') diff --git a/drivers/net/irda/ep7211-sir.c b/drivers/net/irda/ep7211-sir.c new file mode 100644 index 00000000..5fe1f4dd --- /dev/null +++ b/drivers/net/irda/ep7211-sir.c @@ -0,0 +1,70 @@ +/* + * IR port driver for the Cirrus Logic CLPS711X processors + * + * Copyright 2001, Blue Mug Inc. All rights reserved. + * Copyright 2007, Samuel Ortiz + */ + +#include +#include + +#include + +#include "sir-dev.h" + +static int clps711x_dongle_open(struct sir_dev *dev) +{ + unsigned int syscon; + + /* Turn on the SIR encoder. */ + syscon = clps_readl(SYSCON1); + syscon |= SYSCON1_SIREN; + clps_writel(syscon, SYSCON1); + + return 0; +} + +static int clps711x_dongle_close(struct sir_dev *dev) +{ + unsigned int syscon; + + /* Turn off the SIR encoder. */ + syscon = clps_readl(SYSCON1); + syscon &= ~SYSCON1_SIREN; + clps_writel(syscon, SYSCON1); + + return 0; +} + +static struct dongle_driver clps711x_dongle = { + .owner = THIS_MODULE, + .driver_name = "EP7211 IR driver", + .type = IRDA_EP7211_DONGLE, + .open = clps711x_dongle_open, + .close = clps711x_dongle_close, +}; + +static int clps711x_sir_probe(struct platform_device *pdev) +{ + return irda_register_dongle(&clps711x_dongle); +} + +static int clps711x_sir_remove(struct platform_device *pdev) +{ + return irda_unregister_dongle(&clps711x_dongle); +} + +static struct platform_driver clps711x_sir_driver = { + .driver = { + .name = "sir-clps711x", + .owner = THIS_MODULE, + }, + .probe = clps711x_sir_probe, + .remove = clps711x_sir_remove, +}; +module_platform_driver(clps711x_sir_driver); + +MODULE_AUTHOR("Samuel Ortiz "); +MODULE_DESCRIPTION("EP7211 IR dongle driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("irda-dongle-13"); /* IRDA_EP7211_DONGLE */ -- cgit v1.3.1