lkml.org 
[lkml]   [2022]   [May]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 4/5] platform/chrome: cros_kbd_led_backlight: support OF match
    On Mon, Mar 21, 2022 at 04:55:46PM +0800, Tzung-Bi Shih wrote:
    > For letting device tree based machines to use the driver, support OF match.
    >
    > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    > Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
    > ---
    > Changes from v2:
    > - Add commit message.
    > - Add R-b tag.
    >
    > Changes from v1:
    > (https://patchwork.kernel.org/project/chrome-platform/patch/20220214053646.3088298-5-tzungbi@google.com/)
    > - Update email address accordingly.
    > - Use device_get_match_data() per review comment in v1.
    >
    > drivers/platform/chrome/cros_kbd_led_backlight.c | 15 ++++++++++++++-
    > 1 file changed, 14 insertions(+), 1 deletion(-)
    >
    > diff --git a/drivers/platform/chrome/cros_kbd_led_backlight.c b/drivers/platform/chrome/cros_kbd_led_backlight.c
    > index 05b4f274086b..5cbe27cb4610 100644
    > --- a/drivers/platform/chrome/cros_kbd_led_backlight.c
    > +++ b/drivers/platform/chrome/cros_kbd_led_backlight.c
    > @@ -10,7 +10,9 @@
    > #include <linux/kernel.h>
    > #include <linux/leds.h>
    > #include <linux/module.h>
    > +#include <linux/of.h>
    > #include <linux/platform_device.h>
    > +#include <linux/property.h>
    > #include <linux/slab.h>
    >
    > /**
    > @@ -127,7 +129,7 @@ static int keyboard_led_probe(struct platform_device *pdev)
    > const struct keyboard_led_drvdata *drvdata;
    > int error;
    >
    > - drvdata = acpi_device_get_match_data(&pdev->dev);
    > + drvdata = device_get_match_data(&pdev->dev);
    > if (!drvdata)
    > return -EINVAL;
    >
    > @@ -163,10 +165,21 @@ static const struct acpi_device_id keyboard_led_acpi_match[] = {
    > MODULE_DEVICE_TABLE(acpi, keyboard_led_acpi_match);
    > #endif
    >
    > +#ifdef CONFIG_OF
    > +static const struct of_device_id keyboard_led_of_match[] = {
    > + {
    > + .compatible = "google,cros-kbd-led-backlight",
    > + },
    > + {}
    > +};
    > +MODULE_DEVICE_TABLE(of, keyboard_led_of_match);
    > +#endif
    > +
    > 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),

    In patch "[5/5] platform/chrome: cros_kbd_led_backlight: support EC PWM
    backend" [1] you create the 'stubs' keyboard_led_init_ec_pwm_null() and
    keyboard_led_drvdata_ec_pwm when CONFIG_CROS_KBD_LED_BACKLIGHT_EC_PWM
    isn't set, only to have something to assign to keyboard_led_of_match.data.
    Instead you could assign .of_match_table only if CONFIG_CROS_KBD_LED_BACKLIGHT_EC_PWM
    is set.

    [1] https://patchwork.kernel.org/project/chrome-platform/patch/20220321085547.1162312-6-tzungbi@kernel.org/

    \
     
     \ /
      Last update: 2022-05-20 00:50    [W:2.340 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site