rcdev->priv = gpio_dev;
        rcdev->driver_type = RC_DRIVER_IR_RAW;
-       rcdev->allowed_protos = RC_TYPE_ALL;
        rcdev->input_name = GPIO_IR_DEVICE_NAME;
        rcdev->input_phys = GPIO_IR_DEVICE_NAME "/input0";
        rcdev->input_id.bustype = BUS_HOST;
        rcdev->input_id.version = 0x0100;
        rcdev->dev.parent = &pdev->dev;
        rcdev->driver_name = GPIO_IR_DRIVER_NAME;
+       if (pdata->allowed_protos)
+               rcdev->allowed_protos = pdata->allowed_protos;
+       else
+               rcdev->allowed_protos = RC_TYPE_ALL;
        rcdev->map_name = pdata->map_name ?: RC_MAP_EMPTY;
 
        gpio_dev->rcdev = rcdev;