diff mbox series

[v1,3/8] ARM: tegra: apalis/colibri_t30: fix hdmi regulator

Message ID 20181009152523.3771-4-marcel@ziswiler.com
State Deferred
Headers show
Series ARM: dts: tegra: last minute fixes | expand

Commit Message

Marcel Ziswiler Oct. 9, 2018, 3:25 p.m. UTC
From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Fix HDMI requiring two regulators being enabled by a single GPIO. Model
this using an intermediate reg_en_vdd_hdmi regulator being the
vin-supply of them other two. This fixes the display subsystem and gets
rid of the following error during boot:

 reg-fixed-voltage: probe of regulator-3v3-avdd-hdmi failed with error -16
 tegra-hdmi 54280000.hdmi: failed to get VDD regulator

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v1: None

 arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi | 16 ++++++++++++----
 arch/arm/boot/dts/tegra30-apalis.dtsi      | 16 ++++++++++++----
 arch/arm/boot/dts/tegra30-colibri.dtsi     | 16 ++++++++++++----
 3 files changed, 36 insertions(+), 12 deletions(-)

Comments

Jon Hunter Oct. 12, 2018, 10:44 a.m. UTC | #1
On 09/10/18 16:25, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> Fix HDMI requiring two regulators being enabled by a single GPIO. Model
> this using an intermediate reg_en_vdd_hdmi regulator being the
> vin-supply of them other two. This fixes the display subsystem and gets
> rid of the following error during boot:
> 
>  reg-fixed-voltage: probe of regulator-3v3-avdd-hdmi failed with error -16
>  tegra-hdmi 54280000.hdmi: failed to get VDD regulator
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> ---
> 
> Changes in v1: None
> 
>  arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi | 16 ++++++++++++----
>  arch/arm/boot/dts/tegra30-apalis.dtsi      | 16 ++++++++++++----
>  arch/arm/boot/dts/tegra30-colibri.dtsi     | 16 ++++++++++++----
>  3 files changed, 36 insertions(+), 12 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi b/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
> index 02f8126481a2..065a24ac1052 100644
> --- a/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
> +++ b/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
> @@ -1133,8 +1133,7 @@
>  		regulator-min-microvolt = <1800000>;
>  		regulator-max-microvolt = <1800000>;
>  		enable-active-high;
> -		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> -		vin-supply = <&reg_1v8_vio>;
> +		vin-supply = <&reg_en_vdd_hdmi>;
>  	};
>  
>  	reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
> @@ -1143,8 +1142,7 @@
>  		regulator-min-microvolt = <3300000>;
>  		regulator-max-microvolt = <3300000>;
>  		enable-active-high;
> -		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> -		vin-supply = <&reg_module_3v3>;
> +		vin-supply = <&reg_en_vdd_hdmi>;
>  	};
>  
>  	reg_5v0_charge_pump: regulator-5v0-charge-pump {
> @@ -1171,6 +1169,16 @@
>  		regulator-always-on;
>  	};
>  
> +	reg_en_vdd_hdmi: regulator-en-vdd-hdmi {
> +		compatible = "regulator-fixed";
> +		regulator-name = "EN_VDD_HDMI";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		enable-active-high;
> +		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> +		vin-supply = <&reg_module_3v3>;
> +	};
> +
>  	sound {
>  		compatible = "toradex,tegra-audio-sgtl5000-apalis_t30",
>  			     "nvidia,tegra-audio-sgtl5000";
> diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi b/arch/arm/boot/dts/tegra30-apalis.dtsi
> index 7f112f192fe9..6727c5868425 100644
> --- a/arch/arm/boot/dts/tegra30-apalis.dtsi
> +++ b/arch/arm/boot/dts/tegra30-apalis.dtsi
> @@ -1115,8 +1115,7 @@
>  		regulator-min-microvolt = <1800000>;
>  		regulator-max-microvolt = <1800000>;
>  		enable-active-high;
> -		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> -		vin-supply = <&reg_1v8_vio>;
> +		vin-supply = <&reg_en_vdd_hdmi>;
>  	};
>  
>  	reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
> @@ -1125,8 +1124,7 @@
>  		regulator-min-microvolt = <3300000>;
>  		regulator-max-microvolt = <3300000>;
>  		enable-active-high;
> -		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> -		vin-supply = <&reg_module_3v3>;
> +		vin-supply = <&reg_en_vdd_hdmi>;
>  	};
>  
>  	reg_5v0_charge_pump: regulator-5v0-charge-pump {
> @@ -1153,6 +1151,16 @@
>  		regulator-always-on;
>  	};
>  
> +	reg_en_vdd_hdmi: regulator-en-vdd-hdmi {
> +		compatible = "regulator-fixed";
> +		regulator-name = "EN_VDD_HDMI";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		enable-active-high;
> +		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> +		vin-supply = <&reg_module_3v3>;
> +	};
> +
>  	sound {
>  		compatible = "toradex,tegra-audio-sgtl5000-apalis_t30",
>  			     "nvidia,tegra-audio-sgtl5000";
> diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi b/arch/arm/boot/dts/tegra30-colibri.dtsi
> index 35af03ca9e90..963f26071415 100644
> --- a/arch/arm/boot/dts/tegra30-colibri.dtsi
> +++ b/arch/arm/boot/dts/tegra30-colibri.dtsi
> @@ -965,8 +965,7 @@
>  		regulator-min-microvolt = <1800000>;
>  		regulator-max-microvolt = <1800000>;
>  		enable-active-high;
> -		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> -		vin-supply = <&reg_1v8_vio>;
> +		vin-supply = <&reg_en_vdd_hdmi>;
>  	};
>  
>  	reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
> @@ -975,8 +974,7 @@
>  		regulator-min-microvolt = <3300000>;
>  		regulator-max-microvolt = <3300000>;
>  		enable-active-high;
> -		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> -		vin-supply = <&reg_module_3v3>;
> +		vin-supply = <&reg_en_vdd_hdmi>;
>  	};
>  
>  	reg_5v0_charge_pump: regulator-5v0-charge-pump {
> @@ -1012,6 +1010,16 @@
>  		regulator-always-on;
>  	};
>  
> +	reg_en_vdd_hdmi: regulator-en-vdd-hdmi {
> +		compatible = "regulator-fixed";
> +		regulator-name = "EN_VDD_HDMI";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		enable-active-high;
> +		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
> +		vin-supply = <&reg_module_3v3>;
> +	};
> +
>  	sound {
>  		compatible = "toradex,tegra-audio-sgtl5000-colibri_t30",
>  			     "nvidia,tegra-audio-sgtl5000";
> 

Given Linus W's fix for the gpiolib [0], I am not convinced that this is
really better/needed.

Cheers
Jon

[0] https://lore.kernel.org/patchwork/patch/998354/
Marcel Ziswiler Oct. 12, 2018, 11:51 a.m. UTC | #2
On Fri, 2018-10-12 at 11:44 +0100, Jon Hunter wrote:
> On 09/10/18 16:25, Marcel Ziswiler wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > ...
> > 
> Given Linus W's fix for the gpiolib [0], I am not convinced that this
> is
> really better/needed.

Being pragmatic at the end of the day I'm just happy if it works and I
may just drop this one then if nobody else sees any advantage.

After all there are still enough really broken things like audio on
Apalis TK1. Off to debug that one further... Argh, -EPROBE_DEFER!

> Cheers
> Jon
> 
> [0] https://lore.kernel.org/patchwork/patch/998354/
Marcel Ziswiler Oct. 12, 2018, 1:16 p.m. UTC | #3
On Fri, 2018-10-12 at 11:44 +0100, Jon Hunter wrote:
> On 09/10/18 16:25, Marcel Ziswiler wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > ...
> > 
> Given Linus W's fix for the gpiolib [0], I am not convinced that this
> is
> really better/needed.

Looks like nobody else favours this (rather the opposite is the case it
seems [1]) so I will drop it in a v2. Thanks!

Any feedback about any of the other patches?

> Cheers
> Jon
> 
> [0] https://lore.kernel.org/patchwork/patch/998354/

[1] 
https://lore.kernel.org/lkml/20181012125911.GT30658@n2100.armlinux.org.
uk/
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi b/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
index 02f8126481a2..065a24ac1052 100644
--- a/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
+++ b/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
@@ -1133,8 +1133,7 @@ 
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <1800000>;
 		enable-active-high;
-		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
-		vin-supply = <&reg_1v8_vio>;
+		vin-supply = <&reg_en_vdd_hdmi>;
 	};
 
 	reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
