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 15/17] sunxi: Ippo_q8h defconfigs: Enable the LCD panel found on these tablets.
Date: Fri, 2 Jan 2015 13:02:02 +0200	[thread overview]
Message-ID: <20150102130202.23a4dbe2@i7> (raw)
In-Reply-To: <54A53F3B.9060603@redhat.com>

On Thu, 01 Jan 2015 13:36:11 +0100
Hans de Goede <hdegoede@redhat.com> wrote:

> Hi,
> 
> On 01-01-15 03:35, Chen-Yu Tsai wrote:
> > Hi Hans,
> >
> > On Wed, Dec 31, 2014 at 7:22 PM, Hans de Goede <hdegoede@redhat.com> wrote:
> 
> <snip>
> 
> >>> I also compared the config settings from your patches with the
> >>> automatically generated records and noticed some inconsistencies.
> >>>
> >>> For example, Ippo_q8h_v1_2_defconfig :
> >>>
> >>> === A part of your patch:
> >>>
> >>> +CONFIG_VIDEO_LCD_POWER="PH7"
> >>> +CONFIG_VIDEO_LCD_BL_EN="PH6"
> >>> +CONFIG_VIDEO_LCD_BL_PWM="PH0"
> >>>
> >>> === My script:
> >>>
> >>> # warning: could not decode 'lcd_power' (port:power2<1><0><default><1>)
> >>> CONFIG_VIDEO_LCD_BL_EN="PH6"
> >>> # warning: 'lcd_pwm' gpio extracted from 'pwm0_para' section
> >>> CONFIG_VIDEO_LCD_BL_PWM="PH0"
> >>> # warning: 'lcd_gpio_0' = 'port:PH07<1><0><default><1>'
> >>>
> >>> ===
> >>>
> >>> In both cases we have references to PH0/PH6/PH7 pins, however my
> >>> script would pick "AXP0-2" for CONFIG_VIDEO_LCD_POWER (taking your
> >>> advise), while the role of 'lcd_gpio_0' is not quite clear.
> >>> And this is Allwinner A23, which does not use even use AXP209 PMIC.
> >>>
> >>> What is actually going on with the AXP GPIO and power routing? Is AXP
> >>> GPIO really doing what we expect it to be doing?
> >>
> >>
> >> What is likely going on here is that we do not need PH7 at all, when I
> >> first wrote the LCD support for the Ippo_q8h_v1_2 I did not have any
> >> axp-gpio support at all, so I decided to just ignore the axp gpio listed
> >> in the fex and see if things would work without it, and they did, so it
> >> seems that either the LCD does not have a power/enable pin for the lcd
> >> itself, or at least it is ok to leave the pin floating (which is the axp
> >> gpio default).
> >
> > On the A23 reference design,

Thanks for the hint. I looked through the A13, A20, A23 and A31
reference design schematics and got a lot of useful information.

> > LCD power is only controlled by enabling the AXP LDO output. Downstream just
> > uses the LDO voltage level, rather than a GPIO, to enable the discrete
> > regulators. Since the AXP is already software controllable, it makes
> > sense. But it's possible on some boards we may need it, when the LCD
> > power is derived from a common 5V or 3.3V
> > source.

Do you mean 3.0V on DCDC1SW or something else?

Now I also got LCD display in my MSI Primo81 tablet working. Because
Allwinner A31s does not have a native MIPI DSI interface, it uses
an extra SSD2828 bridge chip, which converts parallel LCD interface
into MIPI DSI. MIPI DSI interface is needed for the B079XAN01/LP079X01
7.85" IPS LCD display. Supposedly SSD2828 chip needs 1.2V on ELDO3 for
power (based on checking the kernel sources in A31 SDK), but everything
seems to work even without it. And the fex file also specifies
"lcd_power" as "port:power2<1><0><default><1>" similar to A23,
however everything power-related just happens to magically work fine
without doing anything special. This feels very suspicious and
abnormal :-)

