Messages in this thread | | | Subject | Re: [PATCH v1 2/2] drm/tinydrm: add driver for ST7735R panels | From | Noralf Trønnes <> | Date | Fri, 8 Dec 2017 15:11:05 +0100 |
| |
Den 06.12.2017 19.27, skrev Noralf Trønnes: > > Den 29.11.2017 04.01, skrev David Lechner: >> This adds a new driver for Sitronix ST7735R display panels. >> >> This has been tested using an Adafruit 1.8" TFT. >> >> Signed-off-by: David Lechner <david@lechnology.com> >> ---
<snip>
>> diff --git a/drivers/gpu/drm/tinydrm/st7735r.c >> b/drivers/gpu/drm/tinydrm/st7735r.c
<snip>
>> +static struct drm_driver st7735r_driver = { >> + .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | >> + DRIVER_ATOMIC, >> + .fops = &st7735r_fops, >> + TINYDRM_GEM_DRIVER_OPS, >> + .lastclose = tinydrm_lastclose,
tinydrm_lastclose() is going away, please use:
.lastclose = drm_fb_helper_lastclose,
Noralf.
>> + .name = "st7735r", >> + .desc = "Sitronix ST7735R", >> + .date = "20171128", >> + .major = 1, >> + .minor = 0, >> +}; >> + >> +static const struct of_device_id st7735r_of_match[] = { >> + { .compatible = "sitronix,st7735r-jd-t18003-t01" }, >> + {}, >> +}; >> +MODULE_DEVICE_TABLE(of, st7735r_of_match); >> + >> +static const struct spi_device_id st7735r_id[] = { >> + { "st7735r-jd-t18003-t01", 0 }, >> + { }, >> +}; >> +MODULE_DEVICE_TABLE(spi, st7735r_id); >> + >> +static int st7735r_probe(struct spi_device *spi) >> +{ >> + struct device *dev = &spi->dev; >> + struct mipi_dbi *mipi; >> + struct gpio_desc *dc; >> + u32 rotation = 0; >> + int ret; >> + >> + mipi = devm_kzalloc(dev, sizeof(*mipi), GFP_KERNEL); >> + if (!mipi) >> + return -ENOMEM; >> + >> + mipi->reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); >> + if (IS_ERR(mipi->reset)) { >> + DRM_DEV_ERROR(dev, "Failed to get gpio 'reset'\n"); >> + return PTR_ERR(mipi->reset); >> + } >> + >> + dc = devm_gpiod_get(dev, "dc", GPIOD_OUT_LOW); >> + if (IS_ERR(dc)) { >> + DRM_DEV_ERROR(dev, "Failed to get gpio 'dc'\n"); >> + return PTR_ERR(dc); >> + } >> + >> + mipi->backlight = tinydrm_of_find_backlight(dev); >> + if (IS_ERR(mipi->backlight)) >> + return PTR_ERR(mipi->backlight); >> + >> + device_property_read_u32(dev, "rotation", &rotation); >> + >> + ret = mipi_dbi_spi_init(spi, mipi, dc); >> + if (ret) >> + return ret; >> + >> + ret = mipi_dbi_init(&spi->dev, mipi, &st7735r_pipe_funcs, >> + &st7735r_driver, &st7735r_mode, rotation); >> + if (ret) >> + return ret; >> + >> + spi_set_drvdata(spi, mipi); >> + >> + return devm_tinydrm_register(&mipi->tinydrm); >> +} >> + >> +static void st7735r_shutdown(struct spi_device *spi) >> +{ >> + struct mipi_dbi *mipi = spi_get_drvdata(spi); >> + >> + tinydrm_shutdown(&mipi->tinydrm); >> +} >> + >> +static struct spi_driver st7735r_spi_driver = { >> + .driver = { >> + .name = "st7735r", >> + .owner = THIS_MODULE, >> + .of_match_table = st7735r_of_match, >> + }, >> + .id_table = st7735r_id, >> + .probe = st7735r_probe, >> + .shutdown = st7735r_shutdown, >> +}; >> +module_spi_driver(st7735r_spi_driver); >> + >> +MODULE_DESCRIPTION("Sitronix ST7735R DRM driver"); >> +MODULE_AUTHOR("David Lechner <david@lechnology.com>"); >> +MODULE_LICENSE("GPL"); > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel >
| |