Skip to content

Commit 0082888

Browse files
committed
FROMLIST: arm64: dts: qcom: lemans-evk: Enable secondary USB controller in host mode
Enable secondary USB controller in host mode on lemans EVK Platform. Secondary USB controller is connected to a Genesys Logic USB HUB GL3590 having 4 ports. The ports of hub that are present on lemans EVK standalone board are used as follows:- 1) port-1 is connected to HD3SS3220 Type-C port controller. 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART for Bluetooth. This port is to be used only if user optionally replaces the WiFi card with the NFA765 chip which uses USB for Bluetooth. Remaining 2 ports will become functional when the interface plus mezzanine board is stacked on top of corekit: 3) port-2 is connected to another hub which is present on the mezz through which 4 type-A ports are connected. 4) port-3 is used for the M.2 B key for a 5G card when the mezz is connected. Mark the second USB controller as host only capable and add the HD3SS3220 Type-C port controller along with Type-c connector for controlling vbus supply. Link: https://lore.kernel.org/r/20260122092852.887624-5-swati.agarwal@oss.qualcomm.com Signed-off-by: Swati Agarwal <swati.agarwal@oss.qualcomm.com>
1 parent bcba76c commit 0082888

1 file changed

Lines changed: 208 additions & 0 deletions

File tree

arch/arm64/boot/dts/qcom/lemans-evk.dts

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,45 @@
6868
};
6969
};
7070

71+
connector-1 {
72+
compatible = "usb-c-connector";
73+
label = "USB1-Type-C";
74+
data-role = "host";
75+
power-role = "source";
76+
77+
vbus-supply = <&vbus_supply_regulator_1>;
78+
79+
ports {
80+
#address-cells = <1>;
81+
#size-cells = <0>;
82+
83+
port@0 {
84+
reg = <0>;
85+
86+
usb1_con_ss_ep: endpoint {
87+
remote-endpoint = <&hd3ss3220_1_in_ep>;
88+
};
89+
};
90+
91+
port@1 {
92+
reg = <1>;
93+
94+
usb1_hs_in: endpoint {
95+
remote-endpoint = <&usb_hub_2_1>;
96+
};
97+
98+
};
99+
100+
port@2 {
101+
reg = <2>;
102+
103+
usb1_ss_in: endpoint {
104+
remote-endpoint = <&usb_hub_3_1>;
105+
};
106+
};
107+
};
108+
};
109+
71110
edp0-connector {
72111
compatible = "dp-connector";
73112
label = "EDP0";
@@ -141,6 +180,16 @@
141180
enable-active-high;
142181
};
143182

183+
vbus_supply_regulator_1: regulator-vbus-supply-1 {
184+
compatible = "regulator-fixed";
185+
regulator-name = "vbus_supply_1";
186+
gpio = <&expander1 3 GPIO_ACTIVE_HIGH>;
187+
regulator-min-microvolt = <5000000>;
188+
regulator-max-microvolt = <5000000>;
189+
regulator-boot-on;
190+
enable-active-high;
191+
};
192+
144193
vmmc_sdc: regulator-vmmc-sdc {
145194
compatible = "regulator-fixed";
146195

@@ -559,6 +608,39 @@
559608
};
560609
};
561610
};
611+
612+
usb-typec@47 {
613+
compatible = "ti,hd3ss3220";
614+
reg = <0x47>;
615+
616+
interrupts-extended = <&pmm8654au_2_gpios 6 IRQ_TYPE_EDGE_FALLING>;
617+
618+
id-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
619+
620+
pinctrl-0 = <&usb1_id>, <&usb1_intr>;
621+
pinctrl-names = "default";
622+
623+
ports {
624+
#address-cells = <1>;
625+
#size-cells = <0>;
626+
627+
port@0 {
628+
reg = <0>;
629+
630+
hd3ss3220_1_in_ep: endpoint {
631+
remote-endpoint = <&usb1_con_ss_ep>;
632+
};
633+
};
634+
635+
port@1 {
636+
reg = <1>;
637+
638+
hd3ss3220_1_out_ep: endpoint {
639+
};
640+
};
641+
};
642+
};
643+
562644
};
563645

