Signed-off-by: Tzung-Bi Shih <tzungbi@xxxxxxxxxx> --- .../platform/chrome/cros_kbd_led_backlight.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/platform/chrome/cros_kbd_led_backlight.c b/drivers/platform/chrome/cros_kbd_led_backlight.c index 814f2b74c602..ba853e55d29a 100644 --- a/drivers/platform/chrome/cros_kbd_led_backlight.c +++ b/drivers/platform/chrome/cros_kbd_led_backlight.c @@ -10,6 +10,7 @@ #include <linux/kernel.h> #include <linux/leds.h> #include <linux/module.h> +#include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/slab.h> @@ -128,8 +129,11 @@ static int keyboard_led_probe(struct platform_device *pdev) int error; drvdata = acpi_device_get_match_data(&pdev->dev); - if (!drvdata) - return -EINVAL; + if (!drvdata) { + drvdata = of_device_get_match_data(&pdev->dev); + if (!drvdata) + return -EINVAL; + } if (drvdata->init) { error = drvdata->init(pdev); @@ -161,10 +165,19 @@ static const struct acpi_device_id keyboard_led_acpi_match[] = { }; MODULE_DEVICE_TABLE(acpi, keyboard_led_acpi_match); +static const struct of_device_id keyboard_led_of_match[] = { + { + .compatible = "google,cros-kbd-led-backlight", + }, + {} +}; +MODULE_DEVICE_TABLE(of, keyboard_led_of_match); + static struct platform_driver keyboard_led_driver = { .driver = { .name = "chromeos-keyboard-leds", .acpi_match_table = ACPI_PTR(keyboard_led_acpi_match), + .of_match_table = of_match_ptr(keyboard_led_of_match), }, .probe = keyboard_led_probe, }; -- 2.35.1.265.g69c8d7142f-goog