Re: [PATCH v4 2/4] arm64: dts: qcom: sc8280xp-crd: Introduce pmic_glink

From: Johan Hovold
Date: Wed Feb 15 2023 - 04:47:11 EST


On Mon, Feb 13, 2023 at 01:56:17PM -0800, Bjorn Andersson wrote:
> From: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
>
> The SC8280XP CRD control over battery management and its two USB Type-C
> port using pmic_glink and two GPIO-based SBU muxes.
>
> Enable the two DisplayPort instances, GPIO SBU mux instance and
> pmic_glink with the two connectors on the CRD.
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
> Signed-off-by: Bjorn Andersson <quic_bjorande@xxxxxxxxxxx>
> ---
>
> Changes since v3:
> - Moved data-lanes into dp/port/endpoint
> - Moved dp/port/endpoint definition to sc8280xp.dtsi, and reference by
> label - to avoid repeating structure in the dts
>
> arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 196 +++++++++++++++++++++-
> arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 17 ++
> 2 files changed, 211 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> index 2179c06b4e3b..98a0f1f9f01e 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> @@ -36,6 +36,84 @@ chosen {
> stdout-path = "serial0:115200n8";
> };
>
> + pmic-glink {
> + compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + connector@0 {
> + compatible = "usb-c-connector";
> + reg = <0>;
> + power-role = "dual";
> + data-role = "dual";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + pmic_glink_con0_hs: endpoint {
> + remote-endpoint = <&usb_0_role_switch>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_con0_ss: endpoint {
> + remote-endpoint = <&mdss0_dp0_out>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> +
> + pmic_glink_con0_sbu: endpoint {
> + remote-endpoint = <&usb0_sbu_mux>;
> + };
> + };
> + };
> + };
> +
> + connector@1 {
> + compatible = "usb-c-connector";
> + reg = <1>;
> + power-role = "dual";
> + data-role = "dual";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;

Nit: add a newline for consistency

> + port@0 {
> + reg = <0>;
> +
> + pmic_glink_con1_hs: endpoint {
> + remote-endpoint = <&usb_1_role_switch>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_con1_ss: endpoint {
> + remote-endpoint = <&mdss0_dp1_out>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> +
> + pmic_glink_con1_sbu: endpoint {
> + remote-endpoint = <&usb1_sbu_mux>;
> + };
> + };
> + };
> + };
> + };
> +
> vreg_edp_3p3: regulator-edp-3p3 {
> compatible = "regulator-fixed";

> @@ -262,6 +380,24 @@ &mdss0 {
> status = "okay";
> };
>
> +&mdss0_dp0 {
> + status = "okay";
> +};
> +
> +&mdss0_dp0_out {
> + data-lanes = <0 1>;

This does not work as the drm driver expects 'data-lanes' to be defined
in the controller node where you had it in the previous versions:

[ 6.669325] [drm] Invalid property "data-lanes", default max DP lanes = 4

Moving it to the endpoint nodes would require updating both binding and
driver it seems.

> + remote-endpoint = <&pmic_glink_con0_ss>;
> +};
> +
> +&mdss0_dp1 {
> + status = "okay";
> +};
> +
> +&mdss0_dp1_out {
> + data-lanes = <0 1>;

Same here (and for X13s).

> + remote-endpoint = <&pmic_glink_con1_ss>;
> +};
> +
> &mdss0_dp3 {
> compatible = "qcom,sc8280xp-edp";
> /delete-property/ #sound-dai-cells;

Johan