linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] A610 enablement, J606F display
@ 2023-06-20 13:17 Konrad Dybcio
  2023-06-20 13:17 ` [PATCH 1/4] arm64: dts: qcom: sm6115: Add GPU nodes Konrad Dybcio
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Konrad Dybcio @ 2023-06-20 13:17 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio

Enable the A610 GPU on SM6115, as well as on the RB2 and J606F boards.
Add display support for the latter.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
Konrad Dybcio (4):
      arm64: dts: qcom: sm6115: Add GPU nodes
      arm64: dts: qcom: sm6115p-j606f: Hook up display
      arm64: dts: qcom: sm6115p-j606f: Enable GPU
      arm64: dts: qcom: qrb4210-rb2: Enable GPU

 arch/arm64/boot/dts/qcom/qrb4210-rb2.dts          |   8 ++
 arch/arm64/boot/dts/qcom/sm6115.dtsi              | 103 ++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts |  65 ++++++++++++--
 3 files changed, 171 insertions(+), 5 deletions(-)
---
base-commit: 9dbf40840551df336c95ce2a3adbdd25ed53c0ef
change-id: 20230620-topic-gpu_tablet_disp-cdc6ca5941c4

Best regards,
-- 
Konrad Dybcio <konrad.dybcio@linaro.org>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/4] arm64: dts: qcom: sm6115: Add GPU nodes
  2023-06-20 13:17 [PATCH 0/4] A610 enablement, J606F display Konrad Dybcio
@ 2023-06-20 13:17 ` Konrad Dybcio
  2023-06-20 15:54   ` Dmitry Baryshkov
  2023-06-20 13:17 ` [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display Konrad Dybcio
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 12+ messages in thread
From: Konrad Dybcio @ 2023-06-20 13:17 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio

Introduce nodes for the A610 GPU and its GMU wrapper along with the
speedbin fuse entry in QFPROM.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 arch/arm64/boot/dts/qcom/sm6115.dtsi | 103 +++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi
index 55118577bf92..424b4f3c909b 100644
--- a/arch/arm64/boot/dts/qcom/sm6115.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi
@@ -865,6 +865,11 @@ qusb2_hstx_trim: hstx-trim@25b {
 				reg = <0x25b 0x1>;
 				bits = <1 4>;
 			};
+
+			gpu_speed_bin: gpu-speed-bin@6006 {
+				reg = <0x6006 0x2>;
+				bits = <5 8>;
+			};
 		};
 
 		rng: rng@1b53000 {
@@ -1316,6 +1321,104 @@ usb_dwc3: usb@4e00000 {
 			};
 		};
 
