diff mbox series

[7/7] ARM: dts: exynos: k3g: Add display support

Message ID 20230716220644.22158-9-markuss.broks@gmail.com (mailing list archive)
State New
Headers show
Series Add various peripheral support for K3G | expand

Commit Message

Markuss Broks July 16, 2023, 10:05 p.m. UTC
This device has Samsung S6E3FA2 DSI display installed,
this adds the device-tree bindings for it but two things
prevent it from being fully usable: one is a bug in Exynos5
DSI subsystem, which I believe is not tested properly;
the bug occurs randomly regardless of any variables, but it
seems to occur less if the Exynos DRM kernel module is loaded
later in the kernel boot process (the bug concludes in display
filling with static) ; another issue is that efforts
to support the S6E3FA2 panel are still going on, and the driver
for the panel is not in the kernel tree yet.

Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
---
 arch/arm/boot/dts/exynos5422-samsung-k3g.dts | 41 ++++++++++++++++++++
 1 file changed, 41 insertions(+)

Comments

Krzysztof Kozlowski July 19, 2023, 9:19 a.m. UTC | #1
On 17/07/2023 00:05, Markuss Broks wrote:
> This device has Samsung S6E3FA2 DSI display installed,

Full stop.

> this adds the device-tree bindings for it but two things

Please do not use "This commit/patch", but imperative mood. See longer
explanation here:
https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95

> prevent it from being fully usable: one is a bug in Exynos5
> DSI subsystem, which I believe is not tested properly;

Full stop.

> the bug occurs randomly regardless of any variables, but it
> seems to occur less if the Exynos DRM kernel module is loaded
> later in the kernel boot process (the bug concludes in display
> filling with static) ; another issue is that efforts

Full stop.

> to support the S6E3FA2 panel are still going on, and the driver
> for the panel is not in the kernel tree yet.
> 
> Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
> ---
>  arch/arm/boot/dts/exynos5422-samsung-k3g.dts | 41 ++++++++++++++++++++
>  1 file changed, 41 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/exynos5422-samsung-k3g.dts b/arch/arm/boot/dts/exynos5422-samsung-k3g.dts
> index e019b630db94..954de392afbf 100644
> --- a/arch/arm/boot/dts/exynos5422-samsung-k3g.dts
> +++ b/arch/arm/boot/dts/exynos5422-samsung-k3g.dts
> @@ -203,6 +203,42 @@ &cpu4 {
>  	cpu-supply = <&buck6_reg>;
>  };
>  
> +&mixer {
> +	status = "okay";
> +};
> +
> +&fimd {

Mixed order.

> +	status = "okay";
> +	samsung,invert-vclk;
> +};
> +
> +&dsi {
> +	status = "okay";
> +
> +	samsung,pll-clock-frequency = <24000000>;
> +	samsung,burst-clock-frequency = <500000000>;
> +	samsung,esc-clock-frequency = <16000000>;
> +
> +	vddcore-supply = <&ldo8_reg>;
> +	vddio-supply = <&ldo10_reg>;
> +
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	panel@0 {
> +		reg = <0>;
> +		compatible = "samsung,s6e3fa2";

Compatible is always the first property. Second is reg.



Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/exynos5422-samsung-k3g.dts b/arch/arm/boot/dts/exynos5422-samsung-k3g.dts
index e019b630db94..954de392afbf 100644
--- a/arch/arm/boot/dts/exynos5422-samsung-k3g.dts
+++ b/arch/arm/boot/dts/exynos5422-samsung-k3g.dts
@@ -203,6 +203,42 @@  &cpu4 {
 	cpu-supply = <&buck6_reg>;
 };
 
+&mixer {
+	status = "okay";
+};
+
+&fimd {
+	status = "okay";
+	samsung,invert-vclk;
+};
+
+&dsi {
+	status = "okay";
+
+	samsung,pll-clock-frequency = <24000000>;
+	samsung,burst-clock-frequency = <500000000>;
+	samsung,esc-clock-frequency = <16000000>;
+
+	vddcore-supply = <&ldo8_reg>;
+	vddio-supply = <&ldo10_reg>;
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	panel@0 {
+		reg = <0>;
+		compatible = "samsung,s6e3fa2";
+
+		reset-gpios = <&gpy7 4 GPIO_ACTIVE_LOW>;
+
+		vddio-supply = <&ldo25_reg>;
+		vdd-supply = <&ldo28_reg>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&display_reset>;
+	};
+};
+
 &gpu {
 	status = "okay";
 	mali-supply = <&buck4_reg>;
@@ -839,6 +875,11 @@  touchkey_irq: touchkey-irq-pins {
 		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
 	};
 
+	display_reset: display-reset-pins {
+		samsung,pins = "gpy7-4";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
 	wlan_reset: wlan-reset {
 		samsung,pins = "gpy7-7";
 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;