Message ID | 20250203181436.87785-5-danila@jiaxyga.com |
---|---|
State | New |
Headers | show |
Series | sm7325-nothing-spacewar: Add and enable the panel | expand |
On dinsdag 11 februari 2025 14:31:14 Midden-Europese standaardtijd Konrad Dybcio wrote: > On 3.02.2025 7:14 PM, Danila Tikhonov wrote: > > From: Eugene Lepshy <fekz115@gmail.com> > > > > Enable the Adreno GPU and configure the Visionox RM692E5 panel. > > > > Signed-off-by: Eugene Lepshy <fekz115@gmail.com> > > Co-developed-by: Danila Tikhonov <danila@jiaxyga.com> > > Signed-off-by: Danila Tikhonov <danila@jiaxyga.com> > > --- > > Note: > > Depends on https://lore.kernel.org/linux-arm-msm/20250122-dpu-111-topology-v2-1-505e95964af9@somainline.org/ > > --- > > .../boot/dts/qcom/sm7325-nothing-spacewar.dts | 53 ++++++++++++++++++- > > 1 file changed, 51 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts b/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts > > index a5cda478bd78..cda317b49d5c 100644 > > --- a/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts > > +++ b/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts > > @@ -52,6 +52,8 @@ framebuffer0: framebuffer@e1000000 { > > stride = <(1080 * 4)>; > > format = "a8r8g8b8"; > > > > + display = <&panel0>; > > This is allowed by bindings but doesn't seem to do anything I believe this exposes display dimensions to user space also via simpledrm. At least I was using something like this before panel support to get phosh to scale properly on postmarketOS. Regards Luca > > > + > > clocks = <&gcc GCC_DISP_HF_AXI_CLK>, > > <&dispcc DISP_CC_MDSS_MDP_CLK>, > > <&dispcc DISP_CC_MDSS_BYTE0_CLK>, > > @@ -757,6 +759,10 @@ &gpi_dma1 { > > status = "okay"; > > }; > > > > +&gpu { > > + status = "okay"; > > +}; > > + > > &gpu_zap_shader { > > firmware-name = "qcom/sm7325/nothing/spacewar/a660_zap.mbn"; > > }; > > @@ -823,15 +829,44 @@ &ipa { > > status = "okay"; > > }; > > > > -/* MDSS remains disabled until the panel driver is present. */ > > +&mdss { > > + status = "okay"; > > +}; > > + > > &mdss_dsi { > > vdda-supply = <&vdd_a_dsi_0_1p2>; > > + status = "okay"; > > > > - /* Visionox RM692E5 panel */ > > + panel0: panel@0 { > > Is there going to be a panel1, too? ;) > > Please drop the 0 > > Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> > > Konrad >
diff --git a/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts b/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts index a5cda478bd78..cda317b49d5c 100644 --- a/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts +++ b/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts @@ -52,6 +52,8 @@ framebuffer0: framebuffer@e1000000 { stride = <(1080 * 4)>; format = "a8r8g8b8"; + display = <&panel0>; + clocks = <&gcc GCC_DISP_HF_AXI_CLK>, <&dispcc DISP_CC_MDSS_MDP_CLK>, <&dispcc DISP_CC_MDSS_BYTE0_CLK>, @@ -757,6 +759,10 @@ &gpi_dma1 { status = "okay"; }; +&gpu { + status = "okay"; +}; + &gpu_zap_shader { firmware-name = "qcom/sm7325/nothing/spacewar/a660_zap.mbn"; }; @@ -823,15 +829,44 @@ &ipa { status = "okay"; }; -/* MDSS remains disabled until the panel driver is present. */ +&mdss { + status = "okay"; +}; + &mdss_dsi { vdda-supply = <&vdd_a_dsi_0_1p2>; + status = "okay"; - /* Visionox RM692E5 panel */ + panel0: panel@0 { + compatible = "nothing,rm692e5-spacewar", + "visionox,rm692e5"; + reg = <0>; + + reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; + + vdd-supply = <&vdd_oled>; + vddio-supply = <&vdd_io_oled>; + + pinctrl-0 = <&lcd_reset_n>, + <&mdp_vsync_p>; + pinctrl-names = "default"; + + port { + panel_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + }; +}; + +&mdss_dsi0_out { + data-lanes = <0 1 2 3>; + remote-endpoint = <&panel_in>; }; &mdss_dsi_phy { vdds-supply = <&vdd_a_dsi_0_0p9>; + status = "okay"; }; &pm7325_gpios { @@ -1147,6 +1182,20 @@ nfc_int_req: nfc-int-req-state { bias-pull-down; }; + lcd_reset_n: lcd-reset-n-state { + pins = "gpio44"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + + mdp_vsync_p: mdp-vsync-p-state { + pins = "gpio80"; + function = "mdp_vsync"; + drive-strength = <2>; + bias-pull-down; + }; + hst_bt_en: hst-bt-en-state { pins = "gpio85"; function = "gpio";