diff --git a/frontend/device/kobo/device.lua b/frontend/device/kobo/device.lua index f58cbe6c9..78b14c3b9 100644 --- a/frontend/device/kobo/device.lua +++ b/frontend/device/kobo/device.lua @@ -627,57 +627,69 @@ function Kobo:init() -- Automagic sysfs discovery if self.automagic_sysfs then -- Battery - if util.pathExists("/sys/class/power_supply/battery") then - -- Newer devices (circa sunxi) - self.battery_sysfs = "/sys/class/power_supply/battery" - else - self.battery_sysfs = "/sys/class/power_supply/mc13892_bat" + if not self.battery_sysfs then + if util.pathExists("/sys/class/power_supply/battery") then + -- Newer devices (circa sunxi) + self.battery_sysfs = "/sys/class/power_supply/battery" + else + self.battery_sysfs = "/sys/class/power_supply/mc13892_bat" + end end -- Frontlight if self:hasNaturalLight() then - if util.fileExists("/sys/class/leds/aw99703-bl_FL1/color") then - -- HWConfig FL_PWM is AW99703x2 - self.frontlight_settings.frontlight_mixer = "/sys/class/leds/aw99703-bl_FL1/color" - elseif util.fileExists("/sys/class/backlight/lm3630a_led/color") then - -- HWConfig FL_PWM is LM3630 - self.frontlight_settings.frontlight_mixer = "/sys/class/backlight/lm3630a_led/color" - elseif util.fileExists("/sys/class/backlight/tlc5947_bl/color") then - -- HWConfig FL_PWM is TLC5947 - self.frontlight_settings.frontlight_mixer = "/sys/class/backlight/tlc5947_bl/color" + if not self.frontlight_settings.frontlight_mixer then + if util.fileExists("/sys/class/leds/aw99703-bl_FL1/color") then + -- HWConfig FL_PWM is AW99703x2 + self.frontlight_settings.frontlight_mixer = "/sys/class/leds/aw99703-bl_FL1/color" + elseif util.fileExists("/sys/class/backlight/lm3630a_led/color") then + -- HWConfig FL_PWM is LM3630 + self.frontlight_settings.frontlight_mixer = "/sys/class/backlight/lm3630a_led/color" + elseif util.fileExists("/sys/class/backlight/tlc5947_bl/color") then + -- HWConfig FL_PWM is TLC5947 + self.frontlight_settings.frontlight_mixer = "/sys/class/backlight/tlc5947_bl/color" + end end end - -- Input - if util.fileExists("/dev/input/by-path/platform-1-0010-event") then - -- Elan (HWConfig TouchCtrl is ekth6) on i2c bus 1 - self.touch_dev = "/dev/input/by-path/platform-1-0010-event" - elseif util.fileExists("/dev/input/by-path/platform-0-0010-event") then - -- Elan (HWConfig TouchCtrl is ekth6) on i2c bus 0 - self.touch_dev = "/dev/input/by-path/platform-0-0010-event" - else - self.touch_dev = "/dev/input/event1" + -- Touch panel input + if not self.touch_dev then + if util.fileExists("/dev/input/by-path/platform-1-0010-event") then + -- Elan (HWConfig TouchCtrl is ekth6) on i2c bus 1 + self.touch_dev = "/dev/input/by-path/platform-1-0010-event" + elseif util.fileExists("/dev/input/by-path/platform-0-0010-event") then + -- Elan (HWConfig TouchCtrl is ekth6) on i2c bus 0 + self.touch_dev = "/dev/input/by-path/platform-0-0010-event" + else + self.touch_dev = "/dev/input/event1" + end end - if util.fileExists("/dev/input/by-path/platform-gpio-keys-event") then - -- Libra 2 w/ a BD71828 PMIC - self.ntx_dev = "/dev/input/by-path/platform-gpio-keys-event" - elseif util.fileExists("/dev/input/by-path/platform-ntx_event0-event") then - -- sunxi & Mk. 7 - self.ntx_dev = "/dev/input/by-path/platform-ntx_event0-event" - elseif util.fileExists("/dev/input/by-path/platform-mxckpd-event") then - -- circa Mk. 5 i.MX - self.ntx_dev = "/dev/input/by-path/platform-mxckpd-event" - else - self.ntx_dev = "/dev/input/event0" + -- Physical buttons & synthetic NTX events + if not self.ntx_dev then + if util.fileExists("/dev/input/by-path/platform-gpio-keys-event") then + -- Libra 2 w/ a BD71828 PMIC + self.ntx_dev = "/dev/input/by-path/platform-gpio-keys-event" + elseif util.fileExists("/dev/input/by-path/platform-ntx_event0-event") then + -- sunxi & Mk. 7 + self.ntx_dev = "/dev/input/by-path/platform-ntx_event0-event" + elseif util.fileExists("/dev/input/by-path/platform-mxckpd-event") then + -- circa Mk. 5 i.MX + self.ntx_dev = "/dev/input/by-path/platform-mxckpd-event" + else + self.ntx_dev = "/dev/input/event0" + end end - if util.fileExists("/dev/input/by-path/platform-bd71828-pwrkey-event") then - -- Libra 2 w/ a BD71828 PMIC - self.power_dev = "/dev/input/by-path/platform-bd71828-pwrkey-event" - elseif util.fileExists("/dev/input/by-path/platform-bd71828-pwrkey.4.auto-event") then - -- Fix for Kobo Sage, presumably w/ a BD71828 PMIC? - self.power_dev = "/dev/input/by-path/platform-bd71828-pwrkey.4.auto-event" + -- Power button (this usually ends up in ntx_dev, except with some PMICs) + if not self.power_dev then + if util.fileExists("/dev/input/by-path/platform-bd71828-pwrkey-event") then + -- Libra 2 w/ a BD71828 PMIC + self.power_dev = "/dev/input/by-path/platform-bd71828-pwrkey-event" + elseif util.fileExists("/dev/input/by-path/platform-bd71828-pwrkey.4.auto-event") then + -- Sage w/ a BD71828 PMIC + self.power_dev = "/dev/input/by-path/platform-bd71828-pwrkey.4.auto-event" + end end end