@@ -1143,8 +1142,7 @@ 
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
 		enable-active-high;
-		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
-		vin-supply = <&reg_module_3v3>;
+		vin-supply = <&reg_en_vdd_hdmi>;
 	};
 
 	reg_5v0_charge_pump: regulator-5v0-charge-pump {
@@ -1171,6 +1169,16 @@ 
 		regulator-always-on;
 	};
 
+	reg_en_vdd_hdmi: regulator-en-vdd-hdmi {
+		compatible = "regulator-fixed";
+		regulator-name = "EN_VDD_HDMI";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		enable-active-high;
+		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
+		vin-supply = <&reg_module_3v3>;
+	};
+
 	sound {
 		compatible = "toradex,tegra-audio-sgtl5000-apalis_t30",
 			     "nvidia,tegra-audio-sgtl5000";
diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi b/arch/arm/boot/dts/tegra30-apalis.dtsi
index 7f112f192fe9..6727c5868425 100644
--- a/arch/arm/boot/dts/tegra30-apalis.dtsi
+++ b/arch/arm/boot/dts/tegra30-apalis.dtsi
@@ -1115,8 +1115,7 @@ 
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <1800000>;
 		enable-active-high;
-		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
-		vin-supply = <&reg_1v8_vio>;
+		vin-supply = <&reg_en_vdd_hdmi>;
 	};
 
 	reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
