ARM: tegra: HDMI and DSI updates
Subsystems (2)
cover ARM: tegra: HDMI and DSI updates
From: Thierry Reding <[email protected]>
This series enables support for HDMI on Venice2 and Jetson TK1. It also adds the missing +5V regulators for Harmony, Beaver and Dalmore. Other boards may also need similar changes, but I don't have access to them. That said existing boards should continue to work without modifications since we were completely ignoring the +5V regulator before. So the only change that this should introduce is that perhaps some additional power can be saved because the +5V regulator now isn't always on.
The final patch in this series hooks up the DSI power supply on Dalmore so that it can also be switched of if not used.
Note that I have only an A05 Dalmore and from what I can tell there have been some changes from A04 (the one supported by the upstream kernel) and A05 regarding HDMI, so it'd be great if somebody could test these changes (on top of a recent linux-next) on an A04 Dalmore to make sure they work there.
Thierry
Thierry Reding (7):
ARM: tegra: Add Tegra124 HDMI support
ARM: tegra: venice2 - Enable HDMI
ARM: tegra: jetson-tk1 - Enable HDMI support
ARM: tegra: harmony - Add +5V HDMI supply
ARM: tegra: beaver - Add +5V HDMI supply
ARM: tegra: dalmore - Add +5V HDMI supply
ARM: tegra: dalmore - Add DSI power supply
arch/arm/boot/dts/tegra114-dalmore.dts | 20 ++++++++++++---- arch/arm/boot/dts/tegra124-jetson-tk1.dts | 39 +++++++++++++++++++++++++++++-- arch/arm/boot/dts/tegra124-venice2.dts | 37 +++++++++++++++++++++++++++-- arch/arm/boot/dts/tegra124.dtsi | 12 ++++++++++ arch/arm/boot/dts/tegra20-harmony.dts | 12 ++++++++++ arch/arm/boot/dts/tegra30-beaver.dts | 12 ++++++++++ 6 files changed, 123 insertions(+), 9 deletions(-)
Signature · 1 line
1.9.2
PATCH 1/7 ARM: tegra: Add Tegra124 HDMI support
From: Thierry Reding <[email protected]>
Add a device node for the HDMI controller found on Tegra124.
--- arch/arm/boot/dts/tegra124.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+)
arch/arm/boot/dts/tegra124.dtsi +12 -0
@@ -51,6 +51,18 @@ nvidia,head = <1>; }; + hdmi at 0,54280000 { + compatible = "nvidia,tegra124-hdmi"; + reg = <0x0 0x54280000 0x0 0x00040000>; + interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&tegra_car TEGRA124_CLK_HDMI>, + <&tegra_car TEGRA124_CLK_PLL_D2_OUT0>; + clock-names = "hdmi", "parent"; + resets = <&tegra_car 51>; + reset-names = "hdmi"; + status = "disabled"; + }; + sor at 0,54540000 { compatible = "nvidia,tegra124-sor"; reg = <0x0 0x54540000 0x0 0x00040000>;
Signature · 1 line
1.9.2
PATCH 2/7 ARM: tegra: venice2 - Enable HDMI
In reply to Thierry RedingFrom: Thierry Reding <[email protected]>
Add HDMI +5V, VDD and PLL regulators and enable the DDC I2C controller. Enable the HDMI device, provide the power supplies as well as the DDC adapter and use the standard pin (PN7) for hotplug detection.
--- arch/arm/boot/dts/tegra124-venice2.dts | 37 ++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-)
arch/arm/boot/dts/tegra124-venice2.dts +35 -2
@@ -17,6 +17,18 @@ }; host1x at 0,50000000 { + hdmi at 0,54280000 { + status = "okay"; + + vdd-supply = <&vdd_3v3_hdmi>; + pll-supply = <&vdd_hdmi_pll>; + hdmi-supply = <&vdd_5v0_hdmi>; + + nvidia,ddc-i2c-bus = <&hdmi_ddc>; + nvidia,hpd-gpio = + <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; + }; + sor at 0,54540000 { status = "okay";
@@ -601,7 +613,7 @@ clock-frequency = <100000>; }; - i2c at 0,7000c700 { + hdmi_ddc: i2c at 0,7000c700 { status = "okay"; clock-frequency = <100000>; };
@@ -700,7 +712,7 @@ regulator-boot-on; }; - sd4 { + vdd_1v05_run: sd4 { regulator-name = "+1.05V_RUN"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>;
@@ -1147,6 +1159,27 @@ enable-active-high; vin-supply = <&vdd_3v3_sys>; }; + + vdd_hdmi_pll: regulator at 11 { + compatible = "regulator-fixed"; + reg = <11>; + regulator-name = "+1.05V_RUN_AVDD_HDMI_PLL"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>; + vin-supply = <&vdd_1v05_run>; + }; + + vdd_5v0_hdmi: regulator at 12 { + compatible = "regulator-fixed"; + reg = <12>; + regulator-name = "+5V_HDMI_CON"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply = <&vdd_5v0_sys>; + }; }; sound {
Signature · 1 line
1.9.2
PATCH 3/7 ARM: tegra: jetson-tk1 - Enable HDMI support
In reply to Thierry RedingFrom: Thierry Reding <[email protected]>
Add HDMI +5V, VDD and PLL regulators and enable the DDC I2C controller. Enable the HDMI device, provide the power supplies as well as the DDC adapter and use pin the standard pin (PN7) for hotplug detection.
--- arch/arm/boot/dts/tegra124-jetson-tk1.dts | 39 +++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-)
arch/arm/boot/dts/tegra124-jetson-tk1.dts +37 -2
@@ -16,6 +16,20 @@ reg = <0x0 0x80000000 0x0 0x80000000>; }; + host1x at 0,50000000 { + hdmi at 0,54280000 { + status = "okay"; + + hdmi-supply = <&vdd_5v0_hdmi>; + pll-supply = <&vdd_hdmi_pll>; + vdd-supply = <&vdd_3v3_hdmi>; + + nvidia,ddc-i2c-bus = <&hdmi_ddc>; + nvidia,hpd-gpio = + <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; + }; + }; + pinmux: pinmux at 0,70000868 { pinctrl-names = "default"; pinctrl-0 = <&state_default>;
@@ -1382,7 +1396,7 @@ }; /* HDMI DDC */ - i2c at 0,7000c700 { + hdmi_ddc: i2c at 0,7000c700 { status = "okay"; clock-frequency = <100000>; };
@@ -1477,7 +1491,7 @@ regulator-boot-on; }; - sd4 { + vdd_1v05_run: sd4 { regulator-name = "+1.05V_RUN"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>;
@@ -1765,6 +1779,27 @@ enable-active-high; vin-supply = <&vdd_3v3_sys>; }; + + vdd_hdmi_pll: regulator at 11 { + compatible = "regulator-fixed"; + reg = <11>; + regulator-name = "+1.05V_RUN_AVDD_HDMI_PLL"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>; + vin-supply = <&vdd_1v05_run>; + }; + + vdd_5v0_hdmi: regulator at 12 { + compatible = "regulator-fixed"; + reg = <12>; + regulator-name = "+5V_HDMI_CON"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply = <&vdd_5v0_sys>; + }; }; sound {
Signature · 1 line
1.9.2
PATCH 4/7 ARM: tegra: harmony - Add +5V HDMI supply
In reply to Thierry RedingFrom: Thierry Reding <[email protected]>
This supply controls the +5V pin on the HDMI connector, which in turn is used by attached sinks to return the hotplug detect signal.
--- arch/arm/boot/dts/tegra20-harmony.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+)
arch/arm/boot/dts/tegra20-harmony.dts +12 -0
@@ -28,6 +28,7 @@ hdmi at 54280000 { status = "okay"; + hdmi-supply = <&vdd_5v0_hdmi>; vdd-supply = <&hdmi_vdd_reg>; pll-supply = <&hdmi_pll_reg>;
@@ -724,6 +725,17 @@ gpio = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_HIGH>; enable-active-high; }; + + vdd_5v0_hdmi: regulator at 6 { + compatible = "regulator-fixed"; + reg = <6>; + regulator-name = "VDDIO_HDMI"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio TEGRA_GPIO(T, 2) GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply = <&vdd_5v0_reg>; + }; }; sound {
Signature · 1 line
1.9.2
PATCH 5/7 ARM: tegra: beaver - Add +5V HDMI supply
In reply to Thierry RedingFrom: Thierry Reding <[email protected]>
This supply controls the +5V pin on the HDMI connector, which in turn is used by attached sinks to return the hotplug detect signal.
--- arch/arm/boot/dts/tegra30-beaver.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+)
arch/arm/boot/dts/tegra30-beaver.dts +12 -0
@@ -40,6 +40,7 @@ hdmi at 54280000 { status = "okay"; + hdmi-supply = <&vdd_5v0_hdmi>; vdd-supply = <&sys_3v3_reg>; pll-supply = <&vio_reg>;
@@ -478,6 +479,17 @@ gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>; vin-supply = <&sys_3v3_reg>; }; + + vdd_5v0_hdmi: regulator at 8 { + compatible = "regulator-fixed"; + reg = <8>; + regulator-name = "+VDD_5V_HDMI"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&sys_3v3_reg>; + }; }; sound {
Signature · 1 line
1.9.2
PATCH 6/7 ARM: tegra: dalmore - Add +5V HDMI supply
In reply to Thierry RedingFrom: Thierry Reding <[email protected]>
This supply controls the +5V pin on the HDMI connector, which in turn is used by attached sinks to return the hotplug detect signal.
---
Note: Unfortunately I do have an A05 Dalmore, and from what I can tell HDMI is actually one of the areas where there have been changes between A04 and A05. It'd be great if somebody could check that this actually works. Also note that it requires Tegra DRM patches that are currently in linux-next to enable the +5V regulator.
arch/arm/boot/dts/tegra114-dalmore.dts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)
arch/arm/boot/dts/tegra114-dalmore.dts +12 -2
@@ -25,6 +25,7 @@ hdmi at 54280000 { status = "okay"; + hdmi-supply = <&vdd_5v0_hdmi>; vdd-supply = <&vdd_hdmi_reg>; pll-supply = <&palmas_smps3_reg>;
@@ -1231,8 +1232,6 @@ regulator-name = "vdd_hdmi_5v0"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; - enable-active-high; - gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>; vin-supply = <&tps65090_dcdc1_reg>; };
@@ -1245,6 +1244,17 @@ enable-active-high; gpio = <&palmas_gpio 6 0>; }; + + vdd_5v0_hdmi: regulator at 7 { + compatible = "regulator-fixed"; + reg = <7>; + regulator-name = "VDD_5V0_HDMI_CON"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply = <&tps65090_dcdc1_reg>; + }; }; sound {
Signature · 1 line
1.9.2
PATCH 7/7 ARM: tegra: dalmore - Add DSI power supply
In reply to Thierry RedingFrom: Thierry Reding <[email protected]>
The 1.2V supply for CSI and DSI was previously marked always-on. This is suboptimal because it prevents the supply from being disabled when there is no activity in the display or capture paths that it powers.
Hook up the regulator to the DSI output and mark it as not always-on, so that it will only be enabled when DSI actually needs it.
--- arch/arm/boot/dts/tegra114-dalmore.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm/boot/dts/tegra114-dalmore.dts +3 -3
@@ -37,6 +37,8 @@ dsi at 54300000 { status = "okay"; + avdd-dsi-csi-supply = <&avdd_1v2_reg>; + panel at 0 { compatible = "panasonic,vvx10f004b00", "simple-panel";
@@ -983,12 +985,10 @@ regulator-max-microvolt = <2800000>; }; - ldo3 { + avdd_1v2_reg: ldo3 { regulator-name = "avdd-dsi-csi"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; - regulator-always-on; - regulator-boot-on; }; ldo4 {
Signature · 1 line
1.9.2
Stephen Warren
Appliedcover ARM: tegra: HDMI and DSI updates
In reply to Thierry RedingQuoted 10 lines · Thierry Reding
From: Thierry Reding <[email protected]>
This series enables support for HDMI on Venice2 and Jetson TK1. It also adds the missing +5V regulators for Harmony, Beaver and Dalmore. Other boards may also need similar changes, but I don't have access to them. That said existing boards should continue to work without modifications since we were completely ignoring the +5V regulator before. So the only change that this should introduce is that perhaps some additional power can be saved because the +5V regulator now isn't always on.
Quoted 2 lines
The final patch in this series hooks up the DSI power supply on Dalmore so that it can also be switched of if not used.
I've applied the series to Tegra's for-3.16/dt branch.