564646
&i2c18 {
@@ -724,6 +806,14 @@
724806
bias-pull-up;
725807
power-source = <0>;
726808
};
809+
810+
usb1_intr: usb1-intr-state {
811+
pins = "gpio6";
812+
function = "normal";
813+
input-enable;
814+
bias-pull-up;
815+
power-source = <0>;
816+
};
727817
};
728818

729819
&qup_i2c19_default {
@@ -894,6 +984,12 @@
894984
function = "gpio";
895985
bias-pull-up;
896986
};
987+
988+
usb1_id: usb1-id-state {
989+
pins = "gpio51";
990+
function = "gpio";
991+
bias-pull-up;
992+
};
897993
};
898994

899995
&uart10 {
@@ -966,6 +1062,118 @@
9661062
status = "okay";
9671063
};
9681064

1065+
&usb_1 {
1066+
dr_mode = "host";
1067+
1068+
#address-cells = <1>;
1069+
#size-cells = <0>;
1070+
1071+
status = "okay";
1072+
1073+
usb_hub_2_x: hub@1 {
1074+
compatible = "usb5e3,610";
1075+
reg = <1>;
1076+
1077+
peer-hub = <&usb_hub_3_x>;
1078+
1079+
ports {
1080+
#address-cells = <1>;
1081+
#size-cells = <0>;
1082+
1083+
port@1 {
1084+
reg = <1>;
1085+
1086+
usb_hub_2_1: endpoint {
1087+
remote-endpoint = <&usb1_hs_in>;
1088+
};
1089+
};
1090+
1091+
/*
1092+
* Port-2 and port-3 are not connected to anything on corekit.
1093+
*/
1094+
port@2 {
1095+
reg = <2>;
1096+
1097+
usb_hub_2_2: endpoint {
1098+
};
1099+
};
1100+
1101+
port@3 {
1102+
reg = <3>;
1103+
1104+
usb_hub_2_3: endpoint {
1105+
};
1106+
};
1107+
1108+
/*
1109+
* Port-4 is connected to M.2 E key connector on corekit.
1110+
*/
1111+
port@4 {
1112+
reg = <4>;
1113+
1114+
usb_hub_2_4: endpoint {
1115+
};
1116+
};
1117+
};
1118+
};
1119+
1120+
usb_hub_3_x: hub@2 {
1121+
compatible = "usb5e3,625";
1122+
reg = <2>;
1123+
1124+
peer-hub = <&usb_hub_2_x>;
1125+
1126+
ports {
1127+
#address-cells = <1>;
1128+
#size-cells = <0>;
1129+
1130+
port@1 {
1131+
reg = <1>;
1132+
1133+
usb_hub_3_1: endpoint {
1134+
remote-endpoint = <&usb1_ss_in>;
1135+
};
1136+
};
1137+
1138+
port@2 {
1139+
reg = <2>;
1140+
1141+
usb_hub_3_2: endpoint {
1142+
};
1143+
};
1144+
1145+
port@3 {
1146+
reg = <3>;
1147+
1148+
usb_hub_3_3: endpoint {
1149+
};
1150+
};
1151+
1152+
port@4 {
1153+
reg = <4>;
1154+
1155+
usb_hub_3_4: endpoint {
1156+
};
1157+
};
1158+
};
1159+
};
1160+
};
1161+
1162+
&usb_1_hsphy {
1163+
vdda-pll-supply = <&vreg_l7a>;
1164+
vdda18-supply = <&vreg_l6c>;
1165+
vdda33-supply = <&vreg_l9a>;
1166+
1167+
status = "okay";
1168+
};
1169+
1170+
&usb_1_qmpphy {
1171+
vdda-phy-supply = <&vreg_l1c>;
1172+
vdda-pll-supply = <&vreg_l7a>;
1173+
1174+
status = "okay";
1175+
};
1176+
9691177
&xo_board_clk {
9701178
clock-frequency = <38400000>;
9711179
};

0 commit comments

Comments
 (0)