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 chip = devm_pwm_lpss_probe(&pdev->dev, base, info); in pwm_lpss_probe_platform()
39 * On Cherry Trail devices the GFX0._PS0 AML checks if the controller in pwm_lpss_probe_platform()
41 * believes is the correct state to the PWM controller. in pwm_lpss_probe_platform()
42 * Because of this we must disallow direct-complete, which keeps the in pwm_lpss_probe_platform()
43 * controller (runtime)suspended on resume, to avoid 2 issues: in pwm_lpss_probe_platform()
44 * 1. The controller getting turned on without the linux-pm code in pwm_lpss_probe_platform()
45 * knowing about this. On devices where the controller is unused in pwm_lpss_probe_platform()
48 * 2. The state restoring code unexpectedly messing with the controller in pwm_lpss_probe_platform()
50 * Leaving the controller runtime-suspended (skipping runtime-resume + in pwm_lpss_probe_platform()
51 * normal-suspend) during suspend is fine. in pwm_lpss_probe_platform()
53 if (info->other_devices_aml_touches_pwm_regs) in pwm_lpss_probe_platform()
54 dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NO_DIRECT_COMPLETE| in pwm_lpss_probe_platform()
57 pm_runtime_set_active(&pdev->dev); in pwm_lpss_probe_platform()
58 return devm_pm_runtime_enable(&pdev->dev); in pwm_lpss_probe_platform()
72 .name = "pwm-lpss",
79 MODULE_DESCRIPTION("PWM platform driver for Intel LPSS");
82 MODULE_ALIAS("platform:pwm-lpss");