#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/vmalloc.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/fb.h>
#include <linux/gpio/consumer.h>
#include <linux/spi/spi.h>
#include <linux/delay.h>
#include <linux/uaccess.h>
#include <linux/backlight.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/spinlock.h>
#include <video/mipi_display.h>
#include "fbtft.h"
#include "internal.h"
static unsigned long debug;
module_param(debug, ulong, 0000);
MODULE_PARM_DESC(…) …;
int fbtft_write_buf_dc(struct fbtft_par *par, void *buf, size_t len, int dc)
{ … }
EXPORT_SYMBOL(…);
void fbtft_dbg_hex(const struct device *dev, int groupsize,
const void *buf, size_t len, const char *fmt, ...)
{ … }
EXPORT_SYMBOL(…);
static int fbtft_request_one_gpio(struct fbtft_par *par,
const char *name, int index,
struct gpio_desc **gpiop)
{ … }
static int fbtft_request_gpios(struct fbtft_par *par)
{ … }
static int fbtft_backlight_update_status(struct backlight_device *bd)
{ … }
static int fbtft_backlight_get_brightness(struct backlight_device *bd)
{ … }
void fbtft_unregister_backlight(struct fbtft_par *par)
{ … }
EXPORT_SYMBOL(…);
static const struct backlight_ops fbtft_bl_ops = …;
void fbtft_register_backlight(struct fbtft_par *par)
{ … }
EXPORT_SYMBOL(…);
static void fbtft_set_addr_win(struct fbtft_par *par, int xs, int ys, int xe,
int ye)
{ … }
static void fbtft_reset(struct fbtft_par *par)
{ … }
static void fbtft_update_display(struct fbtft_par *par, unsigned int start_line,
unsigned int end_line)
{ … }
static void fbtft_mkdirty(struct fb_info *info, int y, int height)
{ … }
static void fbtft_deferred_io(struct fb_info *info, struct list_head *pagereflist)
{ … }
static unsigned int chan_to_field(unsigned int chan, struct fb_bitfield *bf)
{ … }
static int fbtft_fb_setcolreg(unsigned int regno, unsigned int red,
unsigned int green, unsigned int blue,
unsigned int transp, struct fb_info *info)
{ … }
static int fbtft_fb_blank(int blank, struct fb_info *info)
{ … }
static void fbtft_ops_damage_range(struct fb_info *info, off_t off, size_t len)
{ … }
static void fbtft_ops_damage_area(struct fb_info *info, u32 x, u32 y, u32 width, u32 height)
{ … }
FB_GEN_DEFAULT_DEFERRED_SYSMEM_OPS(fbtft_ops,
fbtft_ops_damage_range,
fbtft_ops_damage_area)
static const struct fb_ops fbtft_ops = …;
static void fbtft_merge_fbtftops(struct fbtft_ops *dst, struct fbtft_ops *src)
{ … }
struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
struct device *dev,
struct fbtft_platform_data *pdata)
{ … }
EXPORT_SYMBOL(…);
void fbtft_framebuffer_release(struct fb_info *info)
{ … }
EXPORT_SYMBOL(…);
int fbtft_register_framebuffer(struct fb_info *fb_info)
{ … }
EXPORT_SYMBOL(…);
int fbtft_unregister_framebuffer(struct fb_info *fb_info)
{ … }
EXPORT_SYMBOL(…);
static int fbtft_init_display_from_property(struct fbtft_par *par)
{ … }
int fbtft_init_display(struct fbtft_par *par)
{ … }
EXPORT_SYMBOL(…);
static int fbtft_verify_gpios(struct fbtft_par *par)
{ … }
static u32 fbtft_property_value(struct device *dev, const char *propname)
{ … }
static struct fbtft_platform_data *fbtft_properties_read(struct device *dev)
{ … }
int fbtft_probe_common(struct fbtft_display *display,
struct spi_device *sdev,
struct platform_device *pdev)
{ … }
EXPORT_SYMBOL(…);
void fbtft_remove_common(struct device *dev, struct fb_info *info)
{ … }
EXPORT_SYMBOL(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;