> Ok.
> 
> >> As for the lcd_gpio_# entries in the fex, looking at the linux-sunxi code,
> >> it seems that they are initialized to the value specified in the fex once,
> >> which for the Ippo_q8h_v1_2 means setting the gpio to output high once,
> >> which we do effectively be assigning PH7 to CONFIG_VIDEO_LCD_POWER (and
> >> I need to test if this is really necessary).
> >
> > PH7 in the reference design drives LCD_RST. I guess leaving it floating
> > doesn't assert reset in the LCD driver. IMO, LCD_RESET would be a better
> > name. It's what schematics use.
> 
> Ok, note that the current defconfig for the q8h is driving it, but is using
> CONFIG_VIDEO_LCD_POWER to drive it, which certainly seems the wrong name for
> it.
> 
> >> I agree that this is confusing, and that we should probably add something
> >> akin to lcd_gpio_0 to u-boot so that we've a 1:1 translation.
> >>
> >> A quick grep:
> >>
> >> [hans at shalem u-boot]$ grep -R -h lcd_gpio_0 ../sunxi-boards/sys_config |
> >> sort | uniq
> >> ;lcd_gpio_0          = port:PA23<0><0><default><default>
> >> ;lcd_gpio_0          = port:PH10<1><0><2><1>
> >> Binary file ../sunxi-boards/sys_config/a20/script.bin matches
> >> lcd_gpio_0      =
> >> lcd_gpio_0          =
> >> lcd_gpio_0 =
> >> lcd_gpio_0 = ""
> >> lcd_gpio_0 = port:PA06<1><0><default><1>
> >> lcd_gpio_0 = port:PH07<1><0><default><1>
> >> lcd_gpio_0 = port:PH10<1><0><2><1>
> >>
> >> Shows that the port is always put in output high mode, grepping for gpio_1
> >> returns
> >> 2 boards which use gpio_1 (and higher):
> >>
> >> sys_config/a20/icou_fatty_i.fex
> >> sys_config/a31s/msi_primo81.fex
> >>
> >> Both of which have a non supported cpu_if setting of 4 resp 6.
> >>
> >> So it seems for now we can simply add a CONFIG_VIDEO_LCD_GPIO0 and always
> >> drive the pin specified there (if any) high, and then we're good to go.
> >
> > See the previous paragraph about the name.
> 
> Although I think that it is great that you've schematics for the q8h, we do not
> have schematics for the majority of the boards we want to support, so I think it
> is best to stick with the CONFIG_VIDEO_LCD_GPIO# name, and add a commment to the
> defconfig what it really is in the cases where we know what it is used for.

BTW, the MSI Primo81 tablet (lcd_if=6) uses a set of four pins in the
'lcd_gpio_*' fex config. Three of them are used for SPI communication
to configure the SSD2828 chip (write only). And one more pin is reset.
The reset pin is not "lcd_gpio_0", but "lcd_gpio_2". So yes, the exact
pin naming may depend on the "lcd_if" config variable and also maybe
even change between different Allwinner SDK versions.

I'll submit the lcd_if=6 (LCD_IF_EXT_DSI) support code soon, but the
original Allwinner's SPI bit-banging code needs to be reworked to get
rid of magic constants. Given that the SSD2828 datasheet exists, this
should be doable.

Do we really want to keep the magic CONFIG_VIDEO_LCD_GPIO# names?

-- 
Best regards,
Siarhei Siamashka

  reply	other threads:[~2015-01-02 11:02 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-24 19:06 [U-Boot] sunxi: video: Add LCD output and A13-Olinuxino VGA output support Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 01/17] videomodes: Add support for refresh and pclk_khz to video_get_params() Hans de Goede
