@@ -7,3 +7,24 @@
/* This file must be included after sc7180-trogdor.dtsi to modify cros_ec */
#include <arm/cros-ec-keyboard.dtsi>
+
+/ {
+ usb-a-connector {
+ compatible = "usb-a-connector";
+
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usb_a0_hs: endpoint@0 {
+ reg = <0>;
+ /* Endpoint filled in by board */
+ };
+
+ usb_a0_ss: endpoint@1 {
+ reg = <1>;
+ /* Endpoint filled in by board */
+ };
+ };
+ };
+};
@@ -134,6 +134,17 @@ skin-temp-thermistor@1 {
};
};
+&pogo_pins {
+ keyboard@4 {
+ compatible = "usb18d1,504c";
+ reg = <4>;
+ };
+};
+
+&pogo_pins_in {
+ remote-endpoint = <&usb_hub_dfp4_hs>;
+};
+
&pp1800_uf_cam {
status = "okay";
};
@@ -175,6 +186,42 @@ &sound_multimedia0_codec {
sound-dai = <&adau7002>;
};
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp1_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp1_ss>;
+};
+
+&usb_c1_hs {
+ remote-endpoint = <&usb_hub_dfp2_hs>;
+};
+
+&usb_c1_ss {
+ remote-endpoint = <&usb_hub_dfp2_ss>;
+};
+
+&usb_hub_dfp1_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp1_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp2_hs {
+ remote-endpoint = <&usb_c1_hs>;
+};
+
+&usb_hub_dfp2_ss {
+ remote-endpoint = <&usb_c1_ss>;
+};
+
+&usb_hub_dfp4_hs {
+ remote-endpoint = <&pogo_pins_in>;
+};
+
/* PINCTRL - modifications to sc7180-trogdor.dtsi */
&en_pp3300_dx_edp {
@@ -6,6 +6,21 @@
*/
/* This file must be included after sc7180-trogdor.dtsi to modify cros_ec */
+
+/ {
+ pogo_pins: pogo-pin-connector {
+ compatible = "google,pogo-pin-connector";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ /* Detachable keyboard populated for each board */
+ port {
+ pogo_pins_in: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+ };
+};
+
&cros_ec {
keyboard-controller {
compatible = "google,cros-ec-keyb-switches";
@@ -159,6 +159,17 @@ skin-temp-thermistor@1 {
};
};
+&pogo_pins {
+ keyboard@3 {
+ compatible = "usb18d1,5052";
+ reg = <3>;
+ };
+};
+
+&pogo_pins_in {
+ remote-endpoint = <&usb_hub_dfp3_hs>;
+};
+
&pp1800_uf_cam {
status = "okay";
};
@@ -187,6 +198,42 @@ &sound_multimedia1_codec {
sound-dai = <&max98360a>, <&max98360a_1>, <&max98360a_2>, <&max98360a_3> ;
};
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp2_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp2_ss>;
+};
+
+&usb_c1_hs {
+ remote-endpoint = <&usb_hub_dfp4_hs>;
+};
+
+&usb_c1_ss {
+ remote-endpoint = <&usb_hub_dfp4_ss>;
+};
+
+&usb_hub_dfp2_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp2_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp3_hs {
+ remote-endpoint = <&pogo_pins_in>;
+};
+
+&usb_hub_dfp4_hs {
+ remote-endpoint = <&usb_c1_hs>;
+};
+
+&usb_hub_dfp4_ss {
+ remote-endpoint = <&usb_c1_ss>;
+};
+
&wifi {
qcom,ath10k-calibration-variant = "GO_HOMESTAR";
};
@@ -78,6 +78,61 @@ &pp3300_dx_edp {
gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>;
};
+&usb_a0_hs {
+ remote-endpoint = <&usb_hub_dfp3_hs>;
+};
+
+&usb_a0_ss {
+ remote-endpoint = <&usb_hub_dfp3_ss>;
+};
+
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp1_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp1_ss>;
+};
+
+&usb_c1_hs {
+ remote-endpoint = <&usb_hub_dfp2_hs>;
+};
+
+&usb_c1_ss {
+ remote-endpoint = <&usb_hub_dfp2_ss>;
+};
+
+&usb_hub_2_x {
+ camera@4 {
+ compatible = "usb4f2,b75a";
+ reg = <4>;
+ };
+};
+
+&usb_hub_dfp1_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp1_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp2_hs {
+ remote-endpoint = <&usb_c1_hs>;
+};
+
+&usb_hub_dfp2_ss {
+ remote-endpoint = <&usb_c1_ss>;
+};
+
+&usb_hub_dfp3_hs {
+ remote-endpoint = <&usb_a0_hs>;
+};
+
+&usb_hub_dfp3_ss {
+ remote-endpoint = <&usb_a0_ss>;
+};
+
&wifi {
qcom,ath10k-calibration-variant = "GO_KINGOFTOWN";
};
@@ -68,6 +68,61 @@ &trackpad {
interrupts = <58 IRQ_TYPE_EDGE_FALLING>;
};
+&usb_a0_hs {
+ remote-endpoint = <&usb_hub_dfp3_hs>;
+};
+
+&usb_a0_ss {
+ remote-endpoint = <&usb_hub_dfp3_ss>;
+};
+
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp2_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp2_ss>;
+};
+
+&usb_c1_hs {
+ remote-endpoint = <&usb_hub_dfp4_hs>;
+};
+
+&usb_c1_ss {
+ remote-endpoint = <&usb_hub_dfp4_ss>;
+};
+
+&usb_hub_2_x {
+ camera@1 {
+ compatible = "usb408,a092";
+ reg = <1>;
+ };
+};
+
+&usb_hub_dfp2_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp2_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp3_hs {
+ remote-endpoint = <&usb_a0_hs>;
+};
+
+&usb_hub_dfp3_ss {
+ remote-endpoint = <&usb_a0_ss>;
+};
+
+&usb_hub_dfp4_hs {
+ remote-endpoint = <&usb_c1_hs>;
+};
+
+&usb_hub_dfp4_ss {
+ remote-endpoint = <&usb_c1_ss>;
+};
+
&wifi {
qcom,ath10k-calibration-variant = "GO_LAZOR";
};
@@ -82,6 +82,61 @@ &pp3300_dx_edp {
gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>;
};
+&usb_a0_hs {
+ remote-endpoint = <&usb_hub_dfp3_hs>;
+};
+
+&usb_a0_ss {
+ remote-endpoint = <&usb_hub_dfp3_ss>;
+};
+
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp1_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp1_ss>;
+};
+
+&usb_c1_hs {
+ remote-endpoint = <&usb_hub_dfp2_hs>;
+};
+
+&usb_c1_ss {
+ remote-endpoint = <&usb_hub_dfp2_ss>;
+};
+
+&usb_hub_2_x {
+ camera@4 {
+ compatible = "usb5c8,b03";
+ reg = <4>;
+ };
+};
+
+&usb_hub_dfp1_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp1_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp2_hs {
+ remote-endpoint = <&usb_c1_hs>;
+};
+
+&usb_hub_dfp2_ss {
+ remote-endpoint = <&usb_c1_ss>;
+};
+
+&usb_hub_dfp3_hs {
+ remote-endpoint = <&usb_a0_hs>;
+};
+
+&usb_hub_dfp3_ss {
+ remote-endpoint = <&usb_a0_ss>;
+};
+
/* PINCTRL - modifications to sc7180-trogdor.dtsi */
&en_pp3300_dx_edp {
@@ -176,10 +176,54 @@ &sound {
dmic-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
};
+&usb_a0_hs {
+ remote-endpoint = <&usb_hub_dfp4_hs>;
+};
+
+&usb_a0_ss {
+ remote-endpoint = <&usb_hub_dfp4_ss>;
+};
+
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp3_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp3_ss>;
+};
+
&usb_c1 {
status = "disabled";
};
+&usb_hub_2_x {
+ camera@1 {
+ compatible = "usb4f2,b718";
+ reg = <1>;
+ };
+
+ camera@2 {
+ compatible = "usb13d3,56e9";
+ reg = <2>;
+ };
+};
+
+&usb_hub_dfp3_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp3_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp4_hs {
+ remote-endpoint = <&usb_a0_hs>;
+};
+
+&usb_hub_dfp4_ss {
+ remote-endpoint = <&usb_a0_ss>;
+};
+
&wifi {
qcom,ath10k-calibration-variant = "GO_POMPOM";
};
@@ -105,6 +105,17 @@ &sdhc_2 {
status = "okay";
};
+&pogo_pins {
+ keyboard@1 {
+ compatible = "usb18d1,505b";
+ reg = <1>;
+ };
+};
+
+&pogo_pins_in {
+ remote-endpoint = <&usb_hub_dfp1_hs>;
+};
+
&pp1800_uf_cam {
status = "okay";
};
@@ -129,11 +140,31 @@ pp3300_disp_on: &pp3300_dx_edp {
gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>;
};
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp2_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp2_ss>;
+};
+
/* This board only has 1 USB Type-C port. */
&usb_c1 {
status = "disabled";
};
+&usb_hub_dfp2_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp2_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp1_hs {
+ remote-endpoint = <&pogo_pins_in>;
+};
+
/* PINCTRL - modifications to sc7180-trogdor.dtsi */
/*
@@ -52,12 +52,64 @@ &trackpad {
interrupts = <58 IRQ_TYPE_EDGE_FALLING>;
};
+&usb_a0_hs {
+ remote-endpoint = <&usb_hub_dfp3_hs>;
+};
+
+&usb_a0_ss {
+ remote-endpoint = <&usb_hub_dfp3_ss>;
+};
+
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp2_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp2_ss>;
+};
+
+&usb_c1_hs {
+ remote-endpoint = <&usb_hub_dfp4_hs>;
+};
+
+&usb_c1_ss {
+ remote-endpoint = <&usb_hub_dfp4_ss>;
+};
+
&usb_hub_2_x {
- vdd-supply = <&pp3300_l7c>;
+ vdd-supply = <&pp3300_l7c>;
+ camera@1 {
+ compatible = "usb4f2,b567";
+ reg = <1>;
+ };
};
&usb_hub_3_x {
- vdd-supply = <&pp3300_l7c>;
+ vdd-supply = <&pp3300_l7c>;
+};
+
+&usb_hub_dfp2_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp2_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp3_hs {
+ remote-endpoint = <&usb_a0_hs>;
+};
+
+&usb_hub_dfp3_ss {
+ remote-endpoint = <&usb_a0_ss>;
+};
+
+&usb_hub_dfp4_hs {
+ remote-endpoint = <&usb_c1_hs>;
+};
+
+&usb_hub_dfp4_ss {
+ remote-endpoint = <&usb_c1_ss>;
};
/* PINCTRL - modifications to sc7180-trogdor.dtsi */
@@ -179,6 +179,17 @@ skin-temp-thermistor@1 {
};
};
+&pogo_pins {
+ keyboard@3 {
+ compatible = "usb18d1,5057";
+ reg = <3>;
+ };
+};
+
+&pogo_pins_in {
+ remote-endpoint = <&usb_hub_dfp3_hs>;
+};
+
&pp1800_uf_cam {
status = "okay";
};
@@ -195,6 +206,42 @@ &pp2800_wf_cam {
status = "okay";
};
+&usb_c0_hs {
+ remote-endpoint = <&usb_hub_dfp2_hs>;
+};
+
+&usb_c0_ss {
+ remote-endpoint = <&usb_hub_dfp2_ss>;
+};
+
+&usb_c1_hs {
+ remote-endpoint = <&usb_hub_dfp4_hs>;
+};
+
+&usb_c1_ss {
+ remote-endpoint = <&usb_hub_dfp3_ss>;
+};
+
+&usb_hub_dfp2_hs {
+ remote-endpoint = <&usb_c0_hs>;
+};
+
+&usb_hub_dfp2_ss {
+ remote-endpoint = <&usb_c0_ss>;
+};
+
+&usb_hub_dfp4_hs {
+ remote-endpoint = <&usb_c1_hs>;
+};
+
+&usb_hub_dfp3_ss {
+ remote-endpoint = <&usb_c1_ss>;
+};
+
+&usb_hub_dfp3_hs {
+ remote-endpoint = <&pogo_pins_in>;
+};
+
&wifi {
qcom,ath10k-calibration-variant = "GO_WORMDINGLER";
};
@@ -673,6 +673,25 @@ usb_c0: connector@0 {
power-role = "dual";
data-role = "host";
try-power-role = "source";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ usb_c0_hs: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ usb_c0_ss: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+ };
};
usb_c1: connector@1 {
@@ -682,6 +701,25 @@ usb_c1: connector@1 {
power-role = "dual";
data-role = "host";
try-power-role = "source";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ usb_c1_hs: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ usb_c1_ss: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+ };
};
};
};
@@ -966,6 +1004,41 @@ usb_hub_2_x: hub@1 {
reg = <1>;
vdd-supply = <&pp3300_hub>;
peer-hub = <&usb_hub_3_x>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usb_hub_2_x_ports: ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+ usb_hub_dfp1_hs: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+ port@2 {
+ reg = <2>;
+ usb_hub_dfp2_hs: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+ usb_hub_dfp3_hs: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+
+ port@4 {
+ reg = <4>;
+ usb_hub_dfp4_hs: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+ };
};
/* 3.x hub on port 2 */
@@ -974,6 +1047,42 @@ usb_hub_3_x: hub@2 {
reg = <2>;
vdd-supply = <&pp3300_hub>;
peer-hub = <&usb_hub_2_x>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usb_hub_3_x_ports: ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+ usb_hub_dfp1_ss: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+ usb_hub_dfp2_ss: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+ usb_hub_dfp3_ss: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+
+ port@4 {
+ reg = <4>;
+ usb_hub_dfp4_ss: endpoint {
+ /* Endpoint filled in by board */
+ };
+ };
+ };
};
};
Fully describe the USB type-c on sc7180 Trogdor devices. Most Trogdor devices have two USB type-c ports (i.e. usb-c-connector nodes), but Quackingstick only has one. Also, clamshell devices such as Lazor have a USB webcam connected to the USB hub, while detachable devices such as Wormdingler don't have a webcam, or a USB type-a connector. Instead they have the pogo pins for the detachable keyboard. Fully describing the topology like this will let us expose information about what devices are connected to which physical USB connector (type-A or type-C). Cc: <cros-qcom-dts-watchers@chromium.org> Cc: Bjorn Andersson <andersson@kernel.org> Cc: Konrad Dybcio <konradybcio@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Cc: Conor Dooley <conor+dt@kernel.org> Cc: <linux-arm-msm@vger.kernel.org> Cc: <devicetree@vger.kernel.org> Cc: Pin-yen Lin <treapking@chromium.org> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- .../dts/qcom/sc7180-trogdor-clamshell.dtsi | 21 ++++ .../boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 47 ++++++++ .../dts/qcom/sc7180-trogdor-detachable.dtsi | 15 +++ .../dts/qcom/sc7180-trogdor-homestar.dtsi | 47 ++++++++ .../dts/qcom/sc7180-trogdor-kingoftown.dts | 55 +++++++++ .../boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 55 +++++++++ .../boot/dts/qcom/sc7180-trogdor-pazquel.dtsi | 55 +++++++++ .../boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 44 +++++++ .../qcom/sc7180-trogdor-quackingstick.dtsi | 31 +++++ .../arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 56 ++++++++- .../dts/qcom/sc7180-trogdor-wormdingler.dtsi | 47 ++++++++ arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 109 ++++++++++++++++++ 12 files changed, 580 insertions(+), 2 deletions(-)