[PATCH v2] ARM: dts: samsung: exynos4412-midas: add USB connector and USB OTG

From: Krzysztof Kozlowski
Date: Sun Jul 23 2023 - 10:24:28 EST


Add full description of USB-MUIC (MAX77693 MUIC) and MUIC-MHL
connections, along with proper USB connector and OTG mode for DWC2 USB
controller.

This fixes dtc W=1 warnings:

Warning (graph_child_address): /i2c-mhl/hdmi-bridge@39/ports: graph node has single child node 'port@0', #address-cells/#size-cells are not necessary

Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Cc: replicant@xxxxxxxxxx
Cc: phone-devel@xxxxxxxxxxxxxxx
Cc: ~postmarketos/upstreaming@xxxxxxxxxxx
Cc: Martin Jücker <martin.juecker@xxxxxxxxx>
Cc: Henrik Grimler <henrik@xxxxxxxxxx>
Cc: Artur Weber <aweber.kernel@xxxxxxxxx>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>

---

Changes in v2:
1. Put connector node in the muic node (Henrik)

Not tested on hardware. Please kindly check if peripheral mode is not
broken. Or maybe OTG started to work?
---
.../boot/dts/samsung/exynos4412-midas.dtsi | 50 ++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/samsung/exynos4412-midas.dtsi b/arch/arm/boot/dts/samsung/exynos4412-midas.dtsi
index 57836d5554d0..7daf25865551 100644
--- a/arch/arm/boot/dts/samsung/exynos4412-midas.dtsi
+++ b/arch/arm/boot/dts/samsung/exynos4412-midas.dtsi
@@ -182,6 +182,38 @@ pmic@66 {
pinctrl-0 = <&max77693_irq>;
reg = <0x66>;

+ muic {
+ compatible = "maxim,max77693-muic";
+
+ connector {
+ compatible = "samsung,usb-connector-11pin",
+ "usb-b-connector";
+ label = "micro-USB";
+ type = "micro";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ muic_to_usb: endpoint {
+ remote-endpoint = <&usb_to_muic>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+
+ muic_to_mhl: endpoint {
+ remote-endpoint = <&mhl_to_muic>;
+ };
+ };
+ };
+ };
+ };
+
regulators {
esafeout1_reg: ESAFEOUT1 {
regulator-name = "ESAFEOUT1";
@@ -287,6 +319,14 @@ mhl_to_hdmi: endpoint {
remote-endpoint = <&hdmi_to_mhl>;
};
};
+
+ port@1 {
+ reg = <1>;
+
+ mhl_to_muic: endpoint {
+ remote-endpoint = <&muic_to_mhl>;
+ };
+ };
};
};
};
@@ -545,8 +585,16 @@ hdmi_to_mhl: endpoint {
&hsotg {
vusb_d-supply = <&ldo15_reg>;
vusb_a-supply = <&ldo12_reg>;
- dr_mode = "peripheral";
+ dr_mode = "otg";
+ role-switch-default-mode = "peripheral";
+ usb-role-switch;
status = "okay";
+
+ port {
+ usb_to_muic: endpoint {
+ remote-endpoint = <&muic_to_usb>;
+ };
+ };
};

&i2c_0 {
--
2.34.1