2014-12-28  9:27   ` Ian Campbell
2015-01-08 17:23   ` Anatolij Gustschin
2014-12-24 19:06 ` [U-Boot] [PATCH 02/17] sunxi: gpio: Properly sort mux defines by port number Hans de Goede
2014-12-28  9:28   ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 03/17] sunxi: gpio: Add support for gpio pins on the AXP209 pmic Hans de Goede
2014-12-28  9:34   ` Ian Campbell
2014-12-28 10:35     ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 04/17] sunxi: video: Drop disabling of backend / lcdc / hdmi encoder on modeset Hans de Goede
2014-12-28  9:34   ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 05/17] sunxi: video: Improve monitor video-mode option handling Hans de Goede
2014-12-28  9:40   ` Ian Campbell
2014-12-28 10:55     ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 06/17] sunxi: video: Prepare for lcd support Hans de Goede
2014-12-28  9:41   ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 07/17] sunxi: video: Modify sunxi_lcdc_pll_set to work with both tcon0 and tcon1 Hans de Goede
2014-12-29 13:36   ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 08/17] sunxi: video: Move sunxi_drc_init Hans de Goede
2014-12-25  9:08   ` Chen-Yu Tsai
2014-12-25 10:22     ` Hans de Goede
2014-12-29 13:37       ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 09/17] sunxi: video: Add lcd output support Hans de Goede
2014-12-29 13:43   ` Ian Campbell
2014-12-31 11:59     ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 10/17] sunxi: video: Add suppport SoCs without HDMI, e.g. the A13 and A23 Hans de Goede
2014-12-29 13:50   ` Ian Campbell
2014-12-31 12:07     ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 11/17] sunxi: video: Add support for VGA via external DACs connected to the LCD pins Hans de Goede
2014-12-29 13:51   ` Ian Campbell
2014-12-29 19:25     ` Hans de Goede
2014-12-30  2:21       ` Chen-Yu Tsai
2014-12-30 10:21         ` Hans de Goede
2014-12-24 19:06 ` [U-Boot] [PATCH 12/17] sunxi: sunxi-common.h: Reduce bootm_size to take the framebuffer into account Hans de Goede
2014-12-29 13:52   ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 13/17] sunxi: A13-OLinuXino defconfigs: Enable VGA output, add lcd-mode for 7" LCD Hans de Goede
2014-12-29 13:53   ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 14/17] sunxi: Add 2 defconfigs for using the Olimex 7" lcd with olinuxino boards Hans de Goede
2014-12-29 13:55   ` Ian Campbell
2014-12-29 19:27     ` Hans de Goede
2014-12-30  7:25       ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 15/17] sunxi: Ippo_q8h defconfigs: Enable the LCD panel found on these tablets Hans de Goede
2014-12-25 10:00   ` Chen-Yu Tsai
2014-12-25 10:59     ` Hans de Goede
2014-12-26  6:44       ` Chen-Yu Tsai
2014-12-26 10:48         ` Hans de Goede
2014-12-29 13:57         ` Ian Campbell
2014-12-29 15:56           ` Chen-Yu Tsai
2014-12-29 19:31             ` Hans de Goede
2014-12-30 10:18       ` Siarhei Siamashka
2014-12-30 10:26         ` Hans de Goede
2014-12-30 10:36           ` Hans de Goede
2014-12-30 11:25             ` Siarhei Siamashka
2014-12-31 11:22               ` Hans de Goede
2014-12-30 12:17           ` Siarhei Siamashka
2014-12-31 11:22             ` Hans de Goede
2015-01-01  2:35               ` Chen-Yu Tsai
2015-01-01 12:36                 ` Hans de Goede
2015-01-02 11:02                   ` Siarhei Siamashka [this message]
2015-01-04 20:22                     ` Hans de Goede
2015-01-01 20:03               ` Siarhei Siamashka
2015-01-01 20:15                 ` Hans de Goede
2015-01-01 21:05                   ` Siarhei Siamashka
2014-12-24 19:06 ` [U-Boot] [PATCH 16/17] sunxi: video: Remove sunxi_display.enabled variable Hans de Goede
2014-12-29 13:57   ` Ian Campbell
2014-12-24 19:06 ` [U-Boot] [PATCH 17/17] sunxi: video: Use sunxi_lcdc_get_clk_delay to calculate tcon1 delay Hans de Goede
2014-12-29 13:58   ` Ian Campbell

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=20150102130202.23a4dbe2@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