@@ -1125,8 +1124,7 @@ 
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
 		enable-active-high;
-		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
-		vin-supply = <&reg_module_3v3>;
+		vin-supply = <&reg_en_vdd_hdmi>;
 	};
 
 	reg_5v0_charge_pump: regulator-5v0-charge-pump {
@@ -1153,6 +1151,16 @@ 
 		regulator-always-on;
 	};
 
+	reg_en_vdd_hdmi: regulator-en-vdd-hdmi {
+		compatible = "regulator-fixed";
+		regulator-name = "EN_VDD_HDMI";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		enable-active-high;
+		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
+		vin-supply = <&reg_module_3v3>;
+	};
+
 	sound {
 		compatible = "toradex,tegra-audio-sgtl5000-apalis_t30",
 			     "nvidia,tegra-audio-sgtl5000";
diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi b/arch/arm/boot/dts/tegra30-colibri.dtsi
index 35af03ca9e90..963f26071415 100644
--- a/arch/arm/boot/dts/tegra30-colibri.dtsi
+++ b/arch/arm/boot/dts/tegra30-colibri.dtsi
@@ -965,8 +965,7 @@ 
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <1800000>;
 		enable-active-high;
-		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
-		vin-supply = <&reg_1v8_vio>;
+		vin-supply = <&reg_en_vdd_hdmi>;
 	};
 
 	reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
@@ -975,8 +974,7 @@ 
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
 		enable-active-high;
-		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
-		vin-supply = <&reg_module_3v3>;
+		vin-supply = <&reg_en_vdd_hdmi>;
 	};
 
 	reg_5v0_charge_pump: regulator-5v0-charge-pump {
@@ -1012,6 +1010,16 @@ 
 		regulator-always-on;
 	};
 
+	reg_en_vdd_hdmi: regulator-en-vdd-hdmi {
+		compatible = "regulator-fixed";
+		regulator-name = "EN_VDD_HDMI";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		enable-active-high;
+		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
+		vin-supply = <&reg_module_3v3>;
+	};
+
 	sound {
 		compatible = "toradex,tegra-audio-sgtl5000-colibri_t30",
 			     "nvidia,tegra-audio-sgtl5000";