All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: "Noralf Trønnes" <noralf@tronnes.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Cc: Sam Ravnborg <sam@ravnborg.org>
Subject: [RFC PATCH v1 0/5] Add pardata bus + tinydrm driver
Date: Thu, 2 Aug 2018 21:39:09 +0200	[thread overview]
Message-ID: <20180802193909.GA11443@ravnborg.org> (raw)

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/
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(+)

             reply	other threads:[~2018-08-02 19:39 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-02 19:39 Sam Ravnborg [this message]
2018-08-02 19:45 ` [PATCH v1 1/5] dt-bindings: add parallel data bus (pardata) Sam Ravnborg
2018-08-02 19:45 ` [PATCH v1 2/5] pardata: new bus for parallel data access Sam Ravnborg
2018-08-07 16:40   ` Noralf Trønnes
2018-08-07 16:40     ` Noralf Trønnes
2018-08-08  8:24     ` Sam Ravnborg
2018-08-08 16:22       ` Noralf Trønnes
2020-01-20 10:10   ` Geert Uytterhoeven
2020-01-20 10:10     ` Geert Uytterhoeven
2020-01-20 18:48     ` Sam Ravnborg
2020-01-20 18:48       ` Sam Ravnborg
2020-01-20 19:12       ` Geert Uytterhoeven
2020-01-20 19:12         ` Geert Uytterhoeven
2020-01-20 19:23         ` Sam Ravnborg
2020-01-20 19:23           ` Sam Ravnborg
2018-08-02 19:45 ` [PATCH v1 3/5] tinydrm: add support for parallel data displays Sam Ravnborg
2018-08-02 19:45 ` [PATCH v1 4/5] dt-bindings: add winstar,wg160160 display bindings Sam Ravnborg
2018-08-02 19:45 ` [PATCH v1 5/5] tinydrm: add winstar wg160160 driver Sam Ravnborg
2018-08-06  9:15   ` Dan Carpenter
2018-08-06  9:15     ` Dan Carpenter
2018-08-06 12:07     ` Sam Ravnborg
2018-08-07 17:35   ` Noralf Trønnes
2018-08-08  8:32     ` Sam Ravnborg
2018-08-08 16:31       ` Noralf Trønnes
2018-08-08 16:31         ` Noralf Trønnes
2018-08-02 19:46 ` [RFC PATCH v1 0/5] Add pardata bus + tinydrm driver Miguel Ojeda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180802193909.GA11443@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=noralf@tronnes.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.