]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/sitronix/st7571-i2c: Add an indirection level to parse DT
authorJavier Martinez Canillas <javierm@redhat.com>
Tue, 15 Jul 2025 11:03:52 +0000 (13:03 +0200)
committerJavier Martinez Canillas <javierm@redhat.com>
Wed, 16 Jul 2025 10:12:38 +0000 (12:12 +0200)
Other Sitronix display controllers might need a different parsing DT
logic, so lets add a .parse_dt callback to struct st7571_panel_data.

Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Marcus Folkesson <marcus.folkesson@gmail.com>
Link: https://lore.kernel.org/r/20250715110411.448343-4-javierm@redhat.com
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
drivers/gpu/drm/sitronix/st7571-i2c.c

index fd9d6c701cc44ae8b3db8403b7cb9ba2fbf93714..f9c4fedb3cca5db7cbe6dbcdafc5e947505f86fe 100644 (file)
@@ -92,6 +92,7 @@ struct st7571_panel_constraints {
 
 struct st7571_panel_data {
        int (*init)(struct st7571_device *st7571);
+       int (*parse_dt)(struct st7571_device *st7571);
        struct st7571_panel_constraints constraints;
 };
 
@@ -881,7 +882,7 @@ static int st7571_probe(struct i2c_client *client)
        i2c_set_clientdata(client, st7571);
        st7571->pdata = device_get_match_data(&client->dev);
 
-       ret = st7571_parse_dt(st7571);
+       ret = st7571->pdata->parse_dt(st7571);
        if (ret)
                return ret;
 
@@ -964,6 +965,7 @@ static void st7571_remove(struct i2c_client *client)
 
 struct st7571_panel_data st7571_config = {
        .init = st7571_lcd_init,
+       .parse_dt = st7571_parse_dt,
        .constraints = {
                .min_nlines = 1,
                .max_nlines = 128,