[PATCH] arm64: dts: qcom: sm6115p-j606f: Add some peripherals

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This tablet features quite a bunch of I2C-connected devices, such as
a Richtek RT1715 USB-C controller, a MM8013 fuel gauge, FSA4480 Type-C
audio mux, TPS65132 regulator and some more.

Add the aforementioned ones and document others.

Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
---
 arch/arm64/boot/dts/qcom/sm6115.dtsi              |   7 ++
 arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts | 103 +++++++++++++++++++++-
 2 files changed, 109 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi
index ee65ab073ba6..7df7b2045b71 100644
--- a/arch/arm64/boot/dts/qcom/sm6115.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi
@@ -1676,6 +1676,13 @@ usb_dwc3_ss: endpoint {
 							remote-endpoint = <&usb_qmpphy_usb_ss_in>;
 						};
 					};
+
+					port@2 {
+						reg = <2>;
+
+						usb_dwc3_sbu: endpoint {
+						};
+					};
 				};
 			};
 		};
diff --git a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
index 54da053a8042..eb65c2806345 100644
--- a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
+++ b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
@@ -73,6 +73,81 @@ zap-shader {
 	};
 };
 
+&gpi_dma0 {
+	status = "okay";
+};
+
+&i2c0 {
+	clock-frequency = <400000>;
+	status = "okay";
+
+	/* Some devices use FUSB302(@22) instead of the RT1715. */
+
+	rt1715: typec-portc@4e {
+		compatible = "richtek,rt1715";
+		reg = <0x4e>;
+		interrupts-extended = <&tlmm 97 IRQ_TYPE_LEVEL_LOW>;
+		pinctrl-0 = <&typec_int>;
+		pinctrl-names = "default";
+
+		usb_con: connector {
+			compatible = "usb-c-connector";
+			label = "USB-C";
+			data-role = "dual";
+
+			/* TODO: Add a proper PD setup */
+			typec-power-opmode = "default";
+			try-power-role = "sink";
+			power-role = "dual";
+			pd-disable;
+
+			port {
+				rt1715_hs_ep: endpoint {
+					remote-endpoint = <&usb_dwc3_hs>;
+				};
+			};
+		};
+	};
+
+	fuel-gauge@55 {
+		compatible = "mitsumi,mm8013";
+		reg = <0x55>;
+	};
+
+	/* AW882xx speaker amp @ 34, 35, 36, 37 (CHIP_ID = 0x1852) */
+	/* HID-over-I2C for the touchpad on keyboard folio @ 60 */
+};
+
+&i2c1 {
+	clock-frequency = <400000>;
+	status = "okay";
+
+	tps65132@3e {
+		compatible = "ti,tps65132";
+		reg = <0x3e>;
+	};
+
+	fsa4480: typec-mux@42 {
+		compatible = "fcs,fsa4480";
+		reg = <0x42>;
+		interrupts-extended = <&tlmm 89 IRQ_TYPE_LEVEL_LOW>;
+		orientation-switch;
+		mode-switch;
+
+		port {
+			fsa4480_sbu_mux: endpoint {
+				remote-endpoint = <&usb_dwc3_sbu>;
+			};
+		};
+	};
+
+	/* PM8008 @ 8, 9 */
+	/* SMB1355 @ c */
+	/* SGM37604A WLED driver @ 36 */
+	/* ES7210 audio ADC @ 40 */
+	/* HID-over-I2C for the keyboard on keyboard folio @ 61 */
+};
+
 &mdss {
 	status = "okay";
 };
@@ -129,6 +204,10 @@ &pon_resin {
 	status = "okay";
 };
 
+&qupv3_id_0 {
+	status = "okay";
+};
+
 &remoteproc_adsp {
 	firmware-name = "qcom/sm6115/LENOVO/J606F/adsp.mbn";
 	status = "okay";
@@ -309,6 +388,12 @@ &sleep_clk {
 	clock-frequency = <32764>;
 };
 
+&spi2 {
+	status = "okay";
+
+	/* HIMAX83102P or NT36523W touchscreen */
+};
+
 &tlmm {
 	gpio-reserved-ranges = <14 4>;
 
@@ -337,6 +422,14 @@ mdss_dsi_active: dsi-active-state {
 		drive-strength = <8>;
 		bias-disable;
 	};
+
+	typec_int: typec-int-state {
+		pins = "gpio97";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-pull-up;
+		input-enable;
+	};
 };
 
 &ufs_mem_hc {
@@ -360,12 +453,20 @@ &usb {
 
 &usb_dwc3 {
 	maximum-speed = "high-speed";
-	dr_mode = "peripheral";
+	dr_mode = "otg";
 
 	phys = <&usb_hsphy>;
 	phy-names = "usb2-phy";
 };
 
+&usb_dwc3_hs {
+	remote-endpoint = <&rt1715_hs_ep>;
+};
+
+&usb_dwc3_sbu {
+	remote-endpoint = <&fsa4480_sbu_mux>;
+};
+
 &usb_hsphy {
 	vdd-supply = <&pm6125_l4>;
 	vdda-pll-supply = <&pm6125_l12>;

---
base-commit: ae00c445390b349e070a64dc62f08aa878db7248
change-id: 20240212-topic-j606f_periphs-87dd893e105c

Best regards,
-- 
Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux