public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 0/8] video: Add support for SSD2828 (parallel LCD to MIPI bridge)
Date: Sun, 11 Jan 2015 14:09:25 +0200	[thread overview]
Message-ID: <20150111140925.27bbc5ff@i7> (raw)
In-Reply-To: <54AFF52D.2010006@redhat.com>

On Fri, 09 Jan 2015 16:35:09 +0100
Hans de Goede <hdegoede@redhat.com> wrote:

> Hi,
> 
> On 09-01-15 11:01, Siarhei Siamashka wrote:
> > Hello,
> >
> > This patchset adds support for the Solomon Systech SSD2828 bridge chip,
> > which is used to convert parallel LCD interface into MIPI DSI interface
> > and drive MIPI LCD display in some tablets. In particular, this allows
> > to have a working LCD display in my Allwinner A31s based MSI Primo81 tablet.
> >
> > The core of the SSD2828 support code is generic and should work with
> > any SoC (as long as the hardware supports the standard u-boot GPIO API).
> > It also does not have any hardcoded assumptions about the MSI Primo81
> > display and should be able to drive any MIPI LCD panel (as long as the
> > number of data lanes and the bitrate per lane is provided in the
> > config struct). The code tries to follow the standard power-up sequence
> > described in the SSD2828 datasheet. However it has been tested only
> > on my MSI Primo81 tablet so far.
> >
> > The sunxi specific part includes a small glue code in the sunxi display
> > driver and the defconfig update for the MSI Primo81 tablet.
> >
> > This can be applied after
> >      http://lists.denx.de/pipermail/u-boot/2015-January/200753.html
> > 'sunxi: video: Add lvds support' patchset to the 'next' branch
> > in the u-boot-sunxi repository.
> >
> > And here is a bonus picture :-)
> >      http://linux-sunxi.org/File:MSI_Primo81_and_LCD_support_in_u-boot.jpg
> 
> Cool :)
> 
> 
> > Siarhei Siamashka (8):
> >    sunxi: axp221: Add ELDO[1-3] support
> >    include: Add header file with MIPI DSI constants from the Linux kernel
> >    video: Add support for SSD2828 (parallel LCD to MIPI bridge)
> >    video: sunxi: Hook up SSD2828 with the sunxi video driver
> >    sun6i: Add LCD display support for MSI Primo81 tablet
> >    video: ssd2828: Allow using 'pclk' as the PLL clock source
> >    video: sunxi: Switch from 'tx_clk' to 'pclk' for SSD2828
> >    video: ssd2828: Use MIPI DCS commands to retrieve the LCD panel id
> 
> Thanks for working on this!
> 
> Overall this looks good. Looks like you did a better job then I did with
> the Hitachi tx18d42vm LCD panel support, esp. wrt making things generic
> rather then sunxi specific.
> 
> So assuming the Ian will ack v2 of my lvds patch I suggest that we merge
> my lvds patch, then your patches (pending an ack from Anatolij) and then I
> respin my "Hitachi tx18d42vm LCD panel" patch following your patches as an
> example.
> 
> I've also reviewed all of your patches. I've one change request, can you
> please move all of the board/sunxi/Kconfig changes except for the last
> hunk to drivers/video/Kconfig, if we go the generic route we should also
> make the Kconfig stuff generic.
> This also means dropping the
> "select VIDEO_LCD_IF_PARALLEL" from "config VIDEO_LCD_SSD2828" and adding
> it to "config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828", as that
> option is the only one which will stay in board/sunxi/Kconfig and
> VIDEO_LCD_IF_PARALLEL is sunxi specific.
> 
> The changes to drivers/video/Kconfig should then become part of the
> "video: Add support for SSD2828 (parallel LCD to MIPI bridge)" commit.

Thanks. This sounds like a good plan. Will do it.

> With that changed patches 1-7 are:
> 
> Acked-by: Hans de Goede <hdegoede@redhat.com>
> 
> I'm not 100% sure about patch 8, I can see this being useful for
> debugging but not for normal use, and as you said it may (theoretically)
> be unsafe with some panels. Maybe keep the patch, but #ifdef DEBUG the
> entire code block it adds ?

