* [PATCH v2 1/2] arm64: dts: ti: k3-j784s4-main: Add support for USB
2024-05-06 5:20 [PATCH v2 0/2] Add USB 3.0 support for J784S4 Ravi Gunasekaran
@ 2024-05-06 5:20 ` Ravi Gunasekaran
2024-05-06 6:22 ` Krzysztof Kozlowski
2024-05-06 5:20 ` [PATCH v2 2/2] arm64: dts: ti: k3-j784s4-evm: Enable USB3 support Ravi Gunasekaran
1 sibling, 1 reply; 4+ messages in thread
From: Ravi Gunasekaran @ 2024-05-06 5:20 UTC (permalink / raw)
To: nm, vigneshr
Cc: kristo, robh, krzk+dt, conor+dt, srk, rogerq, r-gunasekaran,
linux-arm-kernel, devicetree, linux-kernel
From: Matt Ranostay <mranostay@ti.com>
Add support for the USB 3.0 controller
Signed-off-by: Matt Ranostay <mranostay@ti.com>
Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
---
Changes since v1:
----------------
* No change
v1: https://lore.kernel.org/all/20240502053615.29514-2-r-gunasekaran@ti.com/
arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 39 ++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
index 6a4554c6c9c1..51cdd0b56a6f 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
@@ -75,6 +75,13 @@
<J784S4_SERDES4_LANE2_EDP_LANE2>,
<J784S4_SERDES4_LANE3_EDP_LANE3>;
};
+
+ usb_serdes_mux: mux-controller@4000 {
+ compatible = "reg-mux";
+ reg = <0x4000 0x4>;
+ #mux-control-cells = <1>;
+ mux-reg-masks = <0x0 0x8000000>; /* USB0 to SERDES0 lane 3 mux */
+ };
};
gic500: interrupt-controller@1800000 {
@@ -568,6 +575,38 @@
status = "disabled";
};
+ usbss0: cdns-usb@4104000 {
+ bootph-all;
+ compatible = "ti,j721e-usb";
+ reg = <0x00 0x4104000 0x00 0x100>;
+ dma-coherent;
+ power-domains = <&k3_pds 398 TI_SCI_PD_EXCLUSIVE>;
+ clocks = <&k3_clks 398 21>, <&k3_clks 398 2>;
+ clock-names = "ref", "lpm";
+ assigned-clocks = <&k3_clks 398 21>; /* USB2_REFCLK */
+ assigned-clock-parents = <&k3_clks 398 22>; /* HFOSC0 */
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ status = "disabled"; /* Needs lane config */
+
+ usb0: usb@6000000 {
+ bootph-all;
+ compatible = "cdns,usb3";
+ reg = <0x00 0x6000000 0x00 0x10000>,
+ <0x00 0x6010000 0x00 0x10000>,
+ <0x00 0x6020000 0x00 0x10000>;
+ reg-names = "otg", "xhci", "dev";
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
+ <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */
+ <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; /* otgirq.0 */
+ interrupt-names = "host",
+ "peripheral",
+ "otg";
+ };
+ };
+
main_i2c0: i2c@2000000 {
compatible = "ti,j721e-i2c", "ti,omap4-i2c";
reg = <0x00 0x02000000 0x00 0x100>;
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v2 2/2] arm64: dts: ti: k3-j784s4-evm: Enable USB3 support
2024-05-06 5:20 [PATCH v2 0/2] Add USB 3.0 support for J784S4 Ravi Gunasekaran
2024-05-06 5:20 ` [PATCH v2 1/2] arm64: dts: ti: k3-j784s4-main: Add support for USB Ravi Gunasekaran
@ 2024-05-06 5:20 ` Ravi Gunasekaran
1 sibling, 0 replies; 4+ messages in thread
From: Ravi Gunasekaran @ 2024-05-06 5:20 UTC (permalink / raw)
To: nm, vigneshr
Cc: kristo, robh, krzk+dt, conor+dt, srk, rogerq, r-gunasekaran,
linux-arm-kernel, devicetree, linux-kernel
From: Matt Ranostay <mranostay@ti.com>
The board uses SERDES0 Lane 3 for USB3 IP. So update the
SerDes lane info for USB. Add the pin mux data and
enable USB3 support.
Signed-off-by: Matt Ranostay <mranostay@ti.com>
Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
---
Changes since v1:
----------------
* Fixed dtbs_check warning by renaming 'main-usbss0-pins-default'
to 'main-usbss0-default-pins'
v1: https://lore.kernel.org/all/20240502053615.29514-2-r-gunasekaran@ti.com/
arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 41 ++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
index d511b25d62e3..a2d3cba0423e 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
@@ -336,6 +336,13 @@
J784S4_IOPAD(0x010, PIN_INPUT_PULLUP, 8) /* (AH33) MCAN13_RX.I2C4_SDA */
>;
};
+
+ main_usbss0_pins_default: main-usbss0-default-pins {
+ bootph-all;
+ pinctrl-single,pins = <
+ J784S4_IOPAD(0x0ec, PIN_OUTPUT, 6) /* (AN37) TIMER_IO1.USB0_DRVVBUS */
+ >;
+ };
};
&wkup_pmx2 {
@@ -1041,6 +1048,40 @@
<&k3_clks 218 22>;
};
+&serdes0 {
+ status = "okay";
+
+ serdes0_usb_link: phy@3 {
+ reg = <3>;
+ cdns,num-lanes = <1>;
+ #phy-cells = <0>;
+ cdns,phy-type = <PHY_TYPE_USB3>;
+ resets = <&serdes_wiz0 4>;
+ };
+};
+
+&serdes_wiz0 {
+ status = "okay";
+};
+
+&usb_serdes_mux {
+ idle-states = <0>; /* USB0 to SERDES lane 3 */
+};
+
+&usbss0 {
+ status = "okay";
+ pinctrl-0 = <&main_usbss0_pins_default>;
+ pinctrl-names = "default";
+ ti,vbus-divider;
+};
+
+&usb0 {
+ dr_mode = "otg";
+ maximum-speed = "super-speed";
+ phys = <&serdes0_usb_link>;
+ phy-names = "cdns3,usb3-phy";
+};
+
&serdes_wiz4 {
status = "okay";
};
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread