Lines Matching +full:pwm +full:- +full:controller

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Intel Low Power Subsystem PWM controller driver
7 * Derived from the original pwm-lpss.c
17 #include "pwm-lpss.h"
26 info = device_get_match_data(&pdev->dev); in pwm_lpss_probe_platform()
28 return -ENODEV; in pwm_lpss_probe_platform()
34 lpwm = devm_pwm_lpss_probe(&pdev->dev, base, info); in pwm_lpss_probe_platform()
41 * On Cherry Trail devices the GFX0._PS0 AML checks if the controller in pwm_lpss_probe_platform()
43 * believes is the correct state to the PWM controller. in pwm_lpss_probe_platform()
44 * Because of this we must disallow direct-complete, which keeps the in pwm_lpss_probe_platform()
45 * controller (runtime)suspended on resume, to avoid 2 issues: in pwm_lpss_probe_platform()
46 * 1. The controller getting turned on without the linux-pm code in pwm_lpss_probe_platform()
47 * knowing about this. On devices where the controller is unused in pwm_lpss_probe_platform()
50 * 2. The state restoring code unexpectedly messing with the controller in pwm_lpss_probe_platform()
52 * Leaving the controller runtime-suspended (skipping runtime-resume + in pwm_lpss_probe_platform()
53 * normal-suspend) during suspend is fine. in pwm_lpss_probe_platform()
55 if (info->other_devices_aml_touches_pwm_regs) in pwm_lpss_probe_platform()
56 dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NO_DIRECT_COMPLETE| in pwm_lpss_probe_platform()
59 pm_runtime_set_active(&pdev->dev); in pwm_lpss_probe_platform()
60 pm_runtime_enable(&pdev->dev); in pwm_lpss_probe_platform()
67 pm_runtime_disable(&pdev->dev); in pwm_lpss_remove_platform()
81 .name = "pwm-lpss",
89 MODULE_DESCRIPTION("PWM platform driver for Intel LPSS");
92 MODULE_ALIAS("platform:pwm-lpss");