lkml.org 
[lkml]   [2017]   [Dec]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v1 2/2] drm/tinydrm: add driver for ST7735R panels
From
Date

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
>

\
 
 \ /
  Last update: 2017-12-08 15:11    [W:0.124 / U:0.132 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site