Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1411768pxb; Fri, 6 Nov 2020 09:00:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJwgRYGiGEA8zJ0xnUdjupVVO8tWDJB/sNz7WWq8sDRirC1aAH1G0id2vUpmOwtFTumfIGYY X-Received: by 2002:a05:6102:1255:: with SMTP id p21mr1966619vsg.22.1604682054600; Fri, 06 Nov 2020 09:00:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604682054; cv=none; d=google.com; s=arc-20160816; b=HQBoDLpX65vjxIefhWfwLKet22cTwuHaV3oolTW5m7Xa/2z1Bp6jbVro/cl4SYkjqn RvB99t5DjwfVjsZtSvUPHdxc+8Vzkv6+3sE+WxFVLDx7LHaiJIB5mXGg6r46KLEYt4hx MNL7D78vyeWr4lls7gyOyLzi5K41Sjfn9TaZInfDz4VGd7I9c+L7rh3CU+3Ix2sFEuGD aBd03nUqIY5tKsl1GH3x/WVoZj37UNR3V0ZmDH0ppHf3IiMiwFSD8yFgQ1+XsGgb6xHG gm6A/Jua02oTlD6k5S3BOtMZ004APMj2Q1cfUzWpUSFCC05swb2hYcOCrvkW78ij+hBD ZZLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=85cMq4TggMZAbc4+sAshrMoA2Vrgqngl/HoJ/KGRsVs=; b=oHHT7qezVHsF50FV9wiJAmkkiYDP7DNdy7LH1mDRsIKcuQJfEbmQvwXOSeApifh2qb UoWLdzyvA5Ct/AlCM9RQbGf6UA3G/7IgqSiez7XZ1HItQ3gSFsZtB4xmJvNaMb+fjkRt XSbXpy/gezriQJaKXiYqznSV6AXEFJD+pSJr2Dx189e2w7QrB3RfT4OKlMGnWgjvVdR5 xrZ2LoqqqUD2zgBIfEqSrJARI9Mx8pavPJXtUwWZfHk9kDl63FvO9vDappXlqJtMohqZ Od1LI6mCcQlVEnayy83iYaqYKxuRBolTPqiTLKS3lCjXToWrr0ZU4nGnWp/OStsYSttT DnGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@st.com header.s=STMicroelectronics header.b=ke9YRRFb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=st.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y13si1329998eju.307.2020.11.06.09.00.30; Fri, 06 Nov 2020 09:00:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@st.com header.s=STMicroelectronics header.b=ke9YRRFb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=st.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727674AbgKFQ6p (ORCPT + 99 others); Fri, 6 Nov 2020 11:58:45 -0500 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:36742 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726422AbgKFQ6j (ORCPT ); Fri, 6 Nov 2020 11:58:39 -0500 Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0A6GwDlN010267; Fri, 6 Nov 2020 17:58:16 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=STMicroelectronics; bh=85cMq4TggMZAbc4+sAshrMoA2Vrgqngl/HoJ/KGRsVs=; b=ke9YRRFb1FAEJLij14tlpLtL/itYRQcHLz4iiN2ltmkbbBKpmW4Ue/hBmSYjRVZQzV5j P6q8ez/skNlyRW+tbMG9p+Bi1UOzhLVNRHnBZGoE9A5oWVMHHuWr/o9Tbv2UpVXlQuuP BMK+Ch/T0TKqclqcigj9ElvnvJBQ5S5MzleezrBSYqJvYIaookdPwZxVCmFWH6R0tvM7 ae0qmYHQLmM/pMhPk9cgX4dgsc3iJCN+8tFvxHBi1tcSTnr2OCzqCfrq037+ZoEVEYZ7 E26sRsOf+yj7kZMI70Y9xpOKB0nKgtj0upsv/Q4ZRORxYHBJQ74OfNwdHiIQhxM40pjB BA== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 34gywrfkv2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 06 Nov 2020 17:58:16 +0100 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 7476210002A; Fri, 6 Nov 2020 17:58:15 +0100 (CET) Received: from Webmail-eu.st.com (sfhdag3node2.st.com [10.75.127.8]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 654352C41F5; Fri, 6 Nov 2020 17:58:15 +0100 (CET) Received: from localhost (10.75.127.45) by SFHDAG3NODE2.st.com (10.75.127.8) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 6 Nov 2020 17:58:14 +0100 From: Amelie Delaunay To: Rob Herring , Greg Kroah-Hartman , Maxime Coquelin , Alexandre Torgue , Russell King , Heikki Krogerus , Badhri Jagan Sridharan , Jun Li CC: , , , , , Amelie Delaunay , Fabrice Gasnier Subject: [PATCH v5 4/5] ARM: dts: stm32: add STUSB1600 Type-C using I2C4 on stm32mp15xx-dkx Date: Fri, 6 Nov 2020 17:58:04 +0100 Message-ID: <20201106165805.31534-5-amelie.delaunay@st.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201106165805.31534-1-amelie.delaunay@st.com> References: <20201106165805.31534-1-amelie.delaunay@st.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.75.127.45] X-ClientProxiedBy: SFHDAG2NODE2.st.com (10.75.127.5) To SFHDAG3NODE2.st.com (10.75.127.8) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312,18.0.737 definitions=2020-11-06_06:2020-11-05,2020-11-06 signatures=0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch adds support for STUSB1600 USB Type-C port controller, used on I2C4 on stm32mp15xx-dkx. The default configuration on this board, on Type-C connector, is: - Dual Power Role (DRP), so set power-role to "dual"; - Vbus limited to 500mA, so set typec-power-opmode to "default" (it means 500mA in USB 2.0). typec-power-opmode is used to reconfigure the STUSB1600 advertising of current capability when its NVM is not in line with the board layout. On stm32mp15xx-dkx, Vbus power source of STUSB1600 is 5V_VIN. So power operation mode depends on the power supply used. To avoid any power issues, it is better to limit Vbus to 500mA on this board. ALERT# is the interrupt pin of STUSB1600. It needs an external pull-up, and signal is active low. USB OTG controller ID and Vbus signals are not connected on stm32mp15xx-dkx boards, so disconnection are not detected. Without DWC2 usb-role-switch: - if you unplug the USB cable from the Type-C port, you have to manually disconnect the USB gadget: echo disconnect > /sys/devices/platform/soc/49000000.usb-otg/udc/49000000.usb-otg/soft_connect - Then you can plug the USB cable again in the Type-C port, and manually reconnect the USB gadget: echo connect > /sys/devices/platform/soc/49000000.usb-otg/udc/49000000.usb-otg/soft_connect With DWC2 usb-role-switch, USB gadget is dynamically disconnected or connected. Signed-off-by: Amelie Delaunay --- arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 7 ++++++ arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 30 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi index d84686e00370..d2e9e7ac3336 100644 --- a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi +++ b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi @@ -1591,6 +1591,13 @@ }; }; + stusb1600_pins_a: stusb1600-0 { + pins { + pinmux = ; + bias-pull-up; + }; + }; + uart4_pins_a: uart4-0 { pins1 { pinmux = ; /* UART4_TX */ diff --git a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi index 93398cfae97e..ff324b151609 100644 --- a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi +++ b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi @@ -238,6 +238,30 @@ /delete-property/dmas; /delete-property/dma-names; + stusb1600@28 { + compatible = "st,stusb1600"; + reg = <0x28>; + interrupts = <11 IRQ_TYPE_EDGE_FALLING>; + interrupt-parent = <&gpioi>; + pinctrl-names = "default"; + pinctrl-0 = <&stusb1600_pins_a>; + status = "okay"; + vdd-supply = <&vin>; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + power-role = "dual"; + typec-power-opmode = "default"; + + port { + con_usbotg_hs_ep: endpoint { + remote-endpoint = <&usbotg_hs_ep>; + }; + }; + }; + }; + pmic: stpmic@33 { compatible = "st,stpmic1"; reg = <0x33>; @@ -648,6 +672,12 @@ phy-names = "usb2-phy"; usb-role-switch; status = "okay"; + + port { + usbotg_hs_ep: endpoint { + remote-endpoint = <&con_usbotg_hs_ep>; + }; + }; }; &usbphyc { -- 2.17.1