Message ID | 20180802193909.GA11443@ravnborg.org (mailing list archive) |
---|---|
Headers | show |
Series | Add pardata bus + tinydrm driver | expand |
Hi Sam, On Thu, Aug 2, 2018 at 9:39 PM, Sam Ravnborg <sam@ravnborg.org> wrote: > This is an RFC - to get some responses on the overall design. > The code builds but has not yet been tested on any HW. > Before investing more time into this I would like some feedback > if this is the right way forward or a different design should > be pursued. > > The problem to solve is that I have a propriatary ARM based board > with a display that is connected using a parallel bus. > The display is capable of showing graphics > so it is more advanced than what is found in auxdisplay/ Just a quick note: the original intention of auxdisplay/ was not only text displays (actually, the first drivers there --cfag12864b/ks0108-- were graphic displays). They have a very low resolution (e.g. 128x64 for cfag12864b), though. Cheers, Miguel > I know there are others using a display connected > usign a parallel data bus, so this is not a unique problem > for my board alone. But I do not expect many users as > any modern design likely uses SPI or similar. > > The old (proprietary) approach was to implement a char driver > and then let some 3rd party lib use the char driver to write to the > display. > The goal is to move to a more modern world where I expect > to have a simple Qt based program running that can > be used for a few simple things. > (I do not expect any high performance and do not need it). > > Implementation: > > A pardata bus is implemented. > It uses a platform_driver to hook into the DT. > When probed the pardatabus driver creates pardata devices > for all child nodes in the tree. > > Within tinydrm the pardata support is used to implement > a driver for the display I have (Winstar wg160160). > A library module is used to implement the more basic > things allowing us to have a more simple driver, > and thus making it simpler to add new drivers. > > The implmentation uses array support in gpiolib > to try to have some performance on screen updates. > > > TODO: > - Test on HW > - Add locking so there can be more than one user on the bus > - Improve pardata.rst documentation > - Add support for a sparkfun parallel data display > (To verify that the library is generic) > - I may add a class if I see the need > - Likewise I may add sysfs attributes if there is a need for it > > Any comments appreciated! > > Sam > > > Sam Ravnborg (5): > dt-bindings: add parallel data bus (pardata) > pardata: new bus for parallel data access > tinydrm: add support for parallel data displays > dt-bindings: add winstar,wg160160 display bindings > tinydrm: add winstar wg160160 driver > > > .../bindings/display/winstar,wg160160.txt | 53 +++ > .../bindings/pardata/parallel-data-bus.txt | 60 +++ > Documentation/driver-api/index.rst | 1 + > Documentation/driver-api/pardata.rst | 60 +++ > MAINTAINERS | 14 + > drivers/Kconfig | 2 + > drivers/Makefile | 1 + > drivers/gpu/drm/tinydrm/Kconfig | 13 + > drivers/gpu/drm/tinydrm/Makefile | 2 + > drivers/gpu/drm/tinydrm/pardata-dbi.c | 417 +++++++++++++++++++++ > drivers/gpu/drm/tinydrm/wg160160.c | 298 +++++++++++++++ > drivers/pardata/Kconfig | 17 + > drivers/pardata/Makefile | 5 + > drivers/pardata/pardata.c | 282 ++++++++++++++ > include/drm/tinydrm/pardata-dbi.h | 257 +++++++++++++ > include/linux/pardata.h | 138 +++++++ > 16 files changed, 1620 insertions(+)