* [PATCH v3] ARM: tegra: ventana: enable internal display
@ 2012-11-19 9:43 Alexandre Courbot
[not found] ` <1353318187-26484-1-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Alexandre Courbot @ 2012-11-19 9:43 UTC (permalink / raw)
To: Stephen Warren, Mark Zhang, Thierry Reding
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA, gnurou-Re5JQEeQqe8AvxtiuMwx3w,
Alexandre Courbot
Enable host1x and add the rgb output.
Also add the power sequence that controls the backlight and panel. The
sequence strictly follows the order and timings of the panel
specification.
Currently the backlight device controls both backlight and panel, this
needs to be fixed once the panel framework supports power sequences.
Signed-off-by: Alexandre Courbot <acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
arch/arm/boot/dts/tegra20-ventana.dts | 108 +++++++++++++++++++++++++++++++++-
1 file changed, 105 insertions(+), 3 deletions(-)
diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts
index adc4754..31c9c5c 100644
--- a/arch/arm/boot/dts/tegra20-ventana.dts
+++ b/arch/arm/boot/dts/tegra20-ventana.dts
@@ -10,6 +10,15 @@
reg = <0x00000000 0x40000000>;
};
+ host1x {
+ dc@54200000 {
+ rgb {
+ status = "okay";
+ nvidia,ddc-i2c-bus = <&lcd_ddc>;
+ };
+ };
+ };
+
pinmux {
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
@@ -341,7 +350,7 @@
#size-cells = <0>;
};
- i2c@1 {
+ lcd_ddc: i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
@@ -516,6 +525,99 @@
bus-width = <8>;
};
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ brightness-levels = <0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255>;
+ default-brightness-level = <12>;
+
+ /* resources used by the power sequences */
+ pwms = <&pwm 2 5000000>;
+ pwm-names = "backlight";
+ power-supply = <&vdd_bl_reg>;
+ panel-supply = <&vdd_panel_reg>;
+
+ power-sequences {
+ power-on {
+ /*
+ * Panel power and LVDS enable.
+ * TODO: move into the panel device as soon as
+ * panel framework supports power sequences.
+ */
+ step0 {
+ type = "regulator";
+ id = "panel";
+ enable;
+ };
+ step1 {
+ type = "gpio";
+ gpio = <&gpio 10 0>;
+ value = <1>;
+ };
+ step2 {
+ type = "delay";
+ delay = <200000>;
+ };
+ /* Backlight sequence. This belongs here. */
+ step3 {
+ type = "regulator";
+ id = "power";
+ enable;
+ };
+ step4 {
+ type = "delay";
+ delay = <10000>;
+ };
+ step5 {
+ type = "pwm";
+ id = "backlight";
+ enable;
+ };
+ step6 {
+ type = "gpio";
+ gpio = <&gpio 28 0>;
+ value = <1>;
+ };
+ };
+
+ power-off {
+ step0 {
+ type = "gpio";
+ gpio = <&gpio 28 0>;
+ value = <0>;
+ };
+ step1 {
+ type = "pwm";
+ id = "backlight";
+ disable;
+ };
+ step2 {
+ type = "delay";
+ delay = <10000>;
+ };
+ step3 {
+ type = "regulator";
+ id = "power";
+ disable;
+ };
+ /* This also belongs to the panel sequence */
+ step4 {
+ type = "delay";
+ delay = <200000>;
+ };
+ step5 {
+ type = "gpio";
+ gpio = <&gpio 10 0>;
+ value = <0>;
+ };
+ step6 {
+ type = "regulator";
+ id = "panel";
+ disable;
+ };
+ };
+ };
+ };
+
regulators {
compatible = "simple-bus";
#address-cells = <1>;
@@ -549,7 +651,7 @@
enable-active-high;
};
- regulator@3 {
+ vdd_panel_reg: regulator@3 {
compatible = "regulator-fixed";
reg = <3>;
regulator-name = "vdd_pnl";
@@ -559,7 +661,7 @@
enable-active-high;
};
- regulator@4 {
+ vdd_bl_reg: regulator@4 {
compatible = "regulator-fixed";
reg = <4>;
regulator-name = "vdd_bl";
--
1.8.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3] ARM: tegra: ventana: enable internal display
[not found] ` <1353318187-26484-1-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
@ 2012-11-20 1:37 ` Mark Zhang
[not found] ` <50AADEE5.2030302-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Mark Zhang @ 2012-11-20 1:37 UTC (permalink / raw)
To: Alexandre Courbot
Cc: Stephen Warren, Thierry Reding,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Great. So this means I2C2 is used for LCD and HDMI both. While HDMI is
not plugged, the EDID of LCD will be checked out, right?
Mark
On 11/19/2012 05:43 PM, Alexandre Courbot wrote:
> Enable host1x and add the rgb output.
>
> Also add the power sequence that controls the backlight and panel. The
> sequence strictly follows the order and timings of the panel
> specification.
>
> Currently the backlight device controls both backlight and panel, this
> needs to be fixed once the panel framework supports power sequences.
>
> Signed-off-by: Alexandre Courbot <acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> ---
> arch/arm/boot/dts/tegra20-ventana.dts | 108 +++++++++++++++++++++++++++++++++-
> 1 file changed, 105 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts
> index adc4754..31c9c5c 100644
> --- a/arch/arm/boot/dts/tegra20-ventana.dts
> +++ b/arch/arm/boot/dts/tegra20-ventana.dts
> @@ -10,6 +10,15 @@
> reg = <0x00000000 0x40000000>;
> };
>
> + host1x {
> + dc@54200000 {
> + rgb {
> + status = "okay";
> + nvidia,ddc-i2c-bus = <&lcd_ddc>;
> + };
> + };
> + };
> +
> pinmux {
> pinctrl-names = "default";
> pinctrl-0 = <&state_default>;
> @@ -341,7 +350,7 @@
> #size-cells = <0>;
> };
>
> - i2c@1 {
> + lcd_ddc: i2c@1 {
> reg = <1>;
> #address-cells = <1>;
> #size-cells = <0>;
> @@ -516,6 +525,99 @@
> bus-width = <8>;
> };
>
> + backlight: backlight {
> + compatible = "pwm-backlight";
> + brightness-levels = <0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255>;
> + default-brightness-level = <12>;
> +
> + /* resources used by the power sequences */
> + pwms = <&pwm 2 5000000>;
> + pwm-names = "backlight";
> + power-supply = <&vdd_bl_reg>;
> + panel-supply = <&vdd_panel_reg>;
> +
> + power-sequences {
> + power-on {
> + /*
> + * Panel power and LVDS enable.
> + * TODO: move into the panel device as soon as
> + * panel framework supports power sequences.
> + */
> + step0 {
> + type = "regulator";
> + id = "panel";
> + enable;
> + };
> + step1 {
> + type = "gpio";
> + gpio = <&gpio 10 0>;
> + value = <1>;
> + };
> + step2 {
> + type = "delay";
> + delay = <200000>;
> + };
> + /* Backlight sequence. This belongs here. */
> + step3 {
> + type = "regulator";
> + id = "power";
> + enable;
> + };
> + step4 {
> + type = "delay";
> + delay = <10000>;
> + };
> + step5 {
> + type = "pwm";
> + id = "backlight";
> + enable;
> + };
> + step6 {
> + type = "gpio";
> + gpio = <&gpio 28 0>;
> + value = <1>;
> + };
> + };
> +
> + power-off {
> + step0 {
> + type = "gpio";
> + gpio = <&gpio 28 0>;
> + value = <0>;
> + };
> + step1 {
> + type = "pwm";
> + id = "backlight";
> + disable;
> + };
> + step2 {
> + type = "delay";
> + delay = <10000>;
> + };
> + step3 {
> + type = "regulator";
> + id = "power";
> + disable;
> + };
> + /* This also belongs to the panel sequence */
> + step4 {
> + type = "delay";
> + delay = <200000>;
> + };
> + step5 {
> + type = "gpio";
> + gpio = <&gpio 10 0>;
> + value = <0>;
> + };
> + step6 {
> + type = "regulator";
> + id = "panel";
> + disable;
> + };
> + };
> + };
> + };
> +
> regulators {
> compatible = "simple-bus";
> #address-cells = <1>;
> @@ -549,7 +651,7 @@
> enable-active-high;
> };
>
> - regulator@3 {
> + vdd_panel_reg: regulator@3 {
> compatible = "regulator-fixed";
> reg = <3>;
> regulator-name = "vdd_pnl";
> @@ -559,7 +661,7 @@
> enable-active-high;
> };
>
> - regulator@4 {
> + vdd_bl_reg: regulator@4 {
> compatible = "regulator-fixed";
> reg = <4>;
> regulator-name = "vdd_bl";
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] ARM: tegra: ventana: enable internal display
[not found] ` <50AADEE5.2030302-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
@ 2012-11-20 1:47 ` Alex Courbot
2012-11-20 5:08 ` Stephen Warren
0 siblings, 1 reply; 5+ messages in thread
From: Alex Courbot @ 2012-11-20 1:47 UTC (permalink / raw)
To: Mark Zhang
Cc: Stephen Warren, Thierry Reding,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
On Tuesday 20 November 2012 09:37:41 Mark Zhang wrote:
> Great. So this means I2C2 is used for LCD and HDMI both. While HDMI is
> not plugged, the EDID of LCD will be checked out, right?
Ahhh. So that's why the LCD DDC was not working during my previous tests - I
had HDMI nodes in my DT as well as the HDMI cable plugged! Indeed, things seem
to work as you described. I assumed the i2cmux node would set the right pin
configuration according to whether we want to read the LCD or HDMI DDC, but
apparently this is not totally working yet. Glad we figured it out. Adding the
HDMI nodes to Ventana will probably require to fix this (along with other
things, probably) first.
Alex.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] ARM: tegra: ventana: enable internal display
2012-11-20 1:47 ` Alex Courbot
@ 2012-11-20 5:08 ` Stephen Warren
[not found] ` <50AB1044.5030704-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Warren @ 2012-11-20 5:08 UTC (permalink / raw)
To: Alex Courbot
Cc: Mark Zhang, Thierry Reding,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
On 11/19/2012 06:47 PM, Alex Courbot wrote:
> On Tuesday 20 November 2012 09:37:41 Mark Zhang wrote:
>> Great. So this means I2C2 is used for LCD and HDMI both. While HDMI is
>> not plugged, the EDID of LCD will be checked out, right?
>
> Ahhh. So that's why the LCD DDC was not working during my previous tests - I
> had HDMI nodes in my DT as well as the HDMI cable plugged! Indeed, things seem
> to work as you described. I assumed the i2cmux node would set the right pin
> configuration according to whether we want to read the LCD or HDMI DDC, but
> apparently this is not totally working yet. Glad we figured it out. Adding the
> HDMI nodes to Ventana will probably require to fix this (along with other
> things, probably) first.
That is kinda the whole point of the I2C mux... If it really isn't
working, can you please investigate why. i2cdump or i2cget would be
useful tools for testing this.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] ARM: tegra: ventana: enable internal display
[not found] ` <50AB1044.5030704-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
@ 2012-11-20 5:11 ` Alex Courbot
0 siblings, 0 replies; 5+ messages in thread
From: Alex Courbot @ 2012-11-20 5:11 UTC (permalink / raw)
To: Stephen Warren
Cc: Mark Zhang, Thierry Reding,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
On Tuesday 20 November 2012 13:08:20 Stephen Warren wrote:
> On 11/19/2012 06:47 PM, Alex Courbot wrote:
> > On Tuesday 20 November 2012 09:37:41 Mark Zhang wrote:
> >> Great. So this means I2C2 is used for LCD and HDMI both. While HDMI is
> >> not plugged, the EDID of LCD will be checked out, right?
> >
> > Ahhh. So that's why the LCD DDC was not working during my previous tests -
> > I had HDMI nodes in my DT as well as the HDMI cable plugged! Indeed,
> > things seem to work as you described. I assumed the i2cmux node would set
> > the right pin configuration according to whether we want to read the LCD
> > or HDMI DDC, but apparently this is not totally working yet. Glad we
> > figured it out. Adding the HDMI nodes to Ventana will probably require to
> > fix this (along with other things, probably) first.
>
> That is kinda the whole point of the I2C mux... If it really isn't
> working, can you please investigate why. i2cdump or i2cget would be
> useful tools for testing this.
Keeping that on my TODO list. By the meantime, better not to add HDMI nodes on
Ventana. LCD should work ok with this patch though.
Alex.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-11-20 5:11 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-19 9:43 [PATCH v3] ARM: tegra: ventana: enable internal display Alexandre Courbot
[not found] ` <1353318187-26484-1-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-20 1:37 ` Mark Zhang
[not found] ` <50AADEE5.2030302-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-20 1:47 ` Alex Courbot
2012-11-20 5:08 ` Stephen Warren
[not found] ` <50AB1044.5030704-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-20 5:11 ` Alex Courbot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).