2023-01-12 17:12:38

by Sjoerd Simons

[permalink] [raw]
Subject: [PATCH v4 0/3] Improve K3-am625-sk support (USB, MMC)


This series picks up a few patches from the TI BSP tree that
unfortunately didn't make it upstream thusfar.

The first patch improve SD card compatibility (allowing U1 class cards
to be used), the remaining ones add USB support.

The type-c connector isn't entirely modelled with these changes as
it goes through a TPS6598 PD controller. Unfortunately the dtb bindings
for that currently require an irq line, which is not connected on E1 and
E2 version boards. The patchese to support this setup unfortunately didn't land
yet[0].. As such the last patch ignored the PD controller and simply
configures usb0 as periphal only rather then mode switch capable, which
at least gives some basic usability of that USB port.

0: https://lore.kernel.org/lkml/[email protected]/T/

Changes in v4:
- Disable new usbss nodes by default in the dtsi and enable in the dts
- Drop unneeded disabled nodes in board dts

Changes in v3:
- Rebased against current ti-next aka 6.2-rc1
- Add Martyn's tested-by

Changes in v2:
- Rebase against linux-next 20221220

Aswath Govindraju (2):
arm64: dts: ti: k3-am62-main: Add support for USB
arm64: dts: ti: k3-am625-sk: Add support for USB

Nitin Yadav (1):
arm64: dts: ti: k3-am62-main: Update OTAP and ITAP delay select

arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 92 ++++++++++++++++++------
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 27 +++++++
2 files changed, 97 insertions(+), 22 deletions(-)

--
2.39.0


2023-01-12 17:13:34

by Sjoerd Simons

[permalink] [raw]
Subject: [PATCH v4 2/3] arm64: dts: ti: k3-am62-main: Add support for USB

From: Aswath Govindraju <[email protected]>

AM62 SoC has two instances of USB on it. Therefore, add support for the
same.

Signed-off-by: Aswath Govindraju <[email protected]>
Signed-off-by: Vignesh Raghavendra <[email protected]>
[cherry-pick from vendor BSP, disable nodes by default]
Signed-off-by: Sjoerd Simons <[email protected]>
Tested-by: Martyn Welch <[email protected]>

---

Changes in v4:
- Default to status="disabled" for usbss nodes

Changes in v3:
- Rebased against current ti-next aka 6.2-rc1
- Add Martyn's tested-by

Changes in v2:
- Rebase against linux-next 20221220

arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 46 ++++++++++++++++++++++++
1 file changed, 46 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
index 466b94d1cee9..2d437d3b94ed 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
@@ -555,6 +555,52 @@ sdhci2: mmc@fa20000 {
status = "disabled";
};

