diff options
author | Heiner Kallweit <hkallweit1@gmail.com> | 2017-03-02 22:12:46 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-09 17:33:03 +0100 |
commit | 60da70204ead415ce43f6865ae237cb073f3a5a0 (patch) | |
tree | 38d903e1e6bb7ca7db6c716c1d5ac61d093491a3 | |
parent | 82472b86186194458c9549516e53becbc33e941d (diff) | |
download | op-kernel-dev-60da70204ead415ce43f6865ae237cb073f3a5a0.zip op-kernel-dev-60da70204ead415ce43f6865ae237cb073f3a5a0.tar.gz |
staging: fbtft: add helper fbtft_write_buf_dc
Factor out setting DC GPIO and writing buffer content to helper
fbtft_write_buf_dc.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/fbtft/fbtft-core.c | 15 | ||||
-rw-r--r-- | drivers/staging/fbtft/fbtft.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 429b524..b742ee7 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -43,6 +43,21 @@ static unsigned long debug; module_param(debug, ulong, 0000); MODULE_PARM_DESC(debug, "override device debug level"); +int fbtft_write_buf_dc(struct fbtft_par *par, void *buf, size_t len, int dc) +{ + int ret; + + if (gpio_is_valid(par->gpio.dc)) + gpio_set_value(par->gpio.dc, dc); + + ret = par->fbtftops.write(par, buf, len); + if (ret < 0) + dev_err(par->info->device, + "write() failed and returned %d\n", ret); + return ret; +} +EXPORT_SYMBOL(fbtft_write_buf_dc); + void fbtft_dbg_hex(const struct device *dev, int groupsize, void *buf, size_t len, const char *fmt, ...) { diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h index 119c3a7..488ab78 100644 --- a/drivers/staging/fbtft/fbtft.h +++ b/drivers/staging/fbtft/fbtft.h @@ -248,6 +248,7 @@ struct fbtft_par { par->fbtftops.write_register(par, NUMARGS(__VA_ARGS__), __VA_ARGS__) /* fbtft-core.c */ +int fbtft_write_buf_dc(struct fbtft_par *par, void *buf, size_t len, int dc); void fbtft_dbg_hex(const struct device *dev, int groupsize, void *buf, size_t len, const char *fmt, ...); struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display, |