I'm also somewhat disappointed by the panel id reading functionality
provided by MIPI. I surely had better expectations. But the standard
MIPI_DCS_GET_DISPLAY_ID and MIPI_DCS_READ_DDB_START commands still
could be safely used, even though they do not happen to return
anything interesting on MSI Primo81.

The non-standard commands are indeed potentially unsafe and could
be probably hidden under a Kconfig option (are we adding too many
of them?) or under #ifdef DEBUG.


After posting the patch series, I have also noticed that the
http://linux-sunxi.org/ICOU_Fatty_I tablet is also using SSD2828.
Appears that 'lcd_if=4' in the A20 FEX dialect means the same as
'lcd_if=6' in the A31 FEX dialect. This Fatty tablet is using 6 gpio
pins for LCD configuration (compared to just 4 pins in Primo81).
One is an extra reset pin (ssd2828 reset and lcd panel reset are
handled separately). One more pin is set as output and driven low
(maybe something related to enabling ssd2828 power on A20?). I have
contacted the tablet owner to ask about this tablet whereabouts and
would really like to get test results from this Fatty tablet before
landing the ssd2828 patches. Hopefully it's a matter of a few days
at most.

Additionally, the Allwinner reference A20 tablet schematics
("a20_pad_std_v1_1.pdf" on the Internet) has a page dedicated
to the use of SSD2828QN4, which is very insightful. I wish I
had discovered this earlier.

-- 
Best regards,
Siarhei Siamashka

      parent reply	other threads:[~2015-01-11 12:09 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-09 10:01 [U-Boot] [PATCH 0/8] video: Add support for SSD2828 (parallel LCD to MIPI bridge) Siarhei Siamashka
2015-01-09 10:01 ` [U-Boot] [PATCH 1/8] sunxi: axp221: Add ELDO[1-3] support Siarhei Siamashka
2015-01-09 17:05   ` Anatolij Gustschin
2015-01-11 12:05     ` Siarhei Siamashka
2015-01-11 13:43       ` Hans de Goede
2015-01-09 10:01 ` [U-Boot] [PATCH 2/8] include: Add header file with MIPI DSI constants from the Linux kernel Siarhei Siamashka
2015-01-09 17:15   ` Anatolij Gustschin
2015-01-11 12:05     ` Siarhei Siamashka
2015-01-09 10:01 ` [U-Boot] [PATCH 3/8] video: Add support for SSD2828 (parallel LCD to MIPI bridge) Siarhei Siamashka
2015-01-10  0:01   ` Anatolij Gustschin
2015-01-09 10:01 ` [U-Boot] [PATCH 4/8] video: sunxi: Hook up SSD2828 with the sunxi video driver Siarhei Siamashka
2015-01-10  0:21   ` Anatolij Gustschin
2015-01-09 10:01 ` [U-Boot] [PATCH 5/8] sun6i: Add LCD display support for MSI Primo81 tablet Siarhei Siamashka
2015-01-10  0:24   ` Anatolij Gustschin
2015-01-09 10:01 ` [U-Boot] [PATCH 6/8] video: ssd2828: Allow using 'pclk' as the PLL clock source Siarhei Siamashka
2015-01-10  0:33   ` Anatolij Gustschin
2015-01-09 10:01 ` [U-Boot] [PATCH 7/8] video: sunxi: Switch from 'tx_clk' to 'pclk' for SSD2828 Siarhei Siamashka
2015-01-10  0:39   ` Anatolij Gustschin
2015-01-09 10:01 ` [U-Boot] [PATCH 8/8] video: ssd2828: Use MIPI DCS commands to retrieve the LCD panel id Siarhei Siamashka
2015-01-09 10:28 ` [U-Boot] [PATCH 0/8] video: Add support for SSD2828 (parallel LCD to MIPI bridge) Siarhei Siamashka
2015-01-09 15:35 ` Hans de Goede
2015-01-10  9:17   ` Hans de Goede
2015-01-10 10:52   ` Ian Campbell
2015-01-11 12:09   ` Siarhei Siamashka [this message]

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=20150111140925.27bbc5ff@i7 \
    --to=siarhei.siamashka@gmail.com \
    --cc=u-boot@lists.denx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox