Message ID | 20240205135908.54656-4-rogerq@kernel.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-52769-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:168b:b0:106:860b:bbdd with SMTP id ma11csp890721dyb; Mon, 5 Feb 2024 06:01:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IE6VN8SAYSpJHURVSN8D6o2pKoL9ZGQibV2J0gvX78Oko/asoiaO8uXnsVFr6VyThGPCiwR X-Received: by 2002:a05:6a00:c91:b0:6e0:3f77:ddcd with SMTP id a17-20020a056a000c9100b006e03f77ddcdmr3487313pfv.25.1707141707305; Mon, 05 Feb 2024 06:01:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707141707; cv=pass; d=google.com; s=arc-20160816; b=DSEWh/7XnTjn6AAk/DIRXWGcxWUWLKH2OocKyUAvXt0gr9acbevV7CViqnrRc7r31O diT8H8MruRH0hvzSVD7fmNDgA1WhWIOnm68813hZ6c7TULbwhZ5KDNqxjxoumCcsVRpv 7j3/z/bTQ1zMLY6LUbQZvaxdu3FLDLknhl9VEpn6SxYOFrHPeSRdxdweCXqmmUJRFNn4 bRgI3GeuoSdziBYea5j3eM0vSIQGK5ownUk+hfNpLDOhKHt2Oyq8eQuBWBVLsuCYmxPK K7cRdMZjDdUFm6y4AVlEhifjmbYtL7KdlZCsoa59m/Q6EkAQoTikq8Rgv9K8gLSe7jBr riwA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=DSqds4eiAjvqX9HYSgI9/BycjNoHJvex9W4O+cNh3S8=; fh=qZMA+RB4uHDPAsx1wdMH9vSaBsrWoUcaTbpi9kkaoGk=; b=AcJjkF67wAB6T88EWhW78ctPM/P4I9D2H/vvpBIX4LdoeULR73Riwb8r+fd5IhfHUl wHJMKn9cKZsM9nzovaMk9DrriMxBT/jjkbZFnrdulFd3ulHxtp9QLHw0eRGma2z0CN3q XDsWMvmBE61ONBe10HFVeR4qm1NRxwmzzUItm53reIFH/dP0yLYRNL1kyHWgzY3484pl lXniquejJby+/ALwO33yRxOGbK7Xfk3SVP6dTTNMXhYHx5klSD1XfuFfa1CmznI1Y/40 xcQFvj3aqL78DBElrczKLxvy9J2wUDZpk0lPlCtR86E3E5si5COUJbTLk2KiVWLO2dxt B0iw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TXfVyZ8m; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-52769-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-52769-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org X-Forwarded-Encrypted: i=1; AJvYcCWFo/6ornAZueyN3ZGyyHN+6zHO2Mgq9FwzFetUGmuBlwmDw7fmPKYq7cl5HWei0AqliqO0F1/6SVfinaTrSbfk6PFM4w== Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id j23-20020a63e757000000b005d81bd54526si6122162pgk.893.2024.02.05.06.01.47 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Feb 2024 06:01:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-52769-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TXfVyZ8m; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-52769-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-52769-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id CD499284FD4 for <ouuuleilei@gmail.com>; Mon, 5 Feb 2024 14:00:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D26752D059; Mon, 5 Feb 2024 13:59:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TXfVyZ8m" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D542724A19; Mon, 5 Feb 2024 13:59:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707141567; cv=none; b=Jyx/KdcunSDiCIHrEUBYQ5baUgrWXwpb6VXL31j6X4zhefnwLr7Tk8xh4iXLAjH1SLjy9vyJI28DTiAaM7pAAo0d2y/56sKmwuhkpVrch7y/onz78/BOsAiqpQiSIHN02Il6j2+845Gfe2EvZf4s4i225RYTlrcssihNhBUp8/8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707141567; c=relaxed/simple; bh=htiMBaVe3qitojJjfcyYAH1AaK0WWDmvAGtnfEOVx6I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZcUKRTidg8VT049zs7m0bmnBHR3aCQRUNGj4nZxIJY860ua+orVj/WpJ6Yd4LL1W8sjroOB9+FcZRHSqcLhRoSXwXw+CgJiIwfMd014MHFr5C+mRtTu/DNpwvIpukYLqlaGHQ3QN/vIdQfRg1rbb1Owsk6UhqT/JIwb2TwPnkkY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TXfVyZ8m; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B360C43394; Mon, 5 Feb 2024 13:59:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1707141567; bh=htiMBaVe3qitojJjfcyYAH1AaK0WWDmvAGtnfEOVx6I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TXfVyZ8m53wc6ACo3T+ARdpmhFm3839izoeUALSgV87tja9ZlIrohJHA5TIw86QA5 r3FjBB9DX+DKaHMXlhWJjnKShWdlLr4/gdy1ifqVxpaK88FOqpC10F3a8FrrAyv3rn ka7T3HWeC1NSQx1/M7QxwYpVHM5b4l4guV8mwKSHroxh7AkAUGgSlVfDwKuErf+a8V uOYfJSWMeOpOeVfW0gzE512yjkL0EGr1ev1MS8ibw7+vH5fBDcpNVJcf7F1irGsoaR PfMat+Y/CoipsoRXgUKAY4Kqxc+eq5OOf6FHgvHsjhgOtUeh4bWeSfZoT8PrOlbSm4 Do8hdQVCKgGFQ== From: Roger Quadros <rogerq@kernel.org> To: nm@ti.com, vigneshr@ti.com Cc: afd@ti.com, kristo@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, srk@ti.com, r-gunasekaran@ti.com, b-liu@ti.com, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Roger Quadros <rogerq@kernel.org> Subject: [PATCH v4 3/3] arm64: dts: ti: k3-am62p: add the USB sub-system Date: Mon, 5 Feb 2024 15:59:08 +0200 Message-Id: <20240205135908.54656-4-rogerq@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240205135908.54656-1-rogerq@kernel.org> References: <20240205135908.54656-1-rogerq@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790067822979421895 X-GMAIL-MSGID: 1790067822979421895 |
Series |
arm64: dts: ti: am62: Add USB support for k3-am62p
|
|
Commit Message
Roger Quadros
Feb. 5, 2024, 1:59 p.m. UTC
There are two USB instances available on the am62p5 starter kit. Include and enable them for use on the board. Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Signed-off-by: Roger Quadros <rogerq@kernel.org> --- Notes: Changelog: v4 - no change v3 - no change https://lore.kernel.org/all/20240201120332.4811-4-rogerq@kernel.org/ v2: - added USB PHY CTRL node changes here - changed USB wrapper node names to usb@ - changed Type-C chip node name to usb-power-control@ arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 46 ++++++++++++++ arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi | 10 +++ arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 67 +++++++++++++++++++++ 3 files changed, 123 insertions(+)
Comments
On 2/5/24 7:59 AM, Roger Quadros wrote: > There are two USB instances available on the am62p5 starter kit. Include > and enable them for use on the board. > > Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> > Signed-off-by: Roger Quadros <rogerq@kernel.org> > --- > > Notes: > Changelog: > > v4 - no change > > v3 - no change > https://lore.kernel.org/all/20240201120332.4811-4-rogerq@kernel.org/ > > v2: > - added USB PHY CTRL node changes here > - changed USB wrapper node names to usb@ > - changed Type-C chip node name to usb-power-control@ > > arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 46 ++++++++++++++ > arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi | 10 +++ > arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 67 +++++++++++++++++++++ > 3 files changed, 123 insertions(+) > > diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi > index 4c51bae06b57..17d28390d587 100644 > --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi > @@ -560,6 +560,52 @@ sdhci2: mmc@fa20000 { > status = "disabled"; > }; > > + usbss0: usb@f900000 { > + compatible = "ti,am62-usb"; > + reg = <0x00 0x0f900000 0x00 0x800>; > + clocks = <&k3_clks 161 3>; > + clock-names = "ref"; > + ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>; > + #address-cells = <2>; > + #size-cells = <2>; > + power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>; > + ranges; > + status = "disabled"; > + > + usb0: usb@31000000 { > + compatible = "snps,dwc3"; > + reg = <0x00 0x31000000 0x00 0x50000>; > + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ > + <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ > + interrupt-names = "host", "peripheral"; > + maximum-speed = "high-speed"; > + dr_mode = "otg"; > + }; > + }; > + > + usbss1: usb@f910000 { > + compatible = "ti,am62-usb"; > + reg = <0x00 0x0f910000 0x00 0x800>; > + clocks = <&k3_clks 162 3>; > + clock-names = "ref"; > + ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>; > + #address-cells = <2>; > + #size-cells = <2>; > + power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>; > + ranges; > + status = "disabled"; > + > + usb1: usb@31100000 { > + compatible = "snps,dwc3"; > + reg = <0x00 0x31100000 0x00 0x50000>; > + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ > + <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ > + interrupt-names = "host", "peripheral"; > + maximum-speed = "high-speed"; > + dr_mode = "otg"; > + }; > + }; > + > fss: bus@fc00000 { > compatible = "simple-bus"; > reg = <0x00 0x0fc00000 0x00 0x70000>; > diff --git a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi > index 19f42b39394e..00dd38b02a52 100644 > --- a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi > @@ -18,6 +18,16 @@ chipid: chipid@14 { > reg = <0x14 0x4>; > bootph-all; > }; > + > + usb0_phy_ctrl: syscon@4008 { > + compatible = "ti,am62-usb-phy-ctrl", "syscon"; > + reg = <0x4008 0x4>; > + }; > + > + usb1_phy_ctrl: syscon@4018 { > + compatible = "ti,am62-usb-phy-ctrl", "syscon"; > + reg = <0x4018 0x4>; > + }; > }; > > wkup_uart0: serial@2b300000 { > diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts > index 1773c05f752c..80be56c0a4e0 100644 > --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts > +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts > @@ -27,6 +27,8 @@ aliases { > spi0 = &ospi0; > ethernet0 = &cpsw_port1; > ethernet1 = &cpsw_port2; > + usb0 = &usb0; > + usb1 = &usb1; > }; > > chosen { > @@ -297,6 +299,12 @@ AM62PX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (G20) MCASP0_ACLKR.UART1_TXD */ > bootph-all; > }; > > + main_usb1_pins_default: main-usb1-default-pins { > + pinctrl-single,pins = < > + AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */ > + >; > + }; > + > main_wlirq_pins_default: main-wlirq-default-pins { > pinctrl-single,pins = < > AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */ > @@ -340,6 +348,36 @@ AM62PX_IOPAD(0x0124, PIN_INPUT, 7) /* (J25) MMC2_SDCD.GPIO0_71 */ > }; > }; > > +&main_i2c0 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&main_i2c0_pins_default>; > + clock-frequency = <400000>; > + > + typec_pd0: usb-power-controller@3f { > + compatible = "ti,tps6598x"; > + reg = <0x3f>; > + > + connector { > + compatible = "usb-c-connector"; > + label = "USB-C"; > + self-powered; > + data-role = "dual"; > + power-role = "sink"; > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + usb_con_hs: endpoint { > + remote-endpoint = <&usb0_hs_ep>; > + }; > + }; > + }; > + }; > + }; > +}; > + > &main_i2c1 { > status = "okay"; > pinctrl-names = "default"; > @@ -460,6 +498,35 @@ cpsw3g_phy1: ethernet-phy@1 { > }; > }; > > +&usbss0 { > + status = "okay"; > + ti,vbus-divider; > +}; > + > +&usbss1 { > + status = "okay"; > + ti,vbus-divider; > +}; > + > +&usb0 { > + usb-role-switch; > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + usb0_hs_ep: endpoint { > + remote-endpoint = <&usb_con_hs>; > + }; > + }; > +}; > + > +&usb1 { > + dr_mode = "host"; > + pinctrl-names = "default"; > + pinctrl-0 = <&main_usb1_pins_default>; I'm not super familiar with USB, but I see this pinmux for the "DRVVBUS" pin is usually added the the parent USB subsystem node (usbss). Does this pin belong to the subsystem or the specific USB instance? Andrew > +}; > + > &mcasp1 { > status = "okay"; > #sound-dai-cells = <0>;
On 05/02/2024 19:34, Andrew Davis wrote: > On 2/5/24 7:59 AM, Roger Quadros wrote: >> There are two USB instances available on the am62p5 starter kit. Include >> and enable them for use on the board. >> >> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> >> Signed-off-by: Roger Quadros <rogerq@kernel.org> >> --- >> >> Notes: >> Changelog: >> v4 - no change >> v3 - no change >> https://lore.kernel.org/all/20240201120332.4811-4-rogerq@kernel.org/ >> v2: >> - added USB PHY CTRL node changes here >> - changed USB wrapper node names to usb@ >> - changed Type-C chip node name to usb-power-control@ >> >> arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 46 ++++++++++++++ >> arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi | 10 +++ >> arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 67 +++++++++++++++++++++ >> 3 files changed, 123 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >> index 4c51bae06b57..17d28390d587 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >> +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >> @@ -560,6 +560,52 @@ sdhci2: mmc@fa20000 { >> status = "disabled"; >> }; >> + usbss0: usb@f900000 { >> + compatible = "ti,am62-usb"; >> + reg = <0x00 0x0f900000 0x00 0x800>; >> + clocks = <&k3_clks 161 3>; >> + clock-names = "ref"; >> + ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>; >> + ranges; >> + status = "disabled"; >> + >> + usb0: usb@31000000 { >> + compatible = "snps,dwc3"; >> + reg = <0x00 0x31000000 0x00 0x50000>; >> + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ >> + <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ >> + interrupt-names = "host", "peripheral"; >> + maximum-speed = "high-speed"; >> + dr_mode = "otg"; >> + }; >> + }; >> + >> + usbss1: usb@f910000 { >> + compatible = "ti,am62-usb"; >> + reg = <0x00 0x0f910000 0x00 0x800>; >> + clocks = <&k3_clks 162 3>; >> + clock-names = "ref"; >> + ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>; >> + ranges; >> + status = "disabled"; >> + >> + usb1: usb@31100000 { >> + compatible = "snps,dwc3"; >> + reg = <0x00 0x31100000 0x00 0x50000>; >> + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ >> + <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ >> + interrupt-names = "host", "peripheral"; >> + maximum-speed = "high-speed"; >> + dr_mode = "otg"; >> + }; >> + }; >> + >> fss: bus@fc00000 { >> compatible = "simple-bus"; >> reg = <0x00 0x0fc00000 0x00 0x70000>; >> diff --git a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >> index 19f42b39394e..00dd38b02a52 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >> +++ b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >> @@ -18,6 +18,16 @@ chipid: chipid@14 { >> reg = <0x14 0x4>; >> bootph-all; >> }; >> + >> + usb0_phy_ctrl: syscon@4008 { >> + compatible = "ti,am62-usb-phy-ctrl", "syscon"; >> + reg = <0x4008 0x4>; >> + }; >> + >> + usb1_phy_ctrl: syscon@4018 { >> + compatible = "ti,am62-usb-phy-ctrl", "syscon"; >> + reg = <0x4018 0x4>; >> + }; >> }; >> wkup_uart0: serial@2b300000 { >> diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >> index 1773c05f752c..80be56c0a4e0 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >> +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >> @@ -27,6 +27,8 @@ aliases { >> spi0 = &ospi0; >> ethernet0 = &cpsw_port1; >> ethernet1 = &cpsw_port2; >> + usb0 = &usb0; >> + usb1 = &usb1; >> }; >> chosen { >> @@ -297,6 +299,12 @@ AM62PX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (G20) MCASP0_ACLKR.UART1_TXD */ >> bootph-all; >> }; >> + main_usb1_pins_default: main-usb1-default-pins { >> + pinctrl-single,pins = < >> + AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */ >> + >; >> + }; >> + >> main_wlirq_pins_default: main-wlirq-default-pins { >> pinctrl-single,pins = < >> AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */ >> @@ -340,6 +348,36 @@ AM62PX_IOPAD(0x0124, PIN_INPUT, 7) /* (J25) MMC2_SDCD.GPIO0_71 */ >> }; >> }; >> +&main_i2c0 { >> + status = "okay"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&main_i2c0_pins_default>; >> + clock-frequency = <400000>; >> + >> + typec_pd0: usb-power-controller@3f { >> + compatible = "ti,tps6598x"; >> + reg = <0x3f>; >> + >> + connector { >> + compatible = "usb-c-connector"; >> + label = "USB-C"; >> + self-powered; >> + data-role = "dual"; >> + power-role = "sink"; >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + port@0 { >> + reg = <0>; >> + usb_con_hs: endpoint { >> + remote-endpoint = <&usb0_hs_ep>; >> + }; >> + }; >> + }; >> + }; >> + }; >> +}; >> + >> &main_i2c1 { >> status = "okay"; >> pinctrl-names = "default"; >> @@ -460,6 +498,35 @@ cpsw3g_phy1: ethernet-phy@1 { >> }; >> }; >> +&usbss0 { >> + status = "okay"; >> + ti,vbus-divider; >> +}; >> + >> +&usbss1 { >> + status = "okay"; >> + ti,vbus-divider; >> +}; >> + >> +&usb0 { >> + usb-role-switch; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@0 { >> + reg = <0>; >> + usb0_hs_ep: endpoint { >> + remote-endpoint = <&usb_con_hs>; >> + }; >> + }; >> +}; >> + >> +&usb1 { >> + dr_mode = "host"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&main_usb1_pins_default>; > > I'm not super familiar with USB, but I see this pinmux for the > "DRVVBUS" pin is usually added the the parent USB subsystem node (usbss). > Does this pin belong to the subsystem or the specific USB instance? > There is only 1 USB instance per USB sub-system. The "DRVVBUS" pin is a control signal to enable the VBUS regulator while in host mode. Just probing the usbss1 driver has no use of "DRVVBUS". I think usb1 is the right place as it is used there. > Andrew > >> +}; >> + >> &mcasp1 { >> status = "okay"; >> #sound-dai-cells = <0>;
On 2/6/24 6:30 AM, Roger Quadros wrote: > > > On 05/02/2024 19:34, Andrew Davis wrote: >> On 2/5/24 7:59 AM, Roger Quadros wrote: >>> There are two USB instances available on the am62p5 starter kit. Include >>> and enable them for use on the board. >>> >>> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> >>> Signed-off-by: Roger Quadros <rogerq@kernel.org> >>> --- >>> >>> Notes: >>> Changelog: >>> v4 - no change >>> v3 - no change >>> https://lore.kernel.org/all/20240201120332.4811-4-rogerq@kernel.org/ >>> v2: >>> - added USB PHY CTRL node changes here >>> - changed USB wrapper node names to usb@ >>> - changed Type-C chip node name to usb-power-control@ >>> >>> arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 46 ++++++++++++++ >>> arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi | 10 +++ >>> arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 67 +++++++++++++++++++++ >>> 3 files changed, 123 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >>> index 4c51bae06b57..17d28390d587 100644 >>> --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >>> +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >>> @@ -560,6 +560,52 @@ sdhci2: mmc@fa20000 { >>> status = "disabled"; >>> }; >>> + usbss0: usb@f900000 { >>> + compatible = "ti,am62-usb"; >>> + reg = <0x00 0x0f900000 0x00 0x800>; >>> + clocks = <&k3_clks 161 3>; >>> + clock-names = "ref"; >>> + ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>; >>> + #address-cells = <2>; >>> + #size-cells = <2>; >>> + power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>; >>> + ranges; >>> + status = "disabled"; >>> + >>> + usb0: usb@31000000 { >>> + compatible = "snps,dwc3"; >>> + reg = <0x00 0x31000000 0x00 0x50000>; >>> + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ >>> + <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ >>> + interrupt-names = "host", "peripheral"; >>> + maximum-speed = "high-speed"; >>> + dr_mode = "otg"; >>> + }; >>> + }; >>> + >>> + usbss1: usb@f910000 { >>> + compatible = "ti,am62-usb"; >>> + reg = <0x00 0x0f910000 0x00 0x800>; >>> + clocks = <&k3_clks 162 3>; >>> + clock-names = "ref"; >>> + ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>; >>> + #address-cells = <2>; >>> + #size-cells = <2>; >>> + power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>; >>> + ranges; >>> + status = "disabled"; >>> + >>> + usb1: usb@31100000 { >>> + compatible = "snps,dwc3"; >>> + reg = <0x00 0x31100000 0x00 0x50000>; >>> + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ >>> + <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ >>> + interrupt-names = "host", "peripheral"; >>> + maximum-speed = "high-speed"; >>> + dr_mode = "otg"; >>> + }; >>> + }; >>> + >>> fss: bus@fc00000 { >>> compatible = "simple-bus"; >>> reg = <0x00 0x0fc00000 0x00 0x70000>; >>> diff --git a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >>> index 19f42b39394e..00dd38b02a52 100644 >>> --- a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >>> +++ b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >>> @@ -18,6 +18,16 @@ chipid: chipid@14 { >>> reg = <0x14 0x4>; >>> bootph-all; >>> }; >>> + >>> + usb0_phy_ctrl: syscon@4008 { >>> + compatible = "ti,am62-usb-phy-ctrl", "syscon"; >>> + reg = <0x4008 0x4>; >>> + }; >>> + >>> + usb1_phy_ctrl: syscon@4018 { >>> + compatible = "ti,am62-usb-phy-ctrl", "syscon"; >>> + reg = <0x4018 0x4>; >>> + }; >>> }; >>> wkup_uart0: serial@2b300000 { >>> diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >>> index 1773c05f752c..80be56c0a4e0 100644 >>> --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >>> +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >>> @@ -27,6 +27,8 @@ aliases { >>> spi0 = &ospi0; >>> ethernet0 = &cpsw_port1; >>> ethernet1 = &cpsw_port2; >>> + usb0 = &usb0; >>> + usb1 = &usb1; >>> }; >>> chosen { >>> @@ -297,6 +299,12 @@ AM62PX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (G20) MCASP0_ACLKR.UART1_TXD */ >>> bootph-all; >>> }; >>> + main_usb1_pins_default: main-usb1-default-pins { >>> + pinctrl-single,pins = < >>> + AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */ >>> + >; >>> + }; >>> + >>> main_wlirq_pins_default: main-wlirq-default-pins { >>> pinctrl-single,pins = < >>> AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */ >>> @@ -340,6 +348,36 @@ AM62PX_IOPAD(0x0124, PIN_INPUT, 7) /* (J25) MMC2_SDCD.GPIO0_71 */ >>> }; >>> }; >>> +&main_i2c0 { >>> + status = "okay"; >>> + pinctrl-names = "default"; >>> + pinctrl-0 = <&main_i2c0_pins_default>; >>> + clock-frequency = <400000>; >>> + >>> + typec_pd0: usb-power-controller@3f { >>> + compatible = "ti,tps6598x"; >>> + reg = <0x3f>; >>> + >>> + connector { >>> + compatible = "usb-c-connector"; >>> + label = "USB-C"; >>> + self-powered; >>> + data-role = "dual"; >>> + power-role = "sink"; >>> + ports { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + port@0 { >>> + reg = <0>; >>> + usb_con_hs: endpoint { >>> + remote-endpoint = <&usb0_hs_ep>; >>> + }; >>> + }; >>> + }; >>> + }; >>> + }; >>> +}; >>> + >>> &main_i2c1 { >>> status = "okay"; >>> pinctrl-names = "default"; >>> @@ -460,6 +498,35 @@ cpsw3g_phy1: ethernet-phy@1 { >>> }; >>> }; >>> +&usbss0 { >>> + status = "okay"; >>> + ti,vbus-divider; >>> +}; >>> + >>> +&usbss1 { >>> + status = "okay"; >>> + ti,vbus-divider; >>> +}; >>> + >>> +&usb0 { >>> + usb-role-switch; >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + port@0 { >>> + reg = <0>; >>> + usb0_hs_ep: endpoint { >>> + remote-endpoint = <&usb_con_hs>; >>> + }; >>> + }; >>> +}; >>> + >>> +&usb1 { >>> + dr_mode = "host"; >>> + pinctrl-names = "default"; >>> + pinctrl-0 = <&main_usb1_pins_default>; >> >> I'm not super familiar with USB, but I see this pinmux for the >> "DRVVBUS" pin is usually added the the parent USB subsystem node (usbss). >> Does this pin belong to the subsystem or the specific USB instance? >> > There is only 1 USB instance per USB sub-system. > The "DRVVBUS" pin is a control signal to enable the VBUS regulator > while in host mode. > > Just probing the usbss1 driver has no use of "DRVVBUS". > I think usb1 is the right place as it is used there. > Seems reasonable, so if there ever was more than 1 instance per sub-system, each instance would need its own pin? We should move these pinctrl to the instance node in the other dts files at some point then. Reviewed-by: Andrew Davis <afd@ti.com> >> Andrew >> >>> +}; >>> + >>> &mcasp1 { >>> status = "okay"; >>> #sound-dai-cells = <0>; >
On 06/02/2024 19:34, Andrew Davis wrote: > On 2/6/24 6:30 AM, Roger Quadros wrote: >> >> >> On 05/02/2024 19:34, Andrew Davis wrote: >>> On 2/5/24 7:59 AM, Roger Quadros wrote: >>>> There are two USB instances available on the am62p5 starter kit. Include >>>> and enable them for use on the board. >>>> >>>> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> >>>> Signed-off-by: Roger Quadros <rogerq@kernel.org> >>>> --- >>>> >>>> Notes: >>>> Changelog: >>>> v4 - no change >>>> v3 - no change >>>> https://lore.kernel.org/all/20240201120332.4811-4-rogerq@kernel.org/ >>>> v2: >>>> - added USB PHY CTRL node changes here >>>> - changed USB wrapper node names to usb@ >>>> - changed Type-C chip node name to usb-power-control@ >>>> >>>> arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 46 ++++++++++++++ >>>> arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi | 10 +++ >>>> arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 67 +++++++++++++++++++++ >>>> 3 files changed, 123 insertions(+) >>>> >>>> diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >>>> index 4c51bae06b57..17d28390d587 100644 >>>> --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >>>> +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi >>>> @@ -560,6 +560,52 @@ sdhci2: mmc@fa20000 { >>>> status = "disabled"; >>>> }; >>>> + usbss0: usb@f900000 { >>>> + compatible = "ti,am62-usb"; >>>> + reg = <0x00 0x0f900000 0x00 0x800>; >>>> + clocks = <&k3_clks 161 3>; >>>> + clock-names = "ref"; >>>> + ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>; >>>> + #address-cells = <2>; >>>> + #size-cells = <2>; >>>> + power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>; >>>> + ranges; >>>> + status = "disabled"; >>>> + >>>> + usb0: usb@31000000 { >>>> + compatible = "snps,dwc3"; >>>> + reg = <0x00 0x31000000 0x00 0x50000>; >>>> + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ >>>> + <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ >>>> + interrupt-names = "host", "peripheral"; >>>> + maximum-speed = "high-speed"; >>>> + dr_mode = "otg"; >>>> + }; >>>> + }; >>>> + >>>> + usbss1: usb@f910000 { >>>> + compatible = "ti,am62-usb"; >>>> + reg = <0x00 0x0f910000 0x00 0x800>; >>>> + clocks = <&k3_clks 162 3>; >>>> + clock-names = "ref"; >>>> + ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>; >>>> + #address-cells = <2>; >>>> + #size-cells = <2>; >>>> + power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>; >>>> + ranges; >>>> + status = "disabled"; >>>> + >>>> + usb1: usb@31100000 { >>>> + compatible = "snps,dwc3"; >>>> + reg = <0x00 0x31100000 0x00 0x50000>; >>>> + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ >>>> + <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ >>>> + interrupt-names = "host", "peripheral"; >>>> + maximum-speed = "high-speed"; >>>> + dr_mode = "otg"; >>>> + }; >>>> + }; >>>> + >>>> fss: bus@fc00000 { >>>> compatible = "simple-bus"; >>>> reg = <0x00 0x0fc00000 0x00 0x70000>; >>>> diff --git a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >>>> index 19f42b39394e..00dd38b02a52 100644 >>>> --- a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >>>> +++ b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi >>>> @@ -18,6 +18,16 @@ chipid: chipid@14 { >>>> reg = <0x14 0x4>; >>>> bootph-all; >>>> }; >>>> + >>>> + usb0_phy_ctrl: syscon@4008 { >>>> + compatible = "ti,am62-usb-phy-ctrl", "syscon"; >>>> + reg = <0x4008 0x4>; >>>> + }; >>>> + >>>> + usb1_phy_ctrl: syscon@4018 { >>>> + compatible = "ti,am62-usb-phy-ctrl", "syscon"; >>>> + reg = <0x4018 0x4>; >>>> + }; >>>> }; >>>> wkup_uart0: serial@2b300000 { >>>> diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >>>> index 1773c05f752c..80be56c0a4e0 100644 >>>> --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >>>> +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts >>>> @@ -27,6 +27,8 @@ aliases { >>>> spi0 = &ospi0; >>>> ethernet0 = &cpsw_port1; >>>> ethernet1 = &cpsw_port2; >>>> + usb0 = &usb0; >>>> + usb1 = &usb1; >>>> }; >>>> chosen { >>>> @@ -297,6 +299,12 @@ AM62PX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (G20) MCASP0_ACLKR.UART1_TXD */ >>>> bootph-all; >>>> }; >>>> + main_usb1_pins_default: main-usb1-default-pins { >>>> + pinctrl-single,pins = < >>>> + AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */ >>>> + >; >>>> + }; >>>> + >>>> main_wlirq_pins_default: main-wlirq-default-pins { >>>> pinctrl-single,pins = < >>>> AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */ >>>> @@ -340,6 +348,36 @@ AM62PX_IOPAD(0x0124, PIN_INPUT, 7) /* (J25) MMC2_SDCD.GPIO0_71 */ >>>> }; >>>> }; >>>> +&main_i2c0 { >>>> + status = "okay"; >>>> + pinctrl-names = "default"; >>>> + pinctrl-0 = <&main_i2c0_pins_default>; >>>> + clock-frequency = <400000>; >>>> + >>>> + typec_pd0: usb-power-controller@3f { >>>> + compatible = "ti,tps6598x"; >>>> + reg = <0x3f>; >>>> + >>>> + connector { >>>> + compatible = "usb-c-connector"; >>>> + label = "USB-C"; >>>> + self-powered; >>>> + data-role = "dual"; >>>> + power-role = "sink"; >>>> + ports { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + port@0 { >>>> + reg = <0>; >>>> + usb_con_hs: endpoint { >>>> + remote-endpoint = <&usb0_hs_ep>; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> +}; >>>> + >>>> &main_i2c1 { >>>> status = "okay"; >>>> pinctrl-names = "default"; >>>> @@ -460,6 +498,35 @@ cpsw3g_phy1: ethernet-phy@1 { >>>> }; >>>> }; >>>> +&usbss0 { >>>> + status = "okay"; >>>> + ti,vbus-divider; >>>> +}; >>>> + >>>> +&usbss1 { >>>> + status = "okay"; >>>> + ti,vbus-divider; >>>> +}; >>>> + >>>> +&usb0 { >>>> + usb-role-switch; >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + port@0 { >>>> + reg = <0>; >>>> + usb0_hs_ep: endpoint { >>>> + remote-endpoint = <&usb_con_hs>; >>>> + }; >>>> + }; >>>> +}; >>>> + >>>> +&usb1 { >>>> + dr_mode = "host"; >>>> + pinctrl-names = "default"; >>>> + pinctrl-0 = <&main_usb1_pins_default>; >>> >>> I'm not super familiar with USB, but I see this pinmux for the >>> "DRVVBUS" pin is usually added the the parent USB subsystem node (usbss). >>> Does this pin belong to the subsystem or the specific USB instance? >>> >> There is only 1 USB instance per USB sub-system. >> The "DRVVBUS" pin is a control signal to enable the VBUS regulator >> while in host mode. >> >> Just probing the usbss1 driver has no use of "DRVVBUS". >> I think usb1 is the right place as it is used there. >> > > Seems reasonable, so if there ever was more than 1 instance > per sub-system, each instance would need its own pin? Yes. > > We should move these pinctrl to the instance node in the other > dts files at some point then. > > Reviewed-by: Andrew Davis <afd@ti.com> Thanks! > >>> Andrew >>> >>>> +}; >>>> + >>>> &mcasp1 { >>>> status = "okay"; >>>> #sound-dai-cells = <0>; >>
diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi index 4c51bae06b57..17d28390d587 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi @@ -560,6 +560,52 @@ sdhci2: mmc@fa20000 { status = "disabled"; }; + usbss0: usb@f900000 { + compatible = "ti,am62-usb"; + reg = <0x00 0x0f900000 0x00 0x800>; + clocks = <&k3_clks 161 3>; + clock-names = "ref"; + ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>; + #address-cells = <2>; + #size-cells = <2>; + power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>; + ranges; + status = "disabled"; + + usb0: usb@31000000 { + compatible = "snps,dwc3"; + reg = <0x00 0x31000000 0x00 0x50000>; + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ + <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ + interrupt-names = "host", "peripheral"; + maximum-speed = "high-speed"; + dr_mode = "otg"; + }; + }; + + usbss1: usb@f910000 { + compatible = "ti,am62-usb"; + reg = <0x00 0x0f910000 0x00 0x800>; + clocks = <&k3_clks 162 3>; + clock-names = "ref"; + ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>; + #address-cells = <2>; + #size-cells = <2>; + power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>; + ranges; + status = "disabled"; + + usb1: usb@31100000 { + compatible = "snps,dwc3"; + reg = <0x00 0x31100000 0x00 0x50000>; + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ + <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */ + interrupt-names = "host", "peripheral"; + maximum-speed = "high-speed"; + dr_mode = "otg"; + }; + }; + fss: bus@fc00000 { compatible = "simple-bus"; reg = <0x00 0x0fc00000 0x00 0x70000>; diff --git a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi index 19f42b39394e..00dd38b02a52 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi @@ -18,6 +18,16 @@ chipid: chipid@14 { reg = <0x14 0x4>; bootph-all; }; + + usb0_phy_ctrl: syscon@4008 { + compatible = "ti,am62-usb-phy-ctrl", "syscon"; + reg = <0x4008 0x4>; + }; + + usb1_phy_ctrl: syscon@4018 { + compatible = "ti,am62-usb-phy-ctrl", "syscon"; + reg = <0x4018 0x4>; + }; }; wkup_uart0: serial@2b300000 { diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts index 1773c05f752c..80be56c0a4e0 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts @@ -27,6 +27,8 @@ aliases { spi0 = &ospi0; ethernet0 = &cpsw_port1; ethernet1 = &cpsw_port2; + usb0 = &usb0; + usb1 = &usb1; }; chosen { @@ -297,6 +299,12 @@ AM62PX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (G20) MCASP0_ACLKR.UART1_TXD */ bootph-all; }; + main_usb1_pins_default: main-usb1-default-pins { + pinctrl-single,pins = < + AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */ + >; + }; + main_wlirq_pins_default: main-wlirq-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */ @@ -340,6 +348,36 @@ AM62PX_IOPAD(0x0124, PIN_INPUT, 7) /* (J25) MMC2_SDCD.GPIO0_71 */ }; }; +&main_i2c0 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&main_i2c0_pins_default>; + clock-frequency = <400000>; + + typec_pd0: usb-power-controller@3f { + compatible = "ti,tps6598x"; + reg = <0x3f>; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + self-powered; + data-role = "dual"; + power-role = "sink"; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + usb_con_hs: endpoint { + remote-endpoint = <&usb0_hs_ep>; + }; + }; + }; + }; + }; +}; + &main_i2c1 { status = "okay"; pinctrl-names = "default"; @@ -460,6 +498,35 @@ cpsw3g_phy1: ethernet-phy@1 { }; }; +&usbss0 { + status = "okay"; + ti,vbus-divider; +}; + +&usbss1 { + status = "okay"; + ti,vbus-divider; +}; + +&usb0 { + usb-role-switch; + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usb0_hs_ep: endpoint { + remote-endpoint = <&usb_con_hs>; + }; + }; +}; + +&usb1 { + dr_mode = "host"; + pinctrl-names = "default"; + pinctrl-0 = <&main_usb1_pins_default>; +}; + &mcasp1 { status = "okay"; #sound-dai-cells = <0>;