From: Ravi Gunasekaran <r-gunasekaran@ti.com>
USB1 controller on J722S and AM62P are from different vendors.
Redefine the USB1 node description for J722S by deleting the
node inherited from AM62P dtsi.
Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
---
v2:
https://lore.kernel.org/r/20240513114443.16350-3-r-gunasekaran@ti.com/
No changes since v2.
v1:
https://lore.kernel.org/r/20240429120932.11456-3-r-gunasekaran@ti.com/
Changes since v1:
- The entire node which was added in k3-j722s.dtsi in v1 in now moved to
k3-j722s-main.dtsi as USB is a main domain peripheral.
- Used generic node names - renamed "cdns-usb@f920000" to "usb@f920000".
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 39 +++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
index 0dac8f1e1291..b069cecebfd9 100644
--- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
@@ -6,6 +6,13 @@
#include <dt-bindings/phy/phy-ti.h>
+/*
+ * USB1 controller on AM62P and J722S are of different IP.
+ * Delete AM62P's USBSS1 node definition and redefine it for J722S.
+ */
+
+/delete-node/ &usbss1;
+
/ {
serdes_refclk: clk-0 {
compatible = "fixed-clock";
@@ -52,6 +59,38 @@ serdes0: serdes@f000000 {
status = "disabled"; /* Needs lane config */
};
};
+
+ usbss1: usb@f920000 {
+ compatible = "ti,j721e-usb";
+ reg = <0x00 0x0f920000 0x00 0x100>;
+ power-domains = <&k3_pds 278 TI_SCI_PD_EXCLUSIVE>;
+ clocks = <&k3_clks 278 3>, <&k3_clks 278 1>;
+ clock-names = "ref", "lpm";
+ assigned-clocks = <&k3_clks 278 3>; /* USB2_REFCLK */
+ assigned-clock-parents = <&k3_clks 278 4>; /* HF0SC0 */
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+ status = "disabled";
+
+ usb1: usb@31200000{
+ compatible = "cdns,usb3";
+ reg = <0x00 0x31200000 0x00 0x10000>,
+ <0x00 0x31210000 0x00 0x10000>,
+ <0x00 0x31220000 0x00 0x10000>;
+ reg-names = "otg",
+ "xhci",
+ "dev";
+ interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
+ <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */
+ <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>; /* otgirq */
+ interrupt-names = "host",
+ "peripheral",
+ "otg";
+ maximum-speed = "super-speed";
+ dr_mode = "otg";
+ };
+ };
};
&main_conf {
--
2.40.1
On 24/05/2024 12:05, Siddharth Vadapalli wrote:
> From: Ravi Gunasekaran <r-gunasekaran@ti.com>
>
> USB1 controller on J722S and AM62P are from different vendors.
> Redefine the USB1 node description for J722S by deleting the
> node inherited from AM62P dtsi.
>
> Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
> ---
> v2:
> https://lore.kernel.org/r/20240513114443.16350-3-r-gunasekaran@ti.com/
> No changes since v2.
>
> v1:
> https://lore.kernel.org/r/20240429120932.11456-3-r-gunasekaran@ti.com/
> Changes since v1:
> - The entire node which was added in k3-j722s.dtsi in v1 in now moved to
> k3-j722s-main.dtsi as USB is a main domain peripheral.
> - Used generic node names - renamed "cdns-usb@f920000" to "usb@f920000".
>
> arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 39 +++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> index 0dac8f1e1291..b069cecebfd9 100644
> --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> @@ -6,6 +6,13 @@
>
> #include <dt-bindings/phy/phy-ti.h>
>
> +/*
> + * USB1 controller on AM62P and J722S are of different IP.
> + * Delete AM62P's USBSS1 node definition and redefine it for J722S.
> + */
> +
> +/delete-node/ &usbss1;
> +
This is odd and indicates issues with current DT file inclusion.
We need to split out the non common IPs (e.g. USB) out of the common k3-am62p-main.dtsi file Maybe call it k3-am62-main-common.dtsi.
Only keep am62p specific stuff in k3-am62p-main.dtsi.
Include k3-am62-main-common.dtsi and k3-am62p-main.dtsi for AM62P
Include k3-am62-main-common.dtsi and k3-j722s-main.dtsi for J722S
This way you don't need to call /delete-node/
> / {
> serdes_refclk: clk-0 {
> compatible = "fixed-clock";
> @@ -52,6 +59,38 @@ serdes0: serdes@f000000 {
> status = "disabled"; /* Needs lane config */
> };
> };
> +
> + usbss1: usb@f920000 {
> + compatible = "ti,j721e-usb";
> + reg = <0x00 0x0f920000 0x00 0x100>;
> + power-domains = <&k3_pds 278 TI_SCI_PD_EXCLUSIVE>;
> + clocks = <&k3_clks 278 3>, <&k3_clks 278 1>;
> + clock-names = "ref", "lpm";
> + assigned-clocks = <&k3_clks 278 3>; /* USB2_REFCLK */
> + assigned-clock-parents = <&k3_clks 278 4>; /* HF0SC0 */
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> + status = "disabled";
> +
> + usb1: usb@31200000{
> + compatible = "cdns,usb3";
> + reg = <0x00 0x31200000 0x00 0x10000>,
> + <0x00 0x31210000 0x00 0x10000>,
> + <0x00 0x31220000 0x00 0x10000>;
> + reg-names = "otg",
> + "xhci",
> + "dev";
> + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
> + <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */
> + <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>; /* otgirq */
> + interrupt-names = "host",
> + "peripheral",
> + "otg";
> + maximum-speed = "super-speed";
> + dr_mode = "otg";
> + };
> + };
> };
>
> &main_conf {
--
cheers,
-roger
On Tue, May 28, 2024 at 03:15:53PM +0300, Roger Quadros wrote: > > > On 24/05/2024 12:05, Siddharth Vadapalli wrote: > > From: Ravi Gunasekaran <r-gunasekaran@ti.com> > > > > USB1 controller on J722S and AM62P are from different vendors. > > Redefine the USB1 node description for J722S by deleting the > > node inherited from AM62P dtsi. > > > > Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com> > > Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com> > > --- > > v2: > > https://lore.kernel.org/r/20240513114443.16350-3-r-gunasekaran@ti.com/ > > No changes since v2. > > > > v1: > > https://lore.kernel.org/r/20240429120932.11456-3-r-gunasekaran@ti.com/ > > Changes since v1: > > - The entire node which was added in k3-j722s.dtsi in v1 in now moved to > > k3-j722s-main.dtsi as USB is a main domain peripheral. > > - Used generic node names - renamed "cdns-usb@f920000" to "usb@f920000". > > > > arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 39 +++++++++++++++++++++++ > > 1 file changed, 39 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi > > index 0dac8f1e1291..b069cecebfd9 100644 > > --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi > > +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi > > @@ -6,6 +6,13 @@ > > > > #include <dt-bindings/phy/phy-ti.h> > > > > +/* > > + * USB1 controller on AM62P and J722S are of different IP. > > + * Delete AM62P's USBSS1 node definition and redefine it for J722S. > > + */ > > + > > +/delete-node/ &usbss1; > > + > > This is odd and indicates issues with current DT file inclusion. > We need to split out the non common IPs (e.g. USB) out of the common k3-am62p-main.dtsi file Maybe call it k3-am62-main-common.dtsi. > Only keep am62p specific stuff in k3-am62p-main.dtsi. > > Include k3-am62-main-common.dtsi and k3-am62p-main.dtsi for AM62P > Include k3-am62-main-common.dtsi and k3-j722s-main.dtsi for J722S > > This way you don't need to call /delete-node/ Ok. I will move the common nodes between k3-am62p-main.dtsi and k3-j722s-main.dtsi to "k3-am62p-j722s-common.dtsi". Regards, Siddharth.
© 2016 - 2026 Red Hat, Inc.