Commit 8fcff430 authored by Bjorn Andersson's avatar Bjorn Andersson Committed by Bjorn Andersson

arm64: dts: qcom: sc8280xp-x13s: Enable external display

Like on the CRD, add the necessary nodes to enable USB Type-C
altmode-based external display on the Lenovo ThinkPad X13s.
Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: default avatarBjorn Andersson <quic_bjorande@quicinc.com>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213215619.1362566-4-quic_bjorande@quicinc.com
parent bc9a747a
......@@ -77,6 +77,84 @@ switch-lid {
};
};
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>;
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";
......@@ -238,6 +316,46 @@ map1 {
};
};
};
usb0-sbu-mux {
compatible = "pericom,pi3usb102", "gpio-sbu-mux";
enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb0_sbu_default>;
mode-switch;
orientation-switch;
svid = /bits/ 16 <0xff01>;
port {
usb0_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_con0_sbu>;
};
};
};
usb1-sbu-mux {
compatible = "pericom,pi3usb102", "gpio-sbu-mux";
enable-gpios = <&tlmm 48 GPIO_ACTIVE_LOW>;
select-gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb1_sbu_default>;
mode-switch;
orientation-switch;
svid = /bits/ 16 <0xff01>;
port {
usb1_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_con1_sbu>;
};
};
};
};
&apps_rsc {
......@@ -377,6 +495,24 @@ &mdss0 {
status = "okay";
};
&mdss0_dp0 {
status = "okay";
};
&mdss0_dp0_out {
data-lanes = <0 1>;
remote-endpoint = <&pmic_glink_con0_ss>;
};
&mdss0_dp1 {
status = "okay";
};
&mdss0_dp1_out {
data-lanes = <0 1>;
remote-endpoint = <&pmic_glink_con1_ss>;
};
&mdss0_dp3 {
compatible = "qcom,sc8280xp-edp";
......@@ -871,7 +1007,6 @@ &usb_0 {
};
&usb_0_dwc3 {
/* TODO: Define USB-C connector properly */
dr_mode = "host";
};
......@@ -890,12 +1025,15 @@ &usb_0_qmpphy {
status = "okay";
};
&usb_0_role_switch {
remote-endpoint = <&pmic_glink_con0_hs>;
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
/* TODO: Define USB-C connector properly */
dr_mode = "host";
};
......@@ -914,6 +1052,10 @@ &usb_1_qmpphy {
status = "okay";
};
&usb_1_role_switch {
remote-endpoint = <&pmic_glink_con1_hs>;
};
&vamacro {
pinctrl-0 = <&dmic01_default>, <&dmic02_default>;
pinctrl-names = "default";
......@@ -1147,6 +1289,40 @@ reset-n-pins {
};
};
usb0_sbu_default: usb0-sbu-state {
oe-n-pins {
pins = "gpio101";
function = "gpio";
bias-disable;
drive-strengh = <16>;
output-high;
};
sel-pins {
pins = "gpio164";
function = "gpio";
bias-disable;
drive-strength = <16>;
};
};
usb1_sbu_default: usb1-sbu-state {
oe-n-pins {
pins = "gpio48";
function = "gpio";
bias-disable;
drive-strengh = <16>;
output-high;
};
sel-pins {
pins = "gpio47";
function = "gpio";
bias-disable;
drive-strength = <16>;
};
};
wcd_default: wcd-default-state {
reset-pins {
pins = "gpio106";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment