* [U-Boot] [PATCH 1/3] sunxi: video: Allow external DACs for VGA on platforms without TV encoders
2015-01-12 10:02 [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31 Chen-Yu Tsai
@ 2015-01-12 10:02 ` Chen-Yu Tsai
2015-01-12 10:02 ` [U-Boot] [PATCH 2/3] sunxi: video: Add support for external DAC enable pin Chen-Yu Tsai
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2015-01-12 10:02 UTC (permalink / raw)
To: u-boot
Using an external DAC for VGA output was available on sun5i. Since
some other SoCs don't have a builtin TV encoder, but might have
use for a VGA output, enable the option for the platforms that
don't have TV encoders.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
board/sunxi/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
index 882db33..bce270e 100644
--- a/board/sunxi/Kconfig
+++ b/board/sunxi/Kconfig
@@ -308,7 +308,7 @@ config VIDEO_VGA
config VIDEO_VGA_VIA_LCD
boolean "VGA via LCD controller support"
- depends on VIDEO && MACH_SUN5I
+ depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
default n
---help---
Say Y here to add support for external DACs connected to the parallel
--
2.1.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/3] sunxi: video: Add support for external DAC enable pin
2015-01-12 10:02 [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31 Chen-Yu Tsai
2015-01-12 10:02 ` [U-Boot] [PATCH 1/3] sunxi: video: Allow external DACs for VGA on platforms without TV encoders Chen-Yu Tsai
@ 2015-01-12 10:02 ` Chen-Yu Tsai
2015-01-12 10:19 ` Hans de Goede
2015-01-12 10:02 ` [U-Boot] [PATCH 3/3] sunxi: Hummingbird_A31_defconfig: Enable VGA output through external DAC Chen-Yu Tsai
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Chen-Yu Tsai @ 2015-01-12 10:02 UTC (permalink / raw)
To: u-boot
The external DAC for VGA output might have either a power or reset
control pin that needs to be pulled up, as is the case on the
Hummingbird A31.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
board/sunxi/Kconfig | 8 ++++++++
drivers/video/sunxi_display.c | 18 ++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
index bce270e..e9a6b3c 100644
--- a/board/sunxi/Kconfig
+++ b/board/sunxi/Kconfig
@@ -315,6 +315,14 @@ config VIDEO_VGA_VIA_LCD
LCD interface driving a VGA connector, such as found on the
Olimex A13 boards.
+config VIDEO_VGA_EXTERNAL_DAC_EN
+ string "LCD panel power enable pin"
+ depends on VIDEO_VGA_VIA_LCD
+ default ""
+ ---help---
+ Set the enable pin for the external VGA DAC. This takes a string in the
+ format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
+
config VIDEO_LCD_MODE
string "LCD panel timing details"
depends on VIDEO
diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c
index 47d820d..1052af2 100644
--- a/drivers/video/sunxi_display.c
+++ b/drivers/video/sunxi_display.c
@@ -813,6 +813,23 @@ static void sunxi_drc_init(void)
#endif
}
+#ifdef CONFIG_VIDEO_VGA_VIA_LCD
+static void sunxi_vga_external_dac_enable(void)
+{
+ int pin;
+
+ /*
+ * Start with backlight disabled to avoid the screen flashing to
+ * white while the lcd inits.
+ */
+ pin = sunxi_name_to_gpio(CONFIG_VIDEO_VGA_EXTERNAL_DAC_EN);
+ if (pin != -1) {
+ gpio_request(pin, "vga_enable");
+ gpio_direction_output(pin, 1);
+ }
+}
+#endif /* CONFIG_VIDEO_VGA_VIA_LCD */
+
static void sunxi_engines_init(void)
{
sunxi_composer_init();
@@ -860,6 +877,7 @@ static void sunxi_mode_set(const struct ctfb_res_modes *mode,
sunxi_lcdc_tcon0_mode_set(mode);
sunxi_composer_enable();
sunxi_lcdc_enable();
+ sunxi_vga_external_dac_enable();
#endif
break;
}
--
2.1.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/3] sunxi: video: Add support for external DAC enable pin
2015-01-12 10:02 ` [U-Boot] [PATCH 2/3] sunxi: video: Add support for external DAC enable pin Chen-Yu Tsai
@ 2015-01-12 10:19 ` Hans de Goede
2015-01-12 10:51 ` Chen-Yu Tsai
0 siblings, 1 reply; 9+ messages in thread
From: Hans de Goede @ 2015-01-12 10:19 UTC (permalink / raw)
To: u-boot
Hi,
On 12-01-15 11:02, Chen-Yu Tsai wrote:
> The external DAC for VGA output might have either a power or reset
> control pin that needs to be pulled up, as is the case on the
> Hummingbird A31.
>
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> ---
> board/sunxi/Kconfig | 8 ++++++++
> drivers/video/sunxi_display.c | 18 ++++++++++++++++++
> 2 files changed, 26 insertions(+)
>
> diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
> index bce270e..e9a6b3c 100644
> --- a/board/sunxi/Kconfig
> +++ b/board/sunxi/Kconfig
> @@ -315,6 +315,14 @@ config VIDEO_VGA_VIA_LCD
> LCD interface driving a VGA connector, such as found on the
> Olimex A13 boards.
>
> +config VIDEO_VGA_EXTERNAL_DAC_EN
> + string "LCD panel power enable pin"
> + depends on VIDEO_VGA_VIA_LCD
> + default ""
> + ---help---
> + Set the enable pin for the external VGA DAC. This takes a string in the
> + format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
> +
> config VIDEO_LCD_MODE
> string "LCD panel timing details"
> depends on VIDEO
> diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c
> index 47d820d..1052af2 100644
> --- a/drivers/video/sunxi_display.c
> +++ b/drivers/video/sunxi_display.c
> @@ -813,6 +813,23 @@ static void sunxi_drc_init(void)
> #endif
> }
>
> +#ifdef CONFIG_VIDEO_VGA_VIA_LCD
> +static void sunxi_vga_external_dac_enable(void)
> +{
> + int pin;
> +
> + /*
> + * Start with backlight disabled to avoid the screen flashing to
> + * white while the lcd inits.
> + */
This comment seems wrong, copy & paste error ?
Let me know if you agree that it is wrong, then I'll drop it before applying
the series, not need to resend.
Regards,
Hans
> + pin = sunxi_name_to_gpio(CONFIG_VIDEO_VGA_EXTERNAL_DAC_EN);
> + if (pin != -1) {
> + gpio_request(pin, "vga_enable");
> + gpio_direction_output(pin, 1);
> + }
> +}
> +#endif /* CONFIG_VIDEO_VGA_VIA_LCD */
> +
> static void sunxi_engines_init(void)
> {
> sunxi_composer_init();
> @@ -860,6 +877,7 @@ static void sunxi_mode_set(const struct ctfb_res_modes *mode,
> sunxi_lcdc_tcon0_mode_set(mode);
> sunxi_composer_enable();
> sunxi_lcdc_enable();
> + sunxi_vga_external_dac_enable();
> #endif
> break;
> }
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/3] sunxi: video: Add support for external DAC enable pin
2015-01-12 10:19 ` Hans de Goede
@ 2015-01-12 10:51 ` Chen-Yu Tsai
0 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2015-01-12 10:51 UTC (permalink / raw)
To: u-boot
On Mon, Jan 12, 2015 at 6:19 PM, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
>
> On 12-01-15 11:02, Chen-Yu Tsai wrote:
>>
>> The external DAC for VGA output might have either a power or reset
>> control pin that needs to be pulled up, as is the case on the
>> Hummingbird A31.
>>
>> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
>> ---
>> board/sunxi/Kconfig | 8 ++++++++
>> drivers/video/sunxi_display.c | 18 ++++++++++++++++++
>> 2 files changed, 26 insertions(+)
>>
>> diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
>> index bce270e..e9a6b3c 100644
>> --- a/board/sunxi/Kconfig
>> +++ b/board/sunxi/Kconfig
>> @@ -315,6 +315,14 @@ config VIDEO_VGA_VIA_LCD
>> LCD interface driving a VGA connector, such as found on the
>> Olimex A13 boards.
>>
>> +config VIDEO_VGA_EXTERNAL_DAC_EN
>> + string "LCD panel power enable pin"
>> + depends on VIDEO_VGA_VIA_LCD
>> + default ""
>> + ---help---
>> + Set the enable pin for the external VGA DAC. This takes a string
>> in the
>> + format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
>> port H.
>> +
>> config VIDEO_LCD_MODE
>> string "LCD panel timing details"
>> depends on VIDEO
>> diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c
>> index 47d820d..1052af2 100644
>> --- a/drivers/video/sunxi_display.c
>> +++ b/drivers/video/sunxi_display.c
>> @@ -813,6 +813,23 @@ static void sunxi_drc_init(void)
>> #endif
>> }
>>
>> +#ifdef CONFIG_VIDEO_VGA_VIA_LCD
>> +static void sunxi_vga_external_dac_enable(void)
>> +{
>> + int pin;
>> +
>> + /*
>> + * Start with backlight disabled to avoid the screen flashing to
>> + * white while the lcd inits.
>> + */
>
>
> This comment seems wrong, copy & paste error ?
>
> Let me know if you agree that it is wrong, then I'll drop it before applying
> the series, not need to resend.
Yes it's a copy & paste error. Please drop it.
Thanks!
ChenYu
> Regards,
>
> Hans
>
>
>
>> + pin = sunxi_name_to_gpio(CONFIG_VIDEO_VGA_EXTERNAL_DAC_EN);
>> + if (pin != -1) {
>> + gpio_request(pin, "vga_enable");
>> + gpio_direction_output(pin, 1);
>> + }
>> +}
>> +#endif /* CONFIG_VIDEO_VGA_VIA_LCD */
>> +
>> static void sunxi_engines_init(void)
>> {
>> sunxi_composer_init();
>> @@ -860,6 +877,7 @@ static void sunxi_mode_set(const struct ctfb_res_modes
>> *mode,
>> sunxi_lcdc_tcon0_mode_set(mode);
>> sunxi_composer_enable();
>> sunxi_lcdc_enable();
>> + sunxi_vga_external_dac_enable();
>> #endif
>> break;
>> }
>>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 3/3] sunxi: Hummingbird_A31_defconfig: Enable VGA output through external DAC
2015-01-12 10:02 [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31 Chen-Yu Tsai
2015-01-12 10:02 ` [U-Boot] [PATCH 1/3] sunxi: video: Allow external DACs for VGA on platforms without TV encoders Chen-Yu Tsai
2015-01-12 10:02 ` [U-Boot] [PATCH 2/3] sunxi: video: Add support for external DAC enable pin Chen-Yu Tsai
@ 2015-01-12 10:02 ` Chen-Yu Tsai
2015-01-12 10:18 ` [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31 Hans de Goede
2015-01-13 11:16 ` Hans de Goede
4 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2015-01-12 10:02 UTC (permalink / raw)
To: u-boot
The Hummingbird A31 uses an external DAC connected to the LCD0 outputs
for the on board VGA output. The DAC has a power control that's toggled
by GPIO.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
configs/Hummingbird_A31_defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/configs/Hummingbird_A31_defconfig b/configs/Hummingbird_A31_defconfig
index 93820ab..8896999 100644
--- a/configs/Hummingbird_A31_defconfig
+++ b/configs/Hummingbird_A31_defconfig
@@ -1,6 +1,8 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPA(21)"
CONFIG_FDTFILE="sun6i-a31-hummingbird.dtb"
+CONFIG_VIDEO_VGA_VIA_LCD=y
+CONFIG_VIDEO_VGA_EXTERNAL_DAC_EN="PH25"
+S:CONFIG_ARM=y
+S:CONFIG_ARCH_SUNXI=y
+S:CONFIG_MACH_SUN6I=y
--
2.1.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31
2015-01-12 10:02 [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31 Chen-Yu Tsai
` (2 preceding siblings ...)
2015-01-12 10:02 ` [U-Boot] [PATCH 3/3] sunxi: Hummingbird_A31_defconfig: Enable VGA output through external DAC Chen-Yu Tsai
@ 2015-01-12 10:18 ` Hans de Goede
2015-01-12 11:00 ` Chen-Yu Tsai
2015-01-13 11:16 ` Hans de Goede
4 siblings, 1 reply; 9+ messages in thread
From: Hans de Goede @ 2015-01-12 10:18 UTC (permalink / raw)
To: u-boot
Hi,
On 12-01-15 11:02, Chen-Yu Tsai wrote:
> Hi Hans, Ian,
>
> This series enables the VGA output on the Hummingbird A31. The VGA output
> is driven from LCD0, through an external DAC that's powered up by toggling
> pin PH25.
Thanks for working on this!
> Patch 1 allows selecting CONFIG_VIDEO_VGA_VIA_LCD on sun6i and sun8i.
> These 2 platforms do not have builtin TV encoders, and some vendor may
> use an external DAC to support VGA.
>
> Patch 2 adds support for toggling a GPIO pin as part of the video init
> sequence to power up the DAC
>
> Patch 3 updates the Hummingbird A31 defconfig to enable VGA output.
>
> I have one question about the VGA_VIA_LCD code in general. The color depth
> is forced to 18. Is this necessary?
Depends on the DAC-s you're using, so far this was only used with Olinuxino
boards which use 6 bits dacs. If your board has 8 bit dacs then we should
make this configurable. Note that all this does is enable dithering to avoid
color gradients becoming ugly with 6 bits dacs, but with 8 bit dacs we should
disable the dithering (which is done when depth == 24).
> Can we make it configurable? I haven't
> tried displaying pictures so I don't know if it makes a visible difference.
>
> Also with the VGA output on my Hummingbird A31, I get greenish flashing
> pixels where it should be black, like in and between characters. Once
> booted in to the kernel this disappears, and I get a nice console with
> simplefb. Kind of weird.
Weird indeed, could it be that the DAC-s need some power-supply setup which
u-boot does not set up, but your axp221 kernel code does setup ?
Regards,
Hans
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31
2015-01-12 10:18 ` [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31 Hans de Goede
@ 2015-01-12 11:00 ` Chen-Yu Tsai
0 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2015-01-12 11:00 UTC (permalink / raw)
To: u-boot
Hi,
On Mon, Jan 12, 2015 at 6:18 PM, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
> On 12-01-15 11:02, Chen-Yu Tsai wrote:
>>
>> Hi Hans, Ian,
>>
>> This series enables the VGA output on the Hummingbird A31. The VGA output
>> is driven from LCD0, through an external DAC that's powered up by toggling
>> pin PH25.
>
>
> Thanks for working on this!
>
>> Patch 1 allows selecting CONFIG_VIDEO_VGA_VIA_LCD on sun6i and sun8i.
>> These 2 platforms do not have builtin TV encoders, and some vendor may
>> use an external DAC to support VGA.
>>
>> Patch 2 adds support for toggling a GPIO pin as part of the video init
>> sequence to power up the DAC
>>
>> Patch 3 updates the Hummingbird A31 defconfig to enable VGA output.
>>
>> I have one question about the VGA_VIA_LCD code in general. The color depth
>> is forced to 18. Is this necessary?
>
>
> Depends on the DAC-s you're using, so far this was only used with Olinuxino
> boards which use 6 bits dacs. If your board has 8 bit dacs then we should
> make this configurable. Note that all this does is enable dithering to avoid
> color gradients becoming ugly with 6 bits dacs, but with 8 bit dacs we
> should
> disable the dithering (which is done when depth == 24).
OK. The Hummingbird uses all 24 bits. The DAC is actually 30 bits.
First I need to get some sort of full color display setup running.
Then I'll do the config options.
>> Can we make it configurable? I haven't
>> tried displaying pictures so I don't know if it makes a visible
>> difference.
>>
>> Also with the VGA output on my Hummingbird A31, I get greenish flashing
>> pixels where it should be black, like in and between characters. Once
>> booted in to the kernel this disappears, and I get a nice console with
>> simplefb. Kind of weird.
>
>
> Weird indeed, could it be that the DAC-s need some power-supply setup which
> u-boot does not set up, but your axp221 kernel code does setup ?
There's just the regulator that's enabled in u-boot. And I'm not running an
AXP221 enabled kernel either. Hence the weirdness. :|
Regards
ChenYu
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31
2015-01-12 10:02 [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31 Chen-Yu Tsai
` (3 preceding siblings ...)
2015-01-12 10:18 ` [U-Boot] [PATCH 0/3] sunxi: Enable VGA output on Hummingbird A31 Hans de Goede
@ 2015-01-13 11:16 ` Hans de Goede
4 siblings, 0 replies; 9+ messages in thread
From: Hans de Goede @ 2015-01-13 11:16 UTC (permalink / raw)
To: u-boot
Hi,
On 12-01-15 11:02, Chen-Yu Tsai wrote:
> Hi Hans, Ian,
>
> This series enables the VGA output on the Hummingbird A31. The VGA output
> is driven from LCD0, through an external DAC that's powered up by toggling
> pin PH25.
>
> Patch 1 allows selecting CONFIG_VIDEO_VGA_VIA_LCD on sun6i and sun8i.
> These 2 platforms do not have builtin TV encoders, and some vendor may
> use an external DAC to support VGA.
>
> Patch 2 adds support for toggling a GPIO pin as part of the video init
> sequence to power up the DAC
>
> Patch 3 updates the Hummingbird A31 defconfig to enable VGA output.
>
> I have one question about the VGA_VIA_LCD code in general. The color depth
> is forced to 18. Is this necessary? Can we make it configurable? I haven't
> tried displaying pictures so I don't know if it makes a visible difference.
>
> Also with the VGA output on my Hummingbird A31, I get greenish flashing
> pixels where it should be black, like in and between characters. Once
> booted in to the kernel this disappears, and I get a nice console with
> simplefb. Kind of weird.
>
>
> Cheers
> ChenYu
Thanks, applied to u-boot-sunxi/next (with the discussed fix), while at
it I've also fixed the whitespace errors you pointed out in
<CAGb2v65Y26fTjcoOcWUZLG0+BR+UrWJ4HCL5d1V7ovn6TA6WTw@mail.gmail.com>
Regards,
Hans
>
>
> Chen-Yu Tsai (3):
> sunxi: video: Allow external DACs for VGA on platforms without TV
> encoders
> sunxi: video: Add support for external DAC enable pin
> sunxi: Hummingbird_A31_defconfig: Enable VGA output through external
> DAC
>
> board/sunxi/Kconfig | 10 +++++++++-
> configs/Hummingbird_A31_defconfig | 2 ++
> drivers/video/sunxi_display.c | 18 ++++++++++++++++++
> 3 files changed, 29 insertions(+), 1 deletion(-)
>
^ permalink raw reply [flat|nested] 9+ messages in thread