+ usbss0: dwc3-usb@f900000 {
+ compatible = "ti,am62-usb";
+ reg = <0x00 0x0f900000 0x00 0x800>;
+ clocks = <&k3_clks 161 3>;
+ clock-names = "ref";
+ ti,syscon-phy-pll-refclk = <&wkup_conf 0x4008>;
+ #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: dwc3-usb@f910000 {
+ compatible = "ti,am62-usb";
+ reg = <0x00 0x0f910000 0x00 0x800>;
+ clocks = <&k3_clks 162 3>;
+ clock-names = "ref";
+ ti,syscon-phy-pll-refclk = <&wkup_conf 0x4018>;
+ #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>;
--
2.39.0

2023-01-12 17:17:49

by Sjoerd Simons

[permalink] [raw]
Subject: [PATCH v4 1/3] arm64: dts: ti: k3-am62-main: Update OTAP and ITAP delay select

From: Nitin Yadav <[email protected]>

UHS Class U1 sd-card are not getting detected due to incorrect
OTAP/ITAP delay select values in linux. Update OTAP and ITAP
delay select values for various speed modes. For sdhci0, update
OTAP delay values for ddr52 & HS200 and add ITAP delay for legacy
& mmc-hs. For sdhci1 & sdhci2, update OTAP & ITAP delay select
recommended as in RIOT for various speed modes.

Signed-off-by: Nitin Yadav <[email protected]>
[cherry-pick from vendor BSP]
Signed-off-by: Sjoerd Simons <[email protected]>
Tested-by: Martyn Welch <[email protected]>

---

(no changes since v3)

Changes in v3:
- Rebased against current ti-next aka 6.2-rc1
- Add Martyn's tested-by

Changes in v2:
- Rebase against linux-next 20221220

arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 46 ++++++++++++------------
1 file changed, 24 insertions(+), 22 deletions(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
index 072903649d6e..466b94d1cee9 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
@@ -501,8 +501,10 @@ sdhci0: mmc@fa10000 {
ti,clkbuf-sel = <0x7>;
ti,otap-del-sel-legacy = <0x0>;
ti,otap-del-sel-mmc-hs = <0x0>;
- ti,otap-del-sel-ddr52 = <0x9>;
- ti,otap-del-sel-hs200 = <0x6>;
+ ti,otap-del-sel-ddr52 = <0x5>;
+ ti,otap-del-sel-hs200 = <0x5>;
+ ti,itap-del-sel-legacy = <0xa>;
+ ti,itap-del-sel-mmc-hs = <0x1>;
status = "disabled";
};

@@ -514,17 +516,17 @@ sdhci1: mmc@fa00000 {
clocks = <&k3_clks 58 5>, <&k3_clks 58 6>;
clock-names = "clk_ahb", "clk_xin";
ti,trm-icp = <0x2>;
- ti,otap-del-sel-legacy = <0x0>;
+ ti,otap-del-sel-legacy = <0x8>;
ti,otap-del-sel-sd-hs = <0x0>;
- ti,otap-del-sel-sdr12 = <0xf>;
- ti,otap-del-sel-sdr25 = <0xf>;
- ti,otap-del-sel-sdr50 = <0xc>;
- ti,otap-del-sel-sdr104 = <0x6>;
- ti,otap-del-sel-ddr50 = <0x9>;
- ti,itap-del-sel-legacy = <0x0>;
- ti,itap-del-sel-sd-hs = <0x0>;
- ti,itap-del-sel-sdr12 = <0x0>;
- ti,itap-del-sel-sdr25 = <0x0>;
+ ti,otap-del-sel-sdr12 = <0x0>;
+ ti,otap-del-sel-sdr25 = <0x0>;
+ ti,otap-del-sel-sdr50 = <0x8>;
+ ti,otap-del-sel-sdr104 = <0x7>;
+ ti,otap-del-sel-ddr50 = <0x4>;
+ ti,itap-del-sel-legacy = <0xa>;
+ ti,itap-del-sel-sd-hs = <0x1>;
+ ti,itap-del-sel-sdr12 = <0xa>;
+ ti,itap-del-sel-sdr25 = <0x1>;
ti,clkbuf-sel = <0x7>;
bus-width = <4>;
status = "disabled";
@@ -538,17 +540,17 @@ sdhci2: mmc@fa20000 {
clocks = <&k3_clks 184 5>, <&k3_clks 184 6>;
clock-names = "clk_ahb", "clk_xin";
ti,trm-icp = <0x2>;
- ti,otap-del-sel-legacy = <0x0>;
+ ti,otap-del-sel-legacy = <0x8>;
ti,otap-del-sel-sd-hs = <0x0>;
- ti,otap-del-sel-sdr12 = <0xf>;
- ti,otap-del-sel-sdr25 = <0xf>;
- ti,otap-del-sel-sdr50 = <0xc>;
- ti,otap-del-sel-sdr104 = <0x6>;
- ti,otap-del-sel-ddr50 = <0x9>;
- ti,itap-del-sel-legacy = <0x0>;
- ti,itap-del-sel-sd-hs = <0x0>;
- ti,itap-del-sel-sdr12 = <0x0>;
- ti,itap-del-sel-sdr25 = <0x0>;
+ ti,otap-del-sel-sdr12 = <0x0>;
+ ti,otap-del-sel-sdr25 = <0x0>;
+ ti,otap-del-sel-sdr50 = <0x8>;
+ ti,otap-del-sel-sdr104 = <0x7>;
+ ti,otap-del-sel-ddr50 = <0x8>;
+ ti,itap-del-sel-legacy = <0xa>;
+ ti,itap-del-sel-sd-hs = <0xa>;
+ ti,itap-del-sel-sdr12 = <0xa>;
+ ti,itap-del-sel-sdr25 = <0x1>;
ti,clkbuf-sel = <0x7>;
status = "disabled";
};
--
2.39.0

2023-01-12 17:34:16

by Sjoerd Simons

[permalink] [raw]
Subject: [PATCH v4 3/3] arm64: dts: ti: k3-am625-sk: Add support for USB

From: Aswath Govindraju <[email protected]>

AM62 SoC has two instances of USB and they are brought on to the board
in the following way,

-> USB0 instance
- This is brought out to a USB TypeC connector on board through TPS6598 PD
controller. The PD controller should decide the role based on CC pin in
the connector. Unfortunately the irq line for the TPS isn't hooked up
which is a mode not yet support by the driver (some patches were
submitted earlier this year[0]). So for now the PD controller is left
out and peripheral mode chosen.

-> USB1 instance
- This is brought out to a USB TypeA connector on board.

Therefore, add the required device tree support for the above in the board
dts file.

0: https://lore.kernel.org/lkml/[email protected]/T/

Signed-off-by: Aswath Govindraju <[email protected]>
Signed-off-by: Vignesh Raghavendra <[email protected]>
[merge from vendor bsp, drop TPS6598 support, drop unneeded nodes, reword commit message]
Signed-off-by: Sjoerd Simons <[email protected]>
Tested-by: Martyn Welch <[email protected]>

---

Changes in v4:
- Disable new usbss nodes by default in the dtsi and enable in the dts
- Drop unneeded disabled nodes in board dts
- Drop unneeded nodes
- Enable usbss nodes
- Small typo fix

Changes in v3:
- Rebased against current ti-next aka 6.2-rc1
- Add Martyn's tested-by

Changes in v2:
- Rebase against linux-next 20221220

arch/arm64/boot/dts/ti/k3-am625-sk.dts | 27 ++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
index 4f179b146cab..6bc7d63cf52f 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
@@ -24,6 +24,8 @@ aliases {
spi0 = &ospi0;
ethernet0 = &cpsw_port1;
ethernet1 = &cpsw_port2;
+ usb0 = &usb0;
+ usb1 = &usb1;
};

chosen {
@@ -284,6 +286,12 @@ main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-pins-default {
AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
>;
};
+
+ main_usb1_pins_default: main-usb1-pins-default {
+ pinctrl-single,pins = <
+ AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */
+ >;
+ };
};

&wkup_uart0 {
@@ -464,3 +472,22 @@ partition@3fc0000 {
};
};
};
+
+&usbss0 {
+ status = "okay";
+ ti,vbus-divider;
+};
+
+&usbss1 {
+ status = "okay";
+};
+
+&usb0 {
+ dr_mode = "peripheral";
+};
+
+&usb1 {
+ dr_mode = "host";
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_usb1_pins_default>;
+};
--
2.39.0

2023-01-17 13:39:33

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH v4 0/3] Improve K3-am625-sk support (USB, MMC)

Hi Sjoerd Simons,

On Thu, 12 Jan 2023 17:28:43 +0100, Sjoerd Simons wrote:
> This series picks up a few patches from the TI BSP tree that
> unfortunately didn't make it upstream thusfar.
>
> The first patch improve SD card compatibility (allowing U1 class cards
> to be used), the remaining ones add USB support.
>
> The type-c connector isn't entirely modelled with these changes as
> it goes through a TPS6598 PD controller. Unfortunately the dtb bindings
> for that currently require an irq line, which is not connected on E1 and
> E2 version boards. The patchese to support this setup unfortunately didn't land
> yet[0].. As such the last patch ignored the PD controller and simply
> configures usb0 as periphal only rather then mode switch capable, which
> at least gives some basic usability of that USB port.
>
> [...]

I have applied the following to branch ti-k3-next on [1].
Thank you!

[1/3] arm64: dts: ti: k3-am62-main: Update OTAP and ITAP delay select
commit: bd2912f400934d71ecb040f625685b886ccdcc20
[2/3] arm64: dts: ti: k3-am62-main: Add support for USB
commit: 2240f96cf3cd0f74f5c349fb212c4176627f69b0
[3/3] arm64: dts: ti: k3-am625-sk: Add support for USB
commit: 2d94dfc438853dca9b390a3f32fe5331c336fd28

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
--
Vignesh