+		gpu: gpu@5900000 {
+			compatible = "qcom,adreno-610.0", "qcom,adreno";
+			reg = <0x0 0x05900000 0x0 0x40000>;
+			reg-names = "kgsl_3d0_reg_memory";
+
+			/* There's no (real) GMU, so we have to handle quite a bunch of clocks! */
+			clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>,
+				 <&gpucc GPU_CC_AHB_CLK>,
+				 <&gcc GCC_BIMC_GPU_AXI_CLK>,
+				 <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+				 <&gpucc GPU_CC_CX_GMU_CLK>,
+				 <&gpucc GPU_CC_CXO_CLK>;
+			clock-names = "core",
+				      "iface",
+				      "mem_iface",
+				      "alt_mem_iface",
+				      "gmu",
+				      "xo";
+
+			interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+
+			iommus = <&adreno_smmu 0 1>;
+			operating-points-v2 = <&gpu_opp_table>;
+			power-domains = <&rpmpd SM6115_VDDCX>;
+			qcom,gmu = <&gmu_wrapper>;
+
+			nvmem-cells = <&gpu_speed_bin>;
+			nvmem-cell-names = "speed_bin";
+
+			status = "disabled";
+
+			zap-shader {
+				memory-region = <&pil_gpu_mem>;
+			};
+
+			gpu_opp_table: opp-table {
+				compatible = "operating-points-v2";
+
+				opp-320000000 {
+					opp-hz = /bits/ 64 <320000000>;
+					required-opps = <&rpmpd_opp_low_svs>;
+					opp-supported-hw = <0x1f>;
+				};
+
+				opp-465000000 {
+					opp-hz = /bits/ 64 <465000000>;
+					required-opps = <&rpmpd_opp_svs>;
+					opp-supported-hw = <0x1f>;
+				};
+
+				opp-600000000 {
+					opp-hz = /bits/ 64 <600000000>;
+					required-opps = <&rpmpd_opp_svs_plus>;
+					opp-supported-hw = <0x1f>;
+				};
+
+				opp-745000000 {
+					opp-hz = /bits/ 64 <745000000>;
+					required-opps = <&rpmpd_opp_nom>;
+					opp-supported-hw = <0xf>;
+				};
+
+				opp-820000000 {
+					opp-hz = /bits/ 64 <820000000>;
+					required-opps = <&rpmpd_opp_nom_plus>;
+					opp-supported-hw = <0x7>;
+				};
+
+				opp-900000000 {
+					opp-hz = /bits/ 64 <900000000>;
+					required-opps = <&rpmpd_opp_turbo>;
+					opp-supported-hw = <0x7>;
+				};
+
+				/* Speed bin 2 can reach 950 Mhz instead of 980 like the rest. */
+				opp-950000000 {
+					opp-hz = /bits/ 64 <950000000>;
+					required-opps = <&rpmpd_opp_turbo_plus>;
+					opp-supported-hw = <0x4>;
+				};
+
+				opp-980000000 {
+					opp-hz = /bits/ 64 <980000000>;
+					required-opps = <&rpmpd_opp_turbo_plus>;
+					opp-supported-hw = <0x3>;
+				};
+			};
+		};
+
+		gmu_wrapper: gmu@596a000 {
+			compatible = "qcom,adreno-gmu-wrapper";
+			reg = <0x0 0x0596a000 0x0 0x30000>;
+			reg-names = "gmu";
+			power-domains = <&gpucc GPU_CX_GDSC>,
+					<&gpucc GPU_GX_GDSC>;
+			power-domain-names = "cx", "gx";
+		};
+
 		gpucc: clock-controller@5990000 {
 			compatible = "qcom,sm6115-gpucc";
 			reg = <0x0 0x05990000 0x0 0x9000>;

-- 
2.41.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display
  2023-06-20 13:17 [PATCH 0/4] A610 enablement, J606F display Konrad Dybcio
  2023-06-20 13:17 ` [PATCH 1/4] arm64: dts: qcom: sm6115: Add GPU nodes Konrad Dybcio
@ 2023-06-20 13:17 ` Konrad Dybcio
  2023-06-20 15:52   ` Dmitry Baryshkov
  2023-06-20 13:17 ` [PATCH 3/4] arm64: dts: qcom: sm6115p-j606f: Enable GPU Konrad Dybcio
  2023-06-20 13:17 ` [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: " Konrad Dybcio
  3 siblings, 1 reply; 12+ messages in thread
From: Konrad Dybcio @ 2023-06-20 13:17 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio

Enable the required nodes, add the required pins and tweak a
regulator to enable non-simplefb display on the Tab P11.

Do note that there exists a second SKU with a different panel+touch
combo, but due to insufficient information, that will need to be
handled separately.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts | 57 +++++++++++++++++++++--
 1 file changed, 52 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
index 81fdcaf48926..a10ce676bd44 100644
--- a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
+++ b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
@@ -65,9 +65,41 @@ ramoops@ffc00000 {
 	};
 };
 
-&dispcc {
-	/* HACK: disable until a panel driver is ready to retain simplefb */
-	status = "disabled";
+&mdss {
+	status = "okay";
+};
+
+&mdss_dsi0 {
+	vdda-supply = <&pm6125_l18>;
+	status = "okay";
+
+	panel: panel@0 {
+		compatible = "lenovo,j606f-boe-nt36523w", "novatek,nt36523w";
+		reg = <0>;
+
+		reset-gpios = <&tlmm 82 GPIO_ACTIVE_LOW>;
+		vddio-supply = <&pm6125_l9>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&te_active &sde_dsi_active>;
+
+		rotation = <180>; /* Yep, it's mounted upside down! */
+
+		port {
+			panel_in: endpoint {
+				remote-endpoint = <&mdss_dsi0_out>;
+			};
+		};
+	};
+};
+
+&mdss_dsi0_out {
+	data-lanes = <0 1 2 3>;
+	remote-endpoint = <&panel_in>;
+};
+
+&mdss_dsi0_phy {
+	status = "okay";
 };
 
 &pm6125_gpios {
@@ -212,8 +244,9 @@ pm6125_l17: l17 {
 		};
 
 		pm6125_l18: l18 {
-			regulator-min-microvolt = <1104000>;
-			regulator-max-microvolt = <1312000>;
+			/* 1.104V-1.312V fixed @ 1.232V for DSIPHY */
+			regulator-min-microvolt = <1232000>;
+			regulator-max-microvolt = <1232000>;
 		};
 
 		pm6125_l19: l19 {
@@ -282,6 +315,20 @@ sdc2_gate_pin: sdc2-gate-state {
 		bias-pull-up;
 		output-high;
 	};
+
+	te_active: te-active-state {
+		pins = "gpio81";
+		function = "mdp_vsync";
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	sde_dsi_active: te-active-state {
+		pins = "gpio82";
+		function = "gpio";
+		drive-strength = <8>;
+		bias-disable;
+	};
 };
 
 &ufs_mem_hc {

-- 
2.41.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/4] arm64: dts: qcom: sm6115p-j606f: Enable GPU
  2023-06-20 13:17 [PATCH 0/4] A610 enablement, J606F display Konrad Dybcio
  2023-06-20 13:17 ` [PATCH 1/4] arm64: dts: qcom: sm6115: Add GPU nodes Konrad Dybcio
  2023-06-20 13:17 ` [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display Konrad Dybcio
@ 2023-06-20 13:17 ` Konrad Dybcio
  2023-06-20 15:50   ` Dmitry Baryshkov
  2023-06-20 13:17 ` [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: " Konrad Dybcio
  3 siblings, 1 reply; 12+ messages in thread
From: Konrad Dybcio @ 2023-06-20 13:17 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio

Enable the A610 GPU and provide a firmware path to the ZAP blob.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
index a10ce676bd44..ed745678fadd 100644
--- a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
+++ b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
@@ -65,6 +65,14 @@ ramoops@ffc00000 {
 	};
 };
 
+&gpu {
+	status = "okay";
+
+	zap-shader {
+		firmware-name = "qcom/sm6115/LENOVO/J606F/a610_zap.mbn";
+	};
+};
+
 &mdss {
 	status = "okay";
 };

-- 
2.41.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: Enable GPU
  2023-06-20 13:17 [PATCH 0/4] A610 enablement, J606F display Konrad Dybcio
                   ` (2 preceding siblings ...)
  2023-06-20 13:17 ` [PATCH 3/4] arm64: dts: qcom: sm6115p-j606f: Enable GPU Konrad Dybcio
@ 2023-06-20 13:17 ` Konrad Dybcio
  2023-06-20 15:47   ` Dmitry Baryshkov
  3 siblings, 1 reply; 12+ messages in thread
From: Konrad Dybcio @ 2023-06-20 13:17 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio

Enable the A610 GPU and provide a firmware path to the ZAP blob.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
index e23a0406eacc..a7278a9472ed 100644
--- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
+++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
@@ -179,6 +179,14 @@ &gpi_dma0 {
 	status = "okay";
 };
 
+&gpu {
+	status = "okay";
+
+	zap-shader {
+		firmware-name = "qcom/qrb4210/a610_zap.mbn";
+	};
+};
+
 &i2c2 {
 	clock-frequency = <400000>;
 	status = "okay";

-- 
2.41.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: Enable GPU
  2023-06-20 13:17 ` [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: " Konrad Dybcio
@ 2023-06-20 15:47   ` Dmitry Baryshkov
  2023-06-20 19:03     ` Konrad Dybcio
  0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2023-06-20 15:47 UTC (permalink / raw)
  To: Konrad Dybcio, Andy Gross, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel

On 20/06/2023 16:17, Konrad Dybcio wrote:
> Enable the A610 GPU and provide a firmware path to the ZAP blob.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>   arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
> index e23a0406eacc..a7278a9472ed 100644
> --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
> +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
> @@ -179,6 +179,14 @@ &gpi_dma0 {
>   	status = "okay";
>   };
>   
> +&gpu {
> +	status = "okay";
> +
> +	zap-shader {
> +		firmware-name = "qcom/qrb4210/a610_zap.mbn";

Should this be qrb4210 or sm4250? Previously we did not use special 
subdirs for IOT versions. See qrb5165-rb5.dts.

> +	};
> +};
> +
>   &i2c2 {
>   	clock-frequency = <400000>;
>   	status = "okay";
> 

-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] arm64: dts: qcom: sm6115p-j606f: Enable GPU
  2023-06-20 13:17 ` [PATCH 3/4] arm64: dts: qcom: sm6115p-j606f: Enable GPU Konrad Dybcio
@ 2023-06-20 15:50   ` Dmitry Baryshkov
  0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2023-06-20 15:50 UTC (permalink / raw)
  To: Konrad Dybcio, Andy Gross, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel

On 20/06/2023 16:17, Konrad Dybcio wrote:
> Enable the A610 GPU and provide a firmware path to the ZAP blob.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>   arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts | 8 ++++++++
>   1 file changed, 8 insertions(+)

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>


-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display
  2023-06-20 13:17 ` [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display Konrad Dybcio
@ 2023-06-20 15:52   ` Dmitry Baryshkov
  2023-06-20 19:02     ` Konrad Dybcio
  0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2023-06-20 15:52 UTC (permalink / raw)
  To: Konrad Dybcio, Andy Gross, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel

On 20/06/2023 16:17, Konrad Dybcio wrote:
> Enable the required nodes, add the required pins and tweak a
> regulator to enable non-simplefb display on the Tab P11.
> 
> Do note that there exists a second SKU with a different panel+touch
> combo, but due to insufficient information, that will need to be
> handled separately.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>   arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts | 57 +++++++++++++++++++++--
>   1 file changed, 52 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> index 81fdcaf48926..a10ce676bd44 100644
> --- a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> +++ b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> @@ -65,9 +65,41 @@ ramoops@ffc00000 {
>   	};
>   };
>   
> -&dispcc {
> -	/* HACK: disable until a panel driver is ready to retain simplefb */
> -	status = "disabled";
> +&mdss {
> +	status = "okay";
> +};
> +
> +&mdss_dsi0 {
> +	vdda-supply = <&pm6125_l18>;
> +	status = "okay";
> +
> +	panel: panel@0 {
> +		compatible = "lenovo,j606f-boe-nt36523w", "novatek,nt36523w";
> +		reg = <0>;
> +
> +		reset-gpios = <&tlmm 82 GPIO_ACTIVE_LOW>;
> +		vddio-supply = <&pm6125_l9>;
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&te_active &sde_dsi_active>;
> +
> +		rotation = <180>; /* Yep, it's mounted upside down! */
> +
> +		port {
> +			panel_in: endpoint {
> +				remote-endpoint = <&mdss_dsi0_out>;
> +			};
> +		};
> +	};
> +};
> +
> +&mdss_dsi0_out {
> +	data-lanes = <0 1 2 3>;
> +	remote-endpoint = <&panel_in>;
> +};
> +
> +&mdss_dsi0_phy {
> +	status = "okay";
>   };
>   
>   &pm6125_gpios {
> @@ -212,8 +244,9 @@ pm6125_l17: l17 {
>   		};
>   
>   		pm6125_l18: l18 {
> -			regulator-min-microvolt = <1104000>;
> -			regulator-max-microvolt = <1312000>;
> +			/* 1.104V-1.312V fixed @ 1.232V for DSIPHY */
> +			regulator-min-microvolt = <1232000>;
> +			regulator-max-microvolt = <1232000>;
>   		};
>   
>   		pm6125_l19: l19 {
> @@ -282,6 +315,20 @@ sdc2_gate_pin: sdc2-gate-state {
>   		bias-pull-up;
>   		output-high;
>   	};
> +
> +	te_active: te-active-state {
> +		pins = "gpio81";
> +		function = "mdp_vsync";
> +		drive-strength = <2>;
> +		bias-pull-down;
> +	};
> +
> +	sde_dsi_active: te-active-state {

mdss_dsi_active? Or just dsi_active?

> +		pins = "gpio82";
> +		function = "gpio";
> +		drive-strength = <8>;
> +		bias-disable;
> +	};
>   };
>   
>   &ufs_mem_hc {
> 

-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/4] arm64: dts: qcom: sm6115: Add GPU nodes
  2023-06-20 13:17 ` [PATCH 1/4] arm64: dts: qcom: sm6115: Add GPU nodes Konrad Dybcio
@ 2023-06-20 15:54   ` Dmitry Baryshkov
  0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2023-06-20 15:54 UTC (permalink / raw)
  To: Konrad Dybcio, Andy Gross, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel

On 20/06/2023 16:17, Konrad Dybcio wrote:
> Introduce nodes for the A610 GPU and its GMU wrapper along with the
> speedbin fuse entry in QFPROM.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>   arch/arm64/boot/dts/qcom/sm6115.dtsi | 103 +++++++++++++++++++++++++++++++++++
>   1 file changed, 103 insertions(+)

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display
  2023-06-20 15:52   ` Dmitry Baryshkov
@ 2023-06-20 19:02     ` Konrad Dybcio
  2023-06-21 19:02       ` Marijn Suijten
  0 siblings, 1 reply; 12+ messages in thread
From: Konrad Dybcio @ 2023-06-20 19:02 UTC (permalink / raw)
  To: Dmitry Baryshkov, Andy Gross, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel

On 20.06.2023 17:52, Dmitry Baryshkov wrote:
> On 20/06/2023 16:17, Konrad Dybcio wrote:
>> Enable the required nodes, add the required pins and tweak a
>> regulator to enable non-simplefb display on the Tab P11.
>>
>> Do note that there exists a second SKU with a different panel+touch
>> combo, but due to insufficient information, that will need to be
>> handled separately.
>>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>> ---
>>   arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts | 57 +++++++++++++++++++++--
>>   1 file changed, 52 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
>> index 81fdcaf48926..a10ce676bd44 100644
>> --- a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
>> +++ b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
>> @@ -65,9 +65,41 @@ ramoops@ffc00000 {
>>       };
>>   };
>>   -&dispcc {
>> -    /* HACK: disable until a panel driver is ready to retain simplefb */
>> -    status = "disabled";
>> +&mdss {
>> +    status = "okay";
>> +};
>> +
>> +&mdss_dsi0 {
>> +    vdda-supply = <&pm6125_l18>;
>> +    status = "okay";
>> +
>> +    panel: panel@0 {
>> +        compatible = "lenovo,j606f-boe-nt36523w", "novatek,nt36523w";
>> +        reg = <0>;
>> +
>> +        reset-gpios = <&tlmm 82 GPIO_ACTIVE_LOW>;
>> +        vddio-supply = <&pm6125_l9>;
>> +
>> +        pinctrl-names = "default";
>> +        pinctrl-0 = <&te_active &sde_dsi_active>;
>> +
>> +        rotation = <180>; /* Yep, it's mounted upside down! */
>> +
>> +        port {
>> +            panel_in: endpoint {
>> +                remote-endpoint = <&mdss_dsi0_out>;
>> +            };
>> +        };
>> +    };
>> +};
>> +
>> +&mdss_dsi0_out {
>> +    data-lanes = <0 1 2 3>;
>> +    remote-endpoint = <&panel_in>;
>> +};
>> +
>> +&mdss_dsi0_phy {
>> +    status = "okay";
>>   };
>>     &pm6125_gpios {
>> @@ -212,8 +244,9 @@ pm6125_l17: l17 {
>>           };
>>             pm6125_l18: l18 {
>> -            regulator-min-microvolt = <1104000>;
>> -            regulator-max-microvolt = <1312000>;
>> +            /* 1.104V-1.312V fixed @ 1.232V for DSIPHY */
>> +            regulator-min-microvolt = <1232000>;
>> +            regulator-max-microvolt = <1232000>;
>>           };
>>             pm6125_l19: l19 {
>> @@ -282,6 +315,20 @@ sdc2_gate_pin: sdc2-gate-state {
>>           bias-pull-up;
>>           output-high;
>>       };
>> +
>> +    te_active: te-active-state {
>> +        pins = "gpio81";
>> +        function = "mdp_vsync";
>> +        drive-strength = <2>;
>> +        bias-pull-down;
>> +    };
>> +
>> +    sde_dsi_active: te-active-state {
> 
> mdss_dsi_active? Or just dsi_active?
mdss is ok

Also Marijn pointed out in private that this node overwrites
the previous one.. Thankfully video mode panels don't care about
TE! :D

Konrad
> 
>> +        pins = "gpio82";
>> +        function = "gpio";
>> +        drive-strength = <8>;
>> +        bias-disable;
>> +    };
>>   };
>>     &ufs_mem_hc {
>>
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: Enable GPU
  2023-06-20 15:47   ` Dmitry Baryshkov
@ 2023-06-20 19:03     ` Konrad Dybcio
  0 siblings, 0 replies; 12+ messages in thread
From: Konrad Dybcio @ 2023-06-20 19:03 UTC (permalink / raw)
  To: Dmitry Baryshkov, Andy Gross, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel

On 20.06.2023 17:47, Dmitry Baryshkov wrote:
> On 20/06/2023 16:17, Konrad Dybcio wrote:
>> Enable the A610 GPU and provide a firmware path to the ZAP blob.
>>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>> ---
>>   arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
>> index e23a0406eacc..a7278a9472ed 100644
>> --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
>> +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
>> @@ -179,6 +179,14 @@ &gpi_dma0 {
>>       status = "okay";
>>   };
>>   +&gpu {
>> +    status = "okay";
>> +
>> +    zap-shader {
>> +        firmware-name = "qcom/qrb4210/a610_zap.mbn";
> 
> Should this be qrb4210 or sm4250? Previously we did not use special subdirs for IOT versions. See qrb5165-rb5.dts.
https://lore.kernel.org/linux-arm-msm/CAH=2NtwVtLdE5hg8Qhd_MLCPJTqXvus8+qW_uj4O7hnOy7PVUA@mail.gmail.com/

Konrad
> 
>> +    };
>> +};
>> +
>>   &i2c2 {
>>       clock-frequency = <400000>;
>>       status = "okay";
>>
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display
  2023-06-20 19:02     ` Konrad Dybcio
@ 2023-06-21 19:02       ` Marijn Suijten
  0 siblings, 0 replies; 12+ messages in thread
From: Marijn Suijten @ 2023-06-21 19:02 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Dmitry Baryshkov, Andy Gross, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
	linux-kernel

On 2023-06-20 21:02:20, Konrad Dybcio wrote:
> On 20.06.2023 17:52, Dmitry Baryshkov wrote:
> > On 20/06/2023 16:17, Konrad Dybcio wrote:
> >> Enable the required nodes, add the required pins and tweak a
> >> regulator to enable non-simplefb display on the Tab P11.
> >>
> >> Do note that there exists a second SKU with a different panel+touch
> >> combo, but due to insufficient information, that will need to be
> >> handled separately.
> >>
> >> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> >> ---
> >>   arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts | 57 +++++++++++++++++++++--
> >>   1 file changed, 52 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> >> index 81fdcaf48926..a10ce676bd44 100644
> >> --- a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> >> +++ b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> >> @@ -65,9 +65,41 @@ ramoops@ffc00000 {
> >>       };
> >>   };
> >>   -&dispcc {
> >> -    /* HACK: disable until a panel driver is ready to retain simplefb */
> >> -    status = "disabled";
> >> +&mdss {
> >> +    status = "okay";
> >> +};
> >> +
> >> +&mdss_dsi0 {
> >> +    vdda-supply = <&pm6125_l18>;
> >> +    status = "okay";
> >> +
> >> +    panel: panel@0 {
> >> +        compatible = "lenovo,j606f-boe-nt36523w", "novatek,nt36523w";
> >> +        reg = <0>;
> >> +
> >> +        reset-gpios = <&tlmm 82 GPIO_ACTIVE_LOW>;
> >> +        vddio-supply = <&pm6125_l9>;
> >> +
> >> +        pinctrl-names = "default";
> >> +        pinctrl-0 = <&te_active &sde_dsi_active>;
> >> +
> >> +        rotation = <180>; /* Yep, it's mounted upside down! */
> >> +
> >> +        port {
> >> +            panel_in: endpoint {
> >> +                remote-endpoint = <&mdss_dsi0_out>;
> >> +            };
> >> +        };
> >> +    };
> >> +};
> >> +
> >> +&mdss_dsi0_out {
> >> +    data-lanes = <0 1 2 3>;
> >> +    remote-endpoint = <&panel_in>;
> >> +};
> >> +
> >> +&mdss_dsi0_phy {
> >> +    status = "okay";
> >>   };
> >>     &pm6125_gpios {
> >> @@ -212,8 +244,9 @@ pm6125_l17: l17 {
> >>           };
> >>             pm6125_l18: l18 {
> >> -            regulator-min-microvolt = <1104000>;
> >> -            regulator-max-microvolt = <1312000>;
> >> +            /* 1.104V-1.312V fixed @ 1.232V for DSIPHY */
> >> +            regulator-min-microvolt = <1232000>;
> >> +            regulator-max-microvolt = <1232000>;
> >>           };
> >>             pm6125_l19: l19 {
> >> @@ -282,6 +315,20 @@ sdc2_gate_pin: sdc2-gate-state {
> >>           bias-pull-up;
> >>           output-high;
> >>       };
> >> +
> >> +    te_active: te-active-state {
> >> +        pins = "gpio81";
> >> +        function = "mdp_vsync";
> >> +        drive-strength = <2>;
> >> +        bias-pull-down;
> >> +    };
> >> +
> >> +    sde_dsi_active: te-active-state {
> > 
> > mdss_dsi_active? Or just dsi_active?
> mdss is ok
> 
> Also Marijn pointed out in private that this node overwrites
> the previous one.. Thankfully video mode panels don't care about
> TE! :D

You're welcome!

(Why set this pin to mdp_vsync if the MDP won't read it, though?)

- Marijn

> 
> Konrad
> > 
> >> +        pins = "gpio82";
> >> +        function = "gpio";
> >> +        drive-strength = <8>;
> >> +        bias-disable;
> >> +    };
> >>   };
> >>     &ufs_mem_hc {
> >>
> > 

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-06-21 19:03 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-20 13:17 [PATCH 0/4] A610 enablement, J606F display Konrad Dybcio
2023-06-20 13:17 ` [PATCH 1/4] arm64: dts: qcom: sm6115: Add GPU nodes Konrad Dybcio
2023-06-20 15:54   ` Dmitry Baryshkov
2023-06-20 13:17 ` [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display Konrad Dybcio
2023-06-20 15:52   ` Dmitry Baryshkov
2023-06-20 19:02     ` Konrad Dybcio
2023-06-21 19:02       ` Marijn Suijten
2023-06-20 13:17 ` [PATCH 3/4] arm64: dts: qcom: sm6115p-j606f: Enable GPU Konrad Dybcio
2023-06-20 15:50   ` Dmitry Baryshkov
2023-06-20 13:17 ` [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: " Konrad Dybcio
2023-06-20 15:47   ` Dmitry Baryshkov
2023-06-20 19:03     ` Konrad Dybcio

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).