Hi All, The Lenovo Yoga Book (yb1-x9*) is a yoga 2-in-1 where the keyboard half has a touch keyboard (with a backlit fixed key layout) to make it extra thin and light. The keyboard half can also be switched to an alternative wacom digitizer mode where it instead can be used to draw on. The backlight + switching is handled by the lenovo-yogabook driver. There are both Windows and Android versions with different BIOS-es / ACPI tables. This series extends the current Windows model only driver to also support the Android model. On the Android yb1-x90f/l models there is not ACPI method to control the keyboard backlight brightness. Instead the second PWM controller is exposed directly to the OS there. This requires adding a pwm_lookup table and the lenovo-yogabook code can (and typically is) build as a module. So the first patch in this series exports pwm_add_table() and pwm_remove_table() for use in modules. I believe that it is easiest to just merge the entire series through the drivers/platform/x86 tree. Thierry, may I have your ack for patch 1/19 to merge it through the pdx86 tree ? Changes in v2: - Address Andy's review remarks - Error-exit handling fixes in yogabook_pdev_probe() and yogabook_module_init() - Explicitly turn off keyboard backlight on suspend Regards, Hans Hans de Goede (19): pwm: Export pwm_add_table() / pwm_remove_table() platform/x86: lenovo-yogabook: Fix work race on remove() platform/x86: lenovo-yogabook: Reprobe devices on remove() platform/x86: lenovo-yogabook: Set default keyboard backligh brightness on probe() platform/x86: lenovo-yogabook: Simplify gpio lookup table cleanup platform/x86: lenovo-yogabook: Switch to DEFINE_SIMPLE_DEV_PM_OPS() platform/x86: lenovo-yogabook: Store dev instead of wdev in drvdata struct platform/x86: lenovo-yogabook: Add dev local variable to probe() platform/x86: lenovo-yogabook: Use PMIC LED driver for pen icon LED control platform/x86: lenovo-yogabook: Split probe() into generic and WMI specific parts platform/x86: lenovo-yogabook: Stop checking adev->power.state platform/x86: lenovo-yogabook: Abstract kbd backlight setting platform/x86: lenovo-yogabook: Add a yogabook_toggle_digitizer_mode() helper function platform/x86: lenovo-yogabook: Drop _wmi_ from remaining generic symbols platform/x86: lenovo-yogabook: Group WMI specific code together platform/x86: lenovo-yogabook: Add YB_KBD_BL_MAX define platform/x86: lenovo-yogabook: Add platform driver support platform/x86: lenovo-yogabook: Add keyboard backlight control to platform driver platform/x86: lenovo-yogabook: Rename lenovo-yogabook-wmi to lenovo-yogabook drivers/platform/x86/Kconfig | 6 +- drivers/platform/x86/Makefile | 2 +- drivers/platform/x86/lenovo-yogabook-wmi.c | 408 -------------- drivers/platform/x86/lenovo-yogabook.c | 585 +++++++++++++++++++++ drivers/pwm/core.c | 2 + 5 files changed, 591 insertions(+), 412 deletions(-) delete mode 100644 drivers/platform/x86/lenovo-yogabook-wmi.c create mode 100644 drivers/platform/x86/lenovo-yogabook.c -- 2.39.2