diff mbox series

ARM: dts: ux500-golden: Add S6E63M0 DSI display

Message ID 20200810124247.1958153-1-linus.walleij@linaro.org (mailing list archive)
State New, archived
Headers show
Series ARM: dts: ux500-golden: Add S6E63M0 DSI display | expand

Commit Message

Linus Walleij Aug. 10, 2020, 12:42 p.m. UTC
Add the Samsung S6E63M0 video mode DSI display to the
Samsung GT-S8190/Golden mobile phone.

Cc: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../arm/boot/dts/ste-ux500-samsung-golden.dts | 91 +++++++++++++++++++
 1 file changed, 91 insertions(+)

Comments

Stephan Gerhold Aug. 14, 2020, 3:40 p.m. UTC | #1
On Mon, Aug 10, 2020 at 02:42:47PM +0200, Linus Walleij wrote:
> Add the Samsung S6E63M0 video mode DSI display to the
> Samsung GT-S8190/Golden mobile phone.
> 
> Cc: Stephan Gerhold <stephan@gerhold.net>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  .../arm/boot/dts/ste-ux500-samsung-golden.dts | 91 +++++++++++++++++++
>  1 file changed, 91 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/ste-ux500-samsung-golden.dts b/arch/arm/boot/dts/ste-ux500-samsung-golden.dts
> index 5b499c0b2745..ef11603b6716 100644
> --- a/arch/arm/boot/dts/ste-ux500-samsung-golden.dts
> +++ b/arch/arm/boot/dts/ste-ux500-samsung-golden.dts
> @@ -290,6 +290,28 @@ ab8500_ldo_aux8 {
>  				};
>  			};
>  		};
> +
> +		mcde@a0350000 {
> +			status = "okay";
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&dsi_default_mode>;
> +
> +			dsi-controller@a0351000 {
> +				panel@0 {
> +					compatible = "samsung,s6e63m0";
> +					reg = <0>;
> +					vdd3-supply = <&panel_reg_3v0>;
> +					vci-supply = <&panel_reg_1v8>;
> +					reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
> +					/* ESD (electrostatic discharge) detection interrupt */
> +					interrupt-parent = <&gpio2>;
> +					interrupts = <18 IRQ_TYPE_EDGE_RISING>;
> +					interrupt-names = "esd";
> +					pinctrl-names = "default";
> +					pinctrl-0 = <&display_default_mode>;
> +				};
> +			};
> +		};
>  	};
>  
>  	gpio-keys {
> @@ -389,6 +411,40 @@ wl_reg_on: regulator-wl-reg-on {
>  		pinctrl-names = "default";
>  		pinctrl-0 = <&wlan_en_default>;
>  	};
> +
> +	/* MIC5663 GPIO-controlled regulator */

Typo: should be MIC5366

> +	panel_reg_1v8: regulator-panel-1v8 {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "panel-fixed-supply";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		/* GPIO219 */
> +		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
> +
> +		startup-delay-us = <5000>;

The datasheet of MIC5366 [1] suggests max of 125us, maybe take 200us for
a bit more. But not sure if we really need 5ms?

[1]: http://ww1.microchip.com/downloads/en/DeviceDoc/mic5365.pdf

> +		enable-active-high;
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&panel_reg_default_mode>;
> +	};
> +
> +	/* MIC5663 GPIO-controlled regulator */
> +	panel_reg_3v0: regulator-panel-3v0 {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "panel-fixed-supply";
> +		regulator-min-microvolt = <3000000>;
> +		regulator-max-microvolt = <3000000>;
> +		/* GPIO219 */
> +		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
> +
> +		startup-delay-us = <5000>;
> +		enable-active-high;
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&panel_reg_default_mode>;
> +	};
>  };
>  
>  &pinctrl {
> @@ -431,6 +487,41 @@ golden_cfg1 {
>  		};
>  	};
>  
> +	mcde {
> +		dsi_default_mode: dsi_default {
> +			default_mux1 {
> +				/* Mux in VSI0 used for DSI TE */
> +				function = "lcd";
> +				groups =
> +				"lcdvsi0_a_1"; /* VSI0 for LCD */
> +			};
> +			default_cfg1 {
> +				pins =
> +				"GPIO68_E1"; /* VSI0 */
> +				ste,config = <&in_nopull>;
> +			};
> +		};
> +	};
> +
> +	display {
> +		display_default_mode: display_default {
> +			skomer_cfg1 {
> +				pins = "GPIO139_C9"; /* MIPI_DSI0_RESET_N */
> +				ste,config = <&gpio_out_lo>;
> +			};
> +			skomer_cfg2 {
> +				pins = "GPIO82_C1"; /* LDI_ESD_DET */
> +				ste,config = <&gpio_in_pu>;
> +			};

nit: should be golden_cfg, not skomer_cfg.

> +		};
> +		panel_reg_default_mode: panel_reg_default {
> +			skomer_cfg1 {
> +				pins = "GPIO219_AG10";

Maybe add a /* LCD_PWR_EN */ comment here for consistency with the
other pinctrl configurations.

> +				ste,config = <&gpio_out_lo>;
> +			};
> +		};
> +	};
> +
>  	proximity {
>  		proximity_default: proximity_default {
>  			golden_cfg1 {
> -- 
> 2.26.2
> 

Overall it seems to be working fine on my samsung-golden.

Thanks for all your work!
Stephan
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/ste-ux500-samsung-golden.dts b/arch/arm/boot/dts/ste-ux500-samsung-golden.dts
index 5b499c0b2745..ef11603b6716 100644
--- a/arch/arm/boot/dts/ste-ux500-samsung-golden.dts
+++ b/arch/arm/boot/dts/ste-ux500-samsung-golden.dts
@@ -290,6 +290,28 @@  ab8500_ldo_aux8 {
 				};
 			};
 		};
+
+		mcde@a0350000 {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&dsi_default_mode>;
+
+			dsi-controller@a0351000 {
+				panel@0 {
+					compatible = "samsung,s6e63m0";
+					reg = <0>;
+					vdd3-supply = <&panel_reg_3v0>;
+					vci-supply = <&panel_reg_1v8>;
+					reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
+					/* ESD (electrostatic discharge) detection interrupt */
+					interrupt-parent = <&gpio2>;
+					interrupts = <18 IRQ_TYPE_EDGE_RISING>;
+					interrupt-names = "esd";
+					pinctrl-names = "default";
+					pinctrl-0 = <&display_default_mode>;
+				};
+			};
+		};
 	};
 
 	gpio-keys {
@@ -389,6 +411,40 @@  wl_reg_on: regulator-wl-reg-on {
 		pinctrl-names = "default";
 		pinctrl-0 = <&wlan_en_default>;
 	};
+
+	/* MIC5663 GPIO-controlled regulator */
+	panel_reg_1v8: regulator-panel-1v8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "panel-fixed-supply";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		/* GPIO219 */
+		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
+
+		startup-delay-us = <5000>;
+		enable-active-high;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&panel_reg_default_mode>;
+	};
+
+	/* MIC5663 GPIO-controlled regulator */
+	panel_reg_3v0: regulator-panel-3v0 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "panel-fixed-supply";
+		regulator-min-microvolt = <3000000>;
+		regulator-max-microvolt = <3000000>;
+		/* GPIO219 */
+		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
+
+		startup-delay-us = <5000>;
+		enable-active-high;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&panel_reg_default_mode>;
+	};
 };
 
 &pinctrl {
@@ -431,6 +487,41 @@  golden_cfg1 {
 		};
 	};
 
+	mcde {
+		dsi_default_mode: dsi_default {
+			default_mux1 {
+				/* Mux in VSI0 used for DSI TE */
+				function = "lcd";
+				groups =
+				"lcdvsi0_a_1"; /* VSI0 for LCD */
+			};
+			default_cfg1 {
+				pins =
+				"GPIO68_E1"; /* VSI0 */
+				ste,config = <&in_nopull>;
+			};
+		};
+	};
+
+	display {
+		display_default_mode: display_default {
+			skomer_cfg1 {
+				pins = "GPIO139_C9"; /* MIPI_DSI0_RESET_N */
+				ste,config = <&gpio_out_lo>;
+			};
+			skomer_cfg2 {
+				pins = "GPIO82_C1"; /* LDI_ESD_DET */
+				ste,config = <&gpio_in_pu>;
+			};
+		};
+		panel_reg_default_mode: panel_reg_default {
+			skomer_cfg1 {
+				pins = "GPIO219_AG10";
+				ste,config = <&gpio_out_lo>;
+			};
+		};
+	};
+
 	proximity {
 		proximity_default: proximity_default {
 			golden_cfg1 {