Message ID | 20200217085842.28333-1-harigovi@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] arm64: dts: sc7180: add nodes for idp display | expand |
Quoting Harigovindan P (2020-02-17 00:58:42) > diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts > index 388f50ad4fde..349db8fe78a5 100644 > --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts > +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts > @@ -232,6 +233,57 @@ vreg_bob: bob { > }; > }; > > +&dsi0 { > + status = "okay"; > + > + vdda-supply = <&vreg_l3c_1p2>; > + > + panel@0 { > + compatible = "visionox,rm69299-1080p-display"; > + reg = <0>; > + > + vdda-supply = <&vreg_l8c_1p8>; > + vdd3p3-supply = <&vreg_l18a_2p8>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&disp_pins>; > + > + reset-gpios = <&pm6150l_gpio 3 GPIO_ACTIVE_HIGH>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + panel0_in: endpoint { > + remote-endpoint = <&dsi0_out>; > + }; > + }; > + }; > + }; > + > + ports { > + port@1 { > + endpoint { > + remote-endpoint = <&panel0_in>; > + data-lanes = <0 1 2 3>; Is this property needed? If it's the default assumption it would be nice to omit it so that we don't have to think about it. > + }; > + }; > + }; > +}; > + > +&dsi_phy { > + status = "okay"; > +}; > + > +&mdp { > + status = "okay"; > +}; > + > +&mdss { > + status = "okay"; > +}; > + > &qspi { > status = "okay"; > pinctrl-names = "default"; > @@ -289,6 +341,17 @@ &usb_1_qmpphy { > > /* PINCTRL - additions to nodes defined in sc7180.dtsi */ > > +&pm6150l_gpio { > + disp_pins: disp-pins { Curious how this works. It looks like PMIC GPIOS are expecting the node to look like: disp_pins: disp-pins { pinconf { pins = "gpio3"; function = PMIC_GPIO_FUNC_FUNC1; qcom,drive-strength = <PMIC_GPIO_STRENGTH_MED>; power-source = <PM6150_GPIO_VPH>; bias-disable; output-low; }; but this doesn't use the macros or the subnode for pinconf. Why? Also, the PM6150_GPIO_VPH macro doesn't exist. > + pins = "gpio3"; > + function = "func1"; > + qcom,drive-strength = <2>; > + power-source = <0>; > + bias-disable; > + output-low; > + }; > +}; > +
On 2020-06-25 06:37, Stephen Boyd wrote: > Quoting Harigovindan P (2020-02-17 00:58:42) >> diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts >> b/arch/arm64/boot/dts/qcom/sc7180-idp.dts >> index 388f50ad4fde..349db8fe78a5 100644 >> --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts >> +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts >> @@ -232,6 +233,57 @@ vreg_bob: bob { >> }; >> }; >> >> +&dsi0 { >> + status = "okay"; >> + >> + vdda-supply = <&vreg_l3c_1p2>; >> + >> + panel@0 { >> + compatible = "visionox,rm69299-1080p-display"; >> + reg = <0>; >> + >> + vdda-supply = <&vreg_l8c_1p8>; >> + vdd3p3-supply = <&vreg_l18a_2p8>; >> + >> + pinctrl-names = "default"; >> + pinctrl-0 = <&disp_pins>; >> + >> + reset-gpios = <&pm6150l_gpio 3 GPIO_ACTIVE_HIGH>; >> + >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + port@0 { >> + reg = <0>; >> + panel0_in: endpoint { >> + remote-endpoint = <&dsi0_out>; >> + }; >> + }; >> + }; >> + }; >> + >> + ports { >> + port@1 { >> + endpoint { >> + remote-endpoint = <&panel0_in>; >> + data-lanes = <0 1 2 3>; > > Is this property needed? If it's the default assumption it would be > nice > to omit it so that we don't have to think about it. > This property is needed during panel probe. If this is not mentioned > here, mipi_dsi_attach() will fail during panel probe. In dsi_host.c, dsi_host_attach() fails since dsi lanes are greater than msm_host lanes. msm_host lanes are updated as part of dsi_host_parse_dt. If we dont provide data-lanes in dt, it'll have default value and fail in dsi_host_attach(). >> + }; >> + }; >> + }; >> +}; >> + >> +&dsi_phy { >> + status = "okay"; >> +}; >> + >> +&mdp { >> + status = "okay"; >> +}; >> + >> +&mdss { >> + status = "okay"; >> +}; >> + >> &qspi { >> status = "okay"; >> pinctrl-names = "default"; >> @@ -289,6 +341,17 @@ &usb_1_qmpphy { >> >> /* PINCTRL - additions to nodes defined in sc7180.dtsi */ >> >> +&pm6150l_gpio { >> + disp_pins: disp-pins { > > Curious how this works. It looks like PMIC GPIOS are expecting the node > to look like: > > disp_pins: disp-pins { > pinconf { > pins = "gpio3"; > function = PMIC_GPIO_FUNC_FUNC1; > qcom,drive-strength = <PMIC_GPIO_STRENGTH_MED>; > power-source = <PM6150_GPIO_VPH>; > bias-disable; > output-low; > }; > > but this doesn't use the macros or the subnode for pinconf. Why? Also, > the PM6150_GPIO_VPH macro doesn't exist. We are discussing with PMIC team to have that macro in the header file. Will add other macros as part of next version. > >> + pins = "gpio3"; >> + function = "func1"; >> + qcom,drive-strength = <2>; >> + power-source = <0>; >> + bias-disable; >> + output-low; >> + }; >> +}; >> +
Quoting harigovi@codeaurora.org (2020-06-29 06:50:09) > On 2020-06-25 06:37, Stephen Boyd wrote: > > Quoting Harigovindan P (2020-02-17 00:58:42) > >> diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts > >> b/arch/arm64/boot/dts/qcom/sc7180-idp.dts > >> index 388f50ad4fde..349db8fe78a5 100644 > >> --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts > >> +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts > >> @@ -232,6 +233,57 @@ vreg_bob: bob { [...] > >> + ports { > >> + port@1 { > >> + endpoint { > >> + remote-endpoint = <&panel0_in>; > >> + data-lanes = <0 1 2 3>; > > > > Is this property needed? If it's the default assumption it would be > > nice > > to omit it so that we don't have to think about it. > > This property is needed during panel probe. If this is not mentioned > > here, > mipi_dsi_attach() will fail during panel probe. In dsi_host.c, > dsi_host_attach() > fails since dsi lanes are greater than msm_host lanes. msm_host lanes > are updated > as part of dsi_host_parse_dt. If we dont provide data-lanes in dt, it'll > have default > value and fail in dsi_host_attach(). What is the default value? It looks like dsi_host_parse_dt() says it's using a default but I guess the default is 0 lanes? Why not make it the normal 4 lanes?
diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts index 388f50ad4fde..349db8fe78a5 100644 --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts @@ -7,6 +7,7 @@ /dts-v1/; +#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/regulator/qcom,rpmh-regulator.h> #include "sc7180.dtsi" #include "pm6150.dtsi" @@ -232,6 +233,57 @@ vreg_bob: bob { }; }; +&dsi0 { + status = "okay"; + + vdda-supply = <&vreg_l3c_1p2>; + + panel@0 { + compatible = "visionox,rm69299-1080p-display"; + reg = <0>; + + vdda-supply = <&vreg_l8c_1p8>; + vdd3p3-supply = <&vreg_l18a_2p8>; + + pinctrl-names = "default"; + pinctrl-0 = <&disp_pins>; + + reset-gpios = <&pm6150l_gpio 3 GPIO_ACTIVE_HIGH>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + panel0_in: endpoint { + remote-endpoint = <&dsi0_out>; + }; + }; + }; + }; + + ports { + port@1 { + endpoint { + remote-endpoint = <&panel0_in>; + data-lanes = <0 1 2 3>; + }; + }; + }; +}; + +&dsi_phy { + status = "okay"; +}; + +&mdp { + status = "okay"; +}; + +&mdss { + status = "okay"; +}; + &qspi { status = "okay"; pinctrl-names = "default"; @@ -289,6 +341,17 @@ &usb_1_qmpphy { /* PINCTRL - additions to nodes defined in sc7180.dtsi */ +&pm6150l_gpio { + disp_pins: disp-pins { + pins = "gpio3"; + function = "func1"; + qcom,drive-strength = <2>; + power-source = <0>; + bias-disable; + output-low; + }; +}; + &qspi_clk { pinconf { pins = "gpio63";
Add nodes for IDP display. The display is Visionox RM69299. Signed-off-by: Harigovindan P <harigovi@codeaurora.org> --- Changes in v2: - Adding dependency patchwork series - Removing suspend configuration - Adding blank before space curly brace Changes in v3: - Updating status for mdp and mdss node to get the display working - Change in commit text This patch depends on following patchwork series: https://patchwork.kernel.org/patch/11364687/ https://patchwork.kernel.org/patch/11366303/ arch/arm64/boot/dts/qcom/sc7180-idp.dts | 63 +++++++++++++++++++++++++ 1 file changed, 63 insertions(+)