mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 05:55:44 +02:00
arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
The X Elite CRD board comes with 3 Parade PS8830 retimers, one for each Type-C port. These handle the orientation and altmode switching and are controlled over I2C. In the connection chain, they sit between the USB/DisplayPort combo PHY and the Type-C connector. Describe the retimers and all gpio controlled voltage regulators used by each retimer. Also, modify the pmic glink graph to include the retimers in between the SuperSpeed/Sideband in endpoints and the QMP PHY out endpoints. Reviewed-by: Johan Hovold <johan+linaro@kernel.org> Tested-by: Johan Hovold <johan+linaro@kernel.org> Signed-off-by: Abel Vesa <abel.vesa@linaro.org> Link: https://lore.kernel.org/r/20250304-x1e80100-dts-crd-t14s-enable-typec-retimers-v6-1-e5a49fae4e94@linaro.org Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
parent
0783c8b3c0
commit
9db543299e
|
|
@ -97,7 +97,15 @@ port@1 {
|
|||
reg = <1>;
|
||||
|
||||
pmic_glink_ss0_ss_in: endpoint {
|
||||
remote-endpoint = <&usb_1_ss0_qmpphy_out>;
|
||||
remote-endpoint = <&retimer_ss0_ss_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
pmic_glink_ss0_con_sbu_in: endpoint {
|
||||
remote-endpoint = <&retimer_ss0_con_sbu_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -126,7 +134,15 @@ port@1 {
|
|||
reg = <1>;
|
||||
|
||||
pmic_glink_ss1_ss_in: endpoint {
|
||||
remote-endpoint = <&usb_1_ss1_qmpphy_out>;
|
||||
remote-endpoint = <&retimer_ss1_ss_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
pmic_glink_ss1_con_sbu_in: endpoint {
|
||||
remote-endpoint = <&retimer_ss1_con_sbu_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -155,7 +171,15 @@ port@1 {
|
|||
reg = <1>;
|
||||
|
||||
pmic_glink_ss2_ss_in: endpoint {
|
||||
remote-endpoint = <&usb_1_ss2_qmpphy_out>;
|
||||
remote-endpoint = <&retimer_ss2_ss_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
pmic_glink_ss2_con_sbu_in: endpoint {
|
||||
remote-endpoint = <&retimer_ss2_con_sbu_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -308,6 +332,150 @@ vreg_nvme: regulator-nvme {
|
|||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR0_1P15";
|
||||
regulator-min-microvolt = <1150000>;
|
||||
regulator-max-microvolt = <1150000>;
|
||||
|
||||
gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR0_1P8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
|
||||
gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb0_1p8_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR0_3P3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb0_3p3_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR1_1P15";
|
||||
regulator-min-microvolt = <1150000>;
|
||||
regulator-max-microvolt = <1150000>;
|
||||
|
||||
gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR1_1P8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
|
||||
gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR1_3P3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr2_1p15: regulator-rtmr2-1p15 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR2_1P15";
|
||||
regulator-min-microvolt = <1150000>;
|
||||
regulator-max-microvolt = <1150000>;
|
||||
|
||||
gpio = <&tlmm 189 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb2_pwr_1p15_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr2_1p8: regulator-rtmr2-1p8 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR2_1P8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
|
||||
gpio = <&tlmm 126 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb2_pwr_1p8_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vreg_rtmr2_3p3: regulator-rtmr2-3p3 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "VREG_RTMR2_3P3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
gpio = <&tlmm 187 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-0 = <&usb2_pwr_3p3_reg_en>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vph_pwr: regulator-vph-pwr {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
|
|
@ -728,6 +896,177 @@ keyboard@3a {
|
|||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
clock-frequency = <400000>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
typec-mux@8 {
|
||||
compatible = "parade,ps8830";
|
||||
reg = <0x08>;
|
||||
|
||||
clocks = <&rpmhcc RPMH_RF_CLK5>;
|
||||
|
||||
vdd-supply = <&vreg_rtmr2_1p15>;
|
||||
vdd33-supply = <&vreg_rtmr2_3p3>;
|
||||
vdd33-cap-supply = <&vreg_rtmr2_3p3>;
|
||||
vddar-supply = <&vreg_rtmr2_1p15>;
|
||||
vddat-supply = <&vreg_rtmr2_1p15>;
|
||||
vddio-supply = <&vreg_rtmr2_1p8>;
|
||||
|
||||
reset-gpios = <&tlmm 185 GPIO_ACTIVE_LOW>;
|
||||
|
||||
pinctrl-0 = <&rtmr2_default>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
orientation-switch;
|
||||
retimer-switch;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
retimer_ss2_ss_out: endpoint {
|
||||
remote-endpoint = <&pmic_glink_ss2_ss_in>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
retimer_ss2_ss_in: endpoint {
|
||||
remote-endpoint = <&usb_1_ss2_qmpphy_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
retimer_ss2_con_sbu_out: endpoint {
|
||||
remote-endpoint = <&pmic_glink_ss2_con_sbu_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c3 {
|
||||
clock-frequency = <400000>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
typec-mux@8 {
|
||||
compatible = "parade,ps8830";
|
||||
reg = <0x08>;
|
||||
|
||||
clocks = <&rpmhcc RPMH_RF_CLK3>;
|
||||
|
||||
vdd-supply = <&vreg_rtmr0_1p15>;
|
||||
vdd33-supply = <&vreg_rtmr0_3p3>;
|
||||
vdd33-cap-supply = <&vreg_rtmr0_3p3>;
|
||||
vddar-supply = <&vreg_rtmr0_1p15>;
|
||||
vddat-supply = <&vreg_rtmr0_1p15>;
|
||||
vddio-supply = <&vreg_rtmr0_1p8>;
|
||||
|
||||
reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
|
||||
|
||||
pinctrl-0 = <&rtmr0_default>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
retimer-switch;
|
||||
orientation-switch;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
retimer_ss0_ss_out: endpoint {
|
||||
remote-endpoint = <&pmic_glink_ss0_ss_in>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
retimer_ss0_ss_in: endpoint {
|
||||
remote-endpoint = <&usb_1_ss0_qmpphy_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
retimer_ss0_con_sbu_out: endpoint {
|
||||
remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c7 {
|
||||
clock-frequency = <400000>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
typec-mux@8 {
|
||||
compatible = "parade,ps8830";
|
||||
reg = <0x8>;
|
||||
|
||||
clocks = <&rpmhcc RPMH_RF_CLK4>;
|
||||
|
||||
vdd-supply = <&vreg_rtmr1_1p15>;
|
||||
vdd33-supply = <&vreg_rtmr1_3p3>;
|
||||
vdd33-cap-supply = <&vreg_rtmr1_3p3>;
|
||||
vddar-supply = <&vreg_rtmr1_1p15>;
|
||||
vddat-supply = <&vreg_rtmr1_1p15>;
|
||||
vddio-supply = <&vreg_rtmr1_1p8>;
|
||||
|
||||
reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
|
||||
|
||||
pinctrl-0 = <&rtmr1_default>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
retimer-switch;
|
||||
orientation-switch;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
retimer_ss1_ss_out: endpoint {
|
||||
remote-endpoint = <&pmic_glink_ss1_ss_in>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
retimer_ss1_ss_in: endpoint {
|
||||
remote-endpoint = <&usb_1_ss1_qmpphy_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
retimer_ss1_con_sbu_out: endpoint {
|
||||
remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c8 {
|
||||
clock-frequency = <400000>;
|
||||
|
||||
|
|
@ -876,6 +1215,26 @@ &pcie6a_phy {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&pm8550_gpios {
|
||||
rtmr0_default: rtmr0-reset-n-active-state {
|
||||
pins = "gpio10";
|
||||
function = "normal";
|
||||
power-source = <1>; /* 1.8V */
|
||||
bias-disable;
|
||||
input-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
usb0_3p3_reg_en: usb0-3p3-reg-en-state {
|
||||
pins = "gpio11";
|
||||
function = "normal";
|
||||
power-source = <1>; /* 1.8V */
|
||||
bias-disable;
|
||||
input-disable;
|
||||
output-enable;
|
||||
};
|
||||
};
|
||||
|
||||
&pm8550ve_8_gpios {
|
||||
misc_3p3_reg_en: misc-3p3-reg-en-state {
|
||||
pins = "gpio6";
|
||||
|
|
@ -889,6 +1248,17 @@ misc_3p3_reg_en: misc-3p3-reg-en-state {
|
|||
};
|
||||
};
|
||||
|
||||
&pm8550ve_9_gpios {
|
||||
usb0_1p8_reg_en: usb0-1p8-reg-en-state {
|
||||
pins = "gpio8";
|
||||
function = "normal";
|
||||
power-source = <1>; /* 1.8V */
|
||||
bias-disable;
|
||||
input-disable;
|
||||
output-enable;
|
||||
};
|
||||
};
|
||||
|
||||
&pmc8380_3_gpios {
|
||||
edp_bl_en: edp-bl-en-state {
|
||||
pins = "gpio4";
|
||||
|
|
@ -899,6 +1269,17 @@ edp_bl_en: edp-bl-en-state {
|
|||
};
|
||||
};
|
||||
|
||||
&pmc8380_5_gpios {
|
||||
usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
|
||||
pins = "gpio8";
|
||||
function = "normal";
|
||||
power-source = <1>; /* 1.8V */
|
||||
bias-disable;
|
||||
input-disable;
|
||||
output-enable;
|
||||
};
|
||||
};
|
||||
|
||||
&qupv3_0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -1136,6 +1517,20 @@ wake-n-pins {
|
|||
};
|
||||
};
|
||||
|
||||
rtmr1_default: rtmr1-reset-n-active-state {
|
||||
pins = "gpio176";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
rtmr2_default: rtmr2-reset-n-active-state {
|
||||
pins = "gpio185";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
tpad_default: tpad-default-state {
|
||||
pins = "gpio3";
|
||||
function = "gpio";
|
||||
|
|
@ -1157,6 +1552,48 @@ reset-n-pins {
|
|||
};
|
||||
};
|
||||
|
||||
usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
|
||||
pins = "gpio188";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
|
||||
pins = "gpio175";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
|
||||
pins = "gpio186";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
usb2_pwr_1p15_reg_en: usb2-pwr-1p15-reg-en-state {
|
||||
pins = "gpio189";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
usb2_pwr_1p8_reg_en: usb2-pwr-1p8-reg-en-state {
|
||||
pins = "gpio126";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
usb2_pwr_3p3_reg_en: usb2-pwr-3p3-reg-en-state {
|
||||
pins = "gpio187";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
wcd_default: wcd-reset-n-active-state {
|
||||
pins = "gpio191";
|
||||
function = "gpio";
|
||||
|
|
@ -1207,7 +1644,7 @@ &usb_1_ss0_dwc3_hs {
|
|||
};
|
||||
|
||||
&usb_1_ss0_qmpphy_out {
|
||||
remote-endpoint = <&pmic_glink_ss0_ss_in>;
|
||||
remote-endpoint = <&retimer_ss0_ss_in>;
|
||||
};
|
||||
|
||||
&usb_1_ss1_hsphy {
|
||||
|
|
@ -1239,7 +1676,7 @@ &usb_1_ss1_dwc3_hs {
|
|||
};
|
||||
|
||||
&usb_1_ss1_qmpphy_out {
|
||||
remote-endpoint = <&pmic_glink_ss1_ss_in>;
|
||||
remote-endpoint = <&retimer_ss1_ss_in>;
|
||||
};
|
||||
|
||||
&usb_1_ss2_hsphy {
|
||||
|
|
@ -1271,5 +1708,5 @@ &usb_1_ss2_dwc3_hs {
|
|||
};
|
||||
|
||||
&usb_1_ss2_qmpphy_out {
|
||||
remote-endpoint = <&pmic_glink_ss2_ss_in>;
|
||||
remote-endpoint = <&retimer_ss2_ss_in>;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user