diff options
Diffstat (limited to 'drivers/pwm/sysfs.c')
-rw-r--r-- | drivers/pwm/sysfs.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/pwm/sysfs.c b/drivers/pwm/sysfs.c index 3a438b29c777..e5bbff32b719 100644 --- a/drivers/pwm/sysfs.c +++ b/drivers/pwm/sysfs.c @@ -8,6 +8,7 @@ */ #include <linux/device.h> +#include <linux/fs.h> #include <linux/mutex.h> #include <linux/err.h> #include <linux/slab.h> @@ -509,8 +510,24 @@ void pwmchip_sysfs_unexport(struct pwm_chip *chip) } } +dev_t pwm_devt; + static int __init pwm_sysfs_init(void) { - return class_register(&pwm_class); + int ret; + + ret = alloc_chrdev_region(&pwm_devt, 0, 256, "pwm"); + if (ret) { + pr_warn("Failed to initialize chrdev region for PWM usage\n"); + return ret; + } + + ret = class_register(&pwm_class); + if (ret) { + pr_warn("Failed to register PWM class\n"); + unregister_chrdev_region(pwm_devt, 256); + } + + return ret; } subsys_initcall(pwm_sysfs_init); |