On Sat, Apr 29, 2023 at 08:15:32PM +0200, Hans de Goede wrote: > 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 ? Wow, great! I thought about ACPI table substitution by one taken from the Windows tablet but didn't try this. I'm glad if this works because ACPI tables in Android version looks like as a placeholder from the Intel's SDK, not a real thing. There is instruction how to install Windows on Android version, maybe it will be useful for you: https://web.archive.org/web/20220516142318/https://www.poz1.com/windows-on-android-lenovo-yogabook/ > > 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 | 587 +++++++++++++++++++++ > drivers/pwm/core.c | 2 + > 5 files changed, 593 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 > -- Yauhen Kharuzhy