diff -Naur linux-3.9/drivers/hid/hid-core.c linux-3.9.patch/drivers/hid/hid-core.c
--- linux-3.9/drivers/hid/hid-core.c	2013-04-29 02:36:01.000000000 +0200
+++ linux-3.9.patch/drivers/hid/hid-core.c	2013-04-29 17:08:40.528324010 +0200
@@ -1681,6 +1681,9 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) },
 #if IS_ENABLED(CONFIG_HID_ROCCAT)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONE) },
diff -Naur linux-3.9/drivers/hid/hid-ids.h linux-3.9.patch/drivers/hid/hid-ids.h
--- linux-3.9/drivers/hid/hid-ids.h	2013-04-29 02:36:01.000000000 +0200
+++ linux-3.9.patch/drivers/hid/hid-ids.h	2013-04-29 17:08:40.537323981 +0200
@@ -663,6 +663,9 @@
 
 #define USB_VENDOR_ID_PHILIPS		0x0471
 #define USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE 0x0617
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1	0x206c
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2	0x20cc
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3	0x0613
 
 #define USB_VENDOR_ID_PI_ENGINEERING	0x05f3
 #define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL	0xff
diff -Naur linux-3.9/drivers/hid/hid-spinelplus.c linux-3.9.patch/drivers/hid/hid-spinelplus.c
--- linux-3.9/drivers/hid/hid-spinelplus.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-3.9.patch/drivers/hid/hid-spinelplus.c	2013-04-29 17:08:40.537323981 +0200
@@ -0,0 +1,104 @@
+/*
+ *  HID driver for "PHILIPS MCE USB IR Receiver- Spinel plus" remotes
+ *
+ *  Copyright (c) 2010 Panagiotis Skintzos
+ *
+ *  Renamed to Spinel, cleanup and modified to also support
+ *  Spinel Plus 0471:20CC by Stephan Raue 2012.
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ */
+
+#include <linux/device.h>
+#include <linux/input.h>
+#include <linux/hid.h>
+#include <linux/module.h>
+
+#include "hid-ids.h"
+
+#define spinelplus_map_key(c)	set_bit(EV_REP, hi->input->evbit); \
+						hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c))
+
+static int spinelplus_input_mapping(struct hid_device *hdev,
+		struct hid_input *hi, struct hid_field *field, struct hid_usage *usage,
+		unsigned long **bit, int *max)
+{
+	switch (usage->hid) {
+	case 0xffbc000d:	spinelplus_map_key(KEY_MEDIA);		break;
+	case 0xffbc0024:	spinelplus_map_key(KEY_MEDIA);		break;
+	case 0xffbc0027:	spinelplus_map_key(KEY_ZOOM);		break;
+	case 0xffbc0033:	spinelplus_map_key(KEY_HOME);		break;
+	case 0xffbc0035:	spinelplus_map_key(KEY_CAMERA);		break;
+	case 0xffbc0036:	spinelplus_map_key(KEY_EPG);		break;
+	case 0xffbc0037:	spinelplus_map_key(KEY_DVD);		break;
+	case 0xffbc0038:	spinelplus_map_key(KEY_HOME);		break;
+	case 0xffbc0039:	spinelplus_map_key(KEY_MP3);		break;
+	case 0xffbc003a:	spinelplus_map_key(KEY_VIDEO);		break;
+	case 0xffbc005a:	spinelplus_map_key(KEY_TEXT);		break;
+	case 0xffbc005b:	spinelplus_map_key(KEY_RED);		break;
+	case 0xffbc005c:	spinelplus_map_key(KEY_GREEN);		break;
+	case 0xffbc005d:	spinelplus_map_key(KEY_YELLOW);		break;
+	case 0xffbc005e:	spinelplus_map_key(KEY_BLUE);		break;
+	default:
+		return 0;
+	}
+	return 1;
+}
+
+static int spinelplus_probe(struct hid_device *hdev,
+		const struct hid_device_id *id)
+{
+	int ret;
+	/* Connect only to hid input (not hiddev & hidraw)*/
+	unsigned int cmask = HID_CONNECT_HIDINPUT;
+
+	ret = hid_parse(hdev);
+	if (ret) {
+		dev_err(&hdev->dev, "parse failed\n");
+		goto err_free;
+	}
+
+	ret = hid_hw_start(hdev, cmask);
+	if (ret) {
+		dev_err(&hdev->dev, "hw start failed\n");
+		goto err_free;
+	}
+
+	return 0;
+err_free:
+	return ret;
+}
+
+static const struct hid_device_id spinelplus_devices[] = {
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS,USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS,USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS,USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3) },
+	{ }
+};
+MODULE_DEVICE_TABLE(hid, spinelplus_devices);
+
+static struct hid_driver spinelplus_driver = {
+	.name = 		"SpinelPlus",
+	.id_table = 		spinelplus_devices,
+	.input_mapping = 	spinelplus_input_mapping,
+	.probe = 		spinelplus_probe,
+};
+
+static int __init spinelplus_init(void)
+{
+	return hid_register_driver(&spinelplus_driver);
+}
+
+static void __exit spinelplus_exit(void)
+{
+	hid_unregister_driver(&spinelplus_driver);
+}
+
+module_init(spinelplus_init);
+module_exit(spinelplus_exit);
+MODULE_LICENSE("GPL");
diff -Naur linux-3.9/drivers/hid/Kconfig linux-3.9.patch/drivers/hid/Kconfig
--- linux-3.9/drivers/hid/Kconfig	2013-04-29 02:36:01.000000000 +0200
+++ linux-3.9.patch/drivers/hid/Kconfig	2013-04-29 17:08:40.538323977 +0200
@@ -602,6 +602,12 @@
 	---help---
 	Support for Steelseries SRW-S1 steering wheel
 
+config HID_SPINELPLUS
+	tristate "Spinel Plus remote control"
+	depends on USB_HID
+	---help---
+	  Say Y here if you have a Spinel Plus (0471:206c/20cc/0613) remote
+
 config HID_SUNPLUS
 	tristate "Sunplus wireless desktop"
 	depends on USB_HID
diff -Naur linux-3.9/drivers/hid/Makefile linux-3.9.patch/drivers/hid/Makefile
--- linux-3.9/drivers/hid/Makefile	2013-04-29 02:36:01.000000000 +0200
+++ linux-3.9.patch/drivers/hid/Makefile	2013-04-29 17:09:26.744173841 +0200
@@ -101,6 +101,7 @@
 obj-$(CONFIG_HID_SMARTJOYPLUS)	+= hid-sjoy.o
 obj-$(CONFIG_HID_SONY)		+= hid-sony.o
 obj-$(CONFIG_HID_SPEEDLINK)	+= hid-speedlink.o
+obj-$(CONFIG_HID_SPINELPLUS)	+= hid-spinelplus.o
 obj-$(CONFIG_HID_STEELSERIES)	+= hid-steelseries.o
 obj-$(CONFIG_HID_SUNPLUS)	+= hid-sunplus.o
 obj-$(CONFIG_HID_GREENASIA)	+= hid-gaff.o
