* [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
@ 2023-04-06 18:55 Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 1/8] omap: timer: add ti,am654-timer compatibility Sjoerd Simons
` (10 more replies)
0 siblings, 11 replies; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot
Cc: Angus Ainslie, Aswath Govindraju, Dave Gerlach, Dhruva Gole,
Georgi Vlaev, Gowtham Tammana, Julien Panis, Kamlesh Gurudasani,
Kunihiko Hayashi, Marek Vasut, Mattijs Korpershoek,
Nishanth Menon, Simon Glass, Suman Anna, Tom Rini,
Vignesh Raghavendra
This series adds more boot sources for the TI am62x. For that the dts'
are synced from the upstream ti-next git tree (to add usb nodes), some
dwc3 glue is and finally the default configuration is tuned to add
support for DFU and USB (host and gadget)
Changes in v2:
- Update dts sync to v6.3-rc5
- Switch dwc3 glue to a seperate driver rather then in dwc-generic
- Minimize config changes to just DFU configuration
- Only enable usb port 0 DFU in SPL
- Create a seperate defconfig for R5
Sjoerd Simons (8):
omap: timer: add ti,am654-timer compatibility
arm: mach-k3: am62: Add timer0 id to the dev list
arm: dts: k3-am62: Bump dtsi from linux
arm: dts: k3-am625-sk: Enable emmc in SPL
usb: dwc3: Add dwc3 glue driver for am62
configs: am62: Add configs for enabling USB in U-Boot
arm: dts: k3-am625-sk: Enable usb ports in u-boot
configs: am62x_evm_*: Enable USB and DFU support
arch/arm/dts/k3-am62-main.dtsi | 259 +++++++++++++++++++++++---
arch/arm/dts/k3-am62-mcu.dtsi | 49 +++++
arch/arm/dts/k3-am62-wakeup.dtsi | 4 +-
arch/arm/dts/k3-am625-r5-sk.dts | 2 +-
arch/arm/dts/k3-am625-sk-u-boot.dtsi | 27 ++-
arch/arm/dts/k3-am625-sk.dts | 95 +++++-----
arch/arm/dts/k3-am625.dtsi | 52 ++++++
arch/arm/mach-k3/am62x/dev-data.c | 1 +
configs/am62x_evm_a53_defconfig | 35 +++-
configs/am62x_evm_r5_usbdfu_defconfig | 116 ++++++++++++
drivers/timer/omap-timer.c | 1 +
drivers/usb/dwc3/Kconfig | 14 ++
drivers/usb/dwc3/Makefile | 1 +
drivers/usb/dwc3/dwc3-am62.c | 127 +++++++++++++
include/configs/am62x_evm.h | 10 +-
15 files changed, 701 insertions(+), 92 deletions(-)
create mode 100644 configs/am62x_evm_r5_usbdfu_defconfig
create mode 100644 drivers/usb/dwc3/dwc3-am62.c
--
2.40.0
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v2 1/8] omap: timer: add ti,am654-timer compatibility
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
@ 2023-04-06 18:55 ` Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 2/8] arm: mach-k3: am62: Add timer0 id to the dev list Sjoerd Simons
` (9 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot; +Cc: Tom Rini
THe TI AM654 timer is compatible with the omap-timer implementation, so
add it to the id list
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
---
(no changes since v1)
drivers/timer/omap-timer.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/timer/omap-timer.c b/drivers/timer/omap-timer.c
index aa2e4360c1b..9b6d97dae67 100644
--- a/drivers/timer/omap-timer.c
+++ b/drivers/timer/omap-timer.c
@@ -114,6 +114,7 @@ static const struct udevice_id omap_timer_ids[] = {
{ .compatible = "ti,am335x-timer" },
{ .compatible = "ti,am4372-timer" },
{ .compatible = "ti,omap5430-timer" },
+ { .compatible = "ti,am654-timer" },
{}
};
--
2.40.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 2/8] arm: mach-k3: am62: Add timer0 id to the dev list
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 1/8] omap: timer: add ti,am654-timer compatibility Sjoerd Simons
@ 2023-04-06 18:55 ` Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 3/8] arm: dts: k3-am62: Bump dtsi from linux Sjoerd Simons
` (8 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot; +Cc: Tom Rini, Dave Gerlach, Suman Anna, Vignesh Raghavendra
Timer0 is used by u-boot as the tick timer; Add it to the soc devices
list so it can be enabled via the k3 power controller.
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
---
(no changes since v1)
arch/arm/mach-k3/am62x/dev-data.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-k3/am62x/dev-data.c b/arch/arm/mach-k3/am62x/dev-data.c
index 616d0650b9c..140dca4bd1d 100644
--- a/arch/arm/mach-k3/am62x/dev-data.c
+++ b/arch/arm/mach-k3/am62x/dev-data.c
@@ -58,6 +58,7 @@ static struct ti_dev soc_dev_list[] = {
PSC_DEV(161, &soc_lpsc_list[8]),
PSC_DEV(162, &soc_lpsc_list[9]),
PSC_DEV(75, &soc_lpsc_list[10]),
+ PSC_DEV(36, &soc_lpsc_list[11]),
PSC_DEV(102, &soc_lpsc_list[11]),
PSC_DEV(146, &soc_lpsc_list[11]),
PSC_DEV(13, &soc_lpsc_list[12]),
--
2.40.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 3/8] arm: dts: k3-am62: Bump dtsi from linux
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 1/8] omap: timer: add ti,am654-timer compatibility Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 2/8] arm: mach-k3: am62: Add timer0 id to the dev list Sjoerd Simons
@ 2023-04-06 18:55 ` Sjoerd Simons
2023-04-11 14:17 ` Nishanth Menon
2023-04-06 18:55 ` [PATCH v2 4/8] arm: dts: k3-am625-sk: Enable emmc in SPL Sjoerd Simons
` (7 subsequent siblings)
10 siblings, 1 reply; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot
Cc: Aswath Govindraju, Dave Gerlach, Dhruva Gole, Georgi Vlaev,
Gowtham Tammana, Julien Panis, Nishanth Menon, Simon Glass,
Suman Anna, Tom Rini, Vignesh Raghavendra
Update the am62 and am625 device-trees from linux v6.3-rc5 This needed the following
tweaks to the u-boot specific dtsi as well:
- Switch tick-timer to the main_timer as it's now defined in the main dtsi
- Add mdio pins to the cpsw3g pinctrl. It moved to a subnode in the
linux dtsi that u-boot doesn't use/support
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
---
Changes in v2:
- Update dts sync to v6.3-rc5
arch/arm/dts/k3-am62-main.dtsi | 259 ++++++++++++++++++++++++---
arch/arm/dts/k3-am62-mcu.dtsi | 49 +++++
arch/arm/dts/k3-am62-wakeup.dtsi | 4 +-
arch/arm/dts/k3-am625-r5-sk.dts | 2 +-
arch/arm/dts/k3-am625-sk-u-boot.dtsi | 8 +-
arch/arm/dts/k3-am625-sk.dts | 95 +++++-----
arch/arm/dts/k3-am625.dtsi | 52 ++++++
7 files changed, 381 insertions(+), 88 deletions(-)
diff --git a/arch/arm/dts/k3-am62-main.dtsi b/arch/arm/dts/k3-am62-main.dtsi
index 4a42f1b2e31..ea683fd77d6 100644
--- a/arch/arm/dts/k3-am62-main.dtsi
+++ b/arch/arm/dts/k3-am62-main.dtsi
@@ -54,6 +54,12 @@
reg = <0x4044 0x8>;
#phy-cells = <1>;
};
+
+ epwm_tbclk: clock@4130 {
+ compatible = "ti,am62-epwm-tbclk", "syscon";
+ reg = <0x4130 0x4>;
+ #clock-cells = <1>;
+ };
};
dmss: bus@48000000 {
@@ -144,8 +150,8 @@
compatible = "ti,k2g-sci";
ti,host-id = <12>;
mbox-names = "rx", "tx";
- mboxes= <&secure_proxy_main 12>,
- <&secure_proxy_main 13>;
+ mboxes = <&secure_proxy_main 12>,
+ <&secure_proxy_main 13>;
reg-names = "debug_messages";
reg = <0x00 0x44043000 0x00 0xfe0>;
@@ -186,6 +192,102 @@
pinctrl-single,function-mask = <0xffffffff>;
};
+ main_timer0: timer@2400000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x2400000 0x00 0x400>;
+ interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 36 2>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 36 2>;
+ assigned-clock-parents = <&k3_clks 36 3>;
+ power-domains = <&k3_pds 36 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ };
+
+ main_timer1: timer@2410000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x2410000 0x00 0x400>;
+ interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 37 2>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 37 2>;
+ assigned-clock-parents = <&k3_clks 37 3>;
+ power-domains = <&k3_pds 37 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ };
+
+ main_timer2: timer@2420000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x2420000 0x00 0x400>;
+ interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 38 2>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 38 2>;
+ assigned-clock-parents = <&k3_clks 38 3>;
+ power-domains = <&k3_pds 38 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ };
+
+ main_timer3: timer@2430000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x2430000 0x00 0x400>;
+ interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 39 2>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 39 2>;
+ assigned-clock-parents = <&k3_clks 39 3>;
+ power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ };
+
+ main_timer4: timer@2440000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x2440000 0x00 0x400>;
+ interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 40 2>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 40 2>;
+ assigned-clock-parents = <&k3_clks 40 3>;
+ power-domains = <&k3_pds 40 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ };
+
+ main_timer5: timer@2450000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x2450000 0x00 0x400>;
+ interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 41 2>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 41 2>;
+ assigned-clock-parents = <&k3_clks 41 3>;
+ power-domains = <&k3_pds 41 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ };
+
+ main_timer6: timer@2460000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x2460000 0x00 0x400>;
+ interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 42 2>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 42 2>;
+ assigned-clock-parents = <&k3_clks 42 3>;
+ power-domains = <&k3_pds 42 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ };
+
+ main_timer7: timer@2470000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x2470000 0x00 0x400>;
+ interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 43 2>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 43 2>;
+ assigned-clock-parents = <&k3_clks 43 3>;
+ power-domains = <&k3_pds 43 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ };
+
main_uart0: serial@2800000 {
compatible = "ti,am64-uart", "ti,am654-uart";
reg = <0x00 0x02800000 0x00 0x100>;
@@ -193,6 +295,7 @@
power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 146 0>;
clock-names = "fclk";
+ status = "disabled";
};
main_uart1: serial@2810000 {
@@ -202,6 +305,7 @@
power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 152 0>;
clock-names = "fclk";
+ status = "disabled";
};
main_uart2: serial@2820000 {
@@ -211,6 +315,7 @@
power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 153 0>;
clock-names = "fclk";
+ status = "disabled";
};
main_uart3: serial@2830000 {
@@ -220,6 +325,7 @@
power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 154 0>;
clock-names = "fclk";
+ status = "disabled";
};
main_uart4: serial@2840000 {
@@ -229,6 +335,7 @@
power-domains = <&k3_pds 155 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 155 0>;
clock-names = "fclk";
+ status = "disabled";
};
main_uart5: serial@2850000 {
@@ -238,6 +345,7 @@
power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 156 0>;
clock-names = "fclk";
+ status = "disabled";
};
main_uart6: serial@2860000 {
@@ -247,6 +355,7 @@
power-domains = <&k3_pds 158 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 158 0>;
clock-names = "fclk";
+ status = "disabled";
};
main_i2c0: i2c@20000000 {
@@ -258,6 +367,7 @@
power-domains = <&k3_pds 102 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 102 2>;
clock-names = "fck";
+ status = "disabled";
};
main_i2c1: i2c@20010000 {
@@ -269,6 +379,7 @@
power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 103 2>;
clock-names = "fck";
+ status = "disabled";
};
main_i2c2: i2c@20020000 {
@@ -280,6 +391,7 @@
power-domains = <&k3_pds 104 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 104 2>;
clock-names = "fck";
+ status = "disabled";
};
main_i2c3: i2c@20030000 {
@@ -291,6 +403,7 @@
power-domains = <&k3_pds 105 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 105 2>;
clock-names = "fck";
+ status = "disabled";
};
main_spi0: spi@20100000 {
@@ -300,7 +413,8 @@
#address-cells = <1>;
#size-cells = <0>;
power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>;
- clocks = <&k3_clks 172 0>;
+ clocks = <&k3_clks 141 0>;
+ status = "disabled";
};
main_spi1: spi@20110000 {
@@ -310,7 +424,8 @@
#address-cells = <1>;
#size-cells = <0>;
power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>;
- clocks = <&k3_clks 173 0>;
+ clocks = <&k3_clks 142 0>;
+ status = "disabled";
};
main_spi2: spi@20120000 {
@@ -320,7 +435,8 @@
#address-cells = <1>;
#size-cells = <0>;
power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>;
- clocks = <&k3_clks 174 0>;
+ clocks = <&k3_clks 143 0>;
+ status = "disabled";
};
main_gpio_intr: interrupt-controller@a00000 {
@@ -385,8 +501,11 @@
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";
};
sdhci1: mmc@fa00000 {
@@ -397,19 +516,20 @@
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";
};
sdhci2: mmc@fa20000 {
@@ -420,18 +540,65 @@
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";
+ };
+
+ 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 {
@@ -456,6 +623,7 @@
power-domains = <&k3_pds 75 TI_SCI_PD_EXCLUSIVE>;
#address-cells = <1>;
#size-cells = <0>;
+ status = "disabled";
};
};
@@ -514,12 +682,13 @@
clocks = <&k3_clks 13 0>;
clock-names = "fck";
bus_freq = <1000000>;
+ status = "disabled";
};
cpts@3d000 {
compatible = "ti,j721e-cpts";
reg = <0x00 0x3d000 0x00 0x400>;
- clocks = <&k3_clks 13 1>;
+ clocks = <&k3_clks 13 3>;
clock-names = "cpts";
interrupts-extended = <&gic500 GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "cpts";
@@ -551,6 +720,7 @@
power-domains = <&k3_pds 51 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 51 0>;
clock-names = "fck";
+ status = "disabled";
};
ecap1: pwm@23110000 {
@@ -560,6 +730,7 @@
power-domains = <&k3_pds 52 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 52 0>;
clock-names = "fck";
+ status = "disabled";
};
ecap2: pwm@23120000 {
@@ -569,6 +740,7 @@
power-domains = <&k3_pds 53 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 53 0>;
clock-names = "fck";
+ status = "disabled";
};
main_mcan0: can@20701000 {
@@ -583,5 +755,36 @@
<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "int0", "int1";
bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+ status = "disabled";
+ };
+
+ epwm0: pwm@23000000 {
+ compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
+ #pwm-cells = <3>;
+ reg = <0x00 0x23000000 0x00 0x100>;
+ power-domains = <&k3_pds 86 TI_SCI_PD_EXCLUSIVE>;
+ clocks = <&epwm_tbclk 0>, <&k3_clks 86 0>;
+ clock-names = "tbclk", "fck";
+ status = "disabled";
+ };
+
+ epwm1: pwm@23010000 {
+ compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
+ #pwm-cells = <3>;
+ reg = <0x00 0x23010000 0x00 0x100>;
+ power-domains = <&k3_pds 87 TI_SCI_PD_EXCLUSIVE>;
+ clocks = <&epwm_tbclk 1>, <&k3_clks 87 0>;
+ clock-names = "tbclk", "fck";
+ status = "disabled";
+ };
+
+ epwm2: pwm@23020000 {
+ compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
+ #pwm-cells = <3>;
+ reg = <0x00 0x23020000 0x00 0x100>;
+ power-domains = <&k3_pds 88 TI_SCI_PD_EXCLUSIVE>;
+ clocks = <&epwm_tbclk 2>, <&k3_clks 88 0>;
+ clock-names = "tbclk", "fck";
+ status = "disabled";
};
};
diff --git a/arch/arm/dts/k3-am62-mcu.dtsi b/arch/arm/dts/k3-am62-mcu.dtsi
index f56c803560f..a427231527c 100644
--- a/arch/arm/dts/k3-am62-mcu.dtsi
+++ b/arch/arm/dts/k3-am62-mcu.dtsi
@@ -14,6 +14,51 @@
pinctrl-single,function-mask = <0xffffffff>;
};
+ /*
+ * The MCU domain timer interrupts are routed only to the ESM module,
+ * and not currently available for Linux. The MCU domain timers are
+ * of limited use without interrupts, and likely reserved by the ESM.
+ */
+ mcu_timer0: timer@4800000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x4800000 0x00 0x400>;
+ clocks = <&k3_clks 35 2>;
+ clock-names = "fck";
+ power-domains = <&k3_pds 35 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ status = "reserved";
+ };
+
+ mcu_timer1: timer@4810000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x4810000 0x00 0x400>;
+ clocks = <&k3_clks 48 2>;
+ clock-names = "fck";
+ power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ status = "reserved";
+ };
+
+ mcu_timer2: timer@4820000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x4820000 0x00 0x400>;
+ clocks = <&k3_clks 49 2>;
+ clock-names = "fck";
+ power-domains = <&k3_pds 49 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ status = "reserved";
+ };
+
+ mcu_timer3: timer@4830000 {
+ compatible = "ti,am654-timer";
+ reg = <0x00 0x4830000 0x00 0x400>;
+ clocks = <&k3_clks 50 2>;
+ clock-names = "fck";
+ power-domains = <&k3_pds 50 TI_SCI_PD_EXCLUSIVE>;
+ ti,timer-pwm;
+ status = "reserved";
+ };
+
mcu_uart0: serial@4a00000 {
compatible = "ti,am64-uart", "ti,am654-uart";
reg = <0x00 0x04a00000 0x00 0x100>;
@@ -21,6 +66,7 @@
power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 149 0>;
clock-names = "fclk";
+ status = "disabled";
};
mcu_i2c0: i2c@4900000 {
@@ -32,6 +78,7 @@
power-domains = <&k3_pds 106 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 106 2>;
clock-names = "fck";
+ status = "disabled";
};
mcu_spi0: spi@4b00000 {
@@ -42,6 +89,7 @@
#size-cells = <0>;
power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 147 0>;
+ status = "disabled";
};
mcu_spi1: spi@4b10000 {
@@ -52,6 +100,7 @@
#size-cells = <0>;
power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 148 0>;
+ status = "disabled";
};
mcu_gpio_intr: interrupt-controller@4210000 {
diff --git a/arch/arm/dts/k3-am62-wakeup.dtsi b/arch/arm/dts/k3-am62-wakeup.dtsi
index 4090134676c..38dced6b4fe 100644
--- a/arch/arm/dts/k3-am62-wakeup.dtsi
+++ b/arch/arm/dts/k3-am62-wakeup.dtsi
@@ -26,16 +26,18 @@
power-domains = <&k3_pds 114 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 114 0>;
clock-names = "fclk";
+ status = "disabled";
};
wkup_i2c0: i2c@2b200000 {
compatible = "ti,am64-i2c", "ti,omap4-i2c";
- reg = <0x00 0x02b200000 0x00 0x100>;
+ reg = <0x00 0x2b200000 0x00 0x100>;
interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
power-domains = <&k3_pds 107 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 107 4>;
clock-names = "fck";
+ status = "disabled";
};
};
diff --git a/arch/arm/dts/k3-am625-r5-sk.dts b/arch/arm/dts/k3-am625-r5-sk.dts
index dad46704a2d..59ce1a1d70e 100644
--- a/arch/arm/dts/k3-am625-r5-sk.dts
+++ b/arch/arm/dts/k3-am625-r5-sk.dts
@@ -20,7 +20,7 @@
chosen {
stdout-path = "serial2:115200n8";
- tick-timer = &timer1;
+ tick-timer = &main_timer0;
};
memory@80000000 {
diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
index 249155733a2..0def84b4cf0 100644
--- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
@@ -7,7 +7,7 @@
/ {
chosen {
stdout-path = "serial2:115200n8";
- tick-timer = &timer1;
+ tick-timer = &main_timer0;
};
aliases {
@@ -22,10 +22,7 @@
&cbass_main{
bootph-pre-ram;
- timer1: timer@2400000 {
- compatible = "ti,omap5430-timer";
- reg = <0x00 0x2400000 0x00 0x80>;
- ti,timer-alwon;
+ timer@2400000 {
clock-frequency = <25000000>;
bootph-pre-ram;
};
@@ -133,6 +130,7 @@
reg-names = "cpsw_nuss", "mac_efuse";
/delete-property/ ranges;
bootph-pre-ram;
+ pinctrl-0 = <&main_mdio1_pins_default &main_rgmii1_pins_default>;
cpsw-phy-sel@04044 {
compatible = "ti,am64-phy-gmii-sel";
diff --git a/arch/arm/dts/k3-am625-sk.dts b/arch/arm/dts/k3-am625-sk.dts
index af5617ff44d..6bc7d63cf52 100644
--- a/arch/arm/dts/k3-am625-sk.dts
+++ b/arch/arm/dts/k3-am625-sk.dts
@@ -13,7 +13,7 @@
#include "k3-am625.dtsi"
/ {
- compatible = "ti,am625-sk", "ti,am625";
+ compatible = "ti,am625-sk", "ti,am625";
model = "Texas Instruments AM625 SK";
aliases {
@@ -24,6 +24,8 @@
spi0 = &ospi0;
ethernet0 = &cpsw_port1;
ethernet1 = &cpsw_port2;
+ usb0 = &usb0;
+ usb1 = &usb1;
};
chosen {
@@ -31,6 +33,15 @@
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
};
+ opp-table {
+ /* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
+ opp-1400000000 {
+ opp-hz = /bits/ 64 <1400000000>;
+ opp-supported-hw = <0x01 0x0004>;
+ clock-latency-ns = <6000000>;
+ };
+ };
+
memory@80000000 {
device_type = "memory";
/* 2G RAM */
@@ -275,6 +286,12 @@
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 {
@@ -282,11 +299,8 @@
status = "reserved";
};
-&mcu_uart0 {
- status = "disabled";
-};
-
&main_uart0 {
+ status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_uart0_pins_default>;
};
@@ -296,42 +310,16 @@
status = "reserved";
};
-&main_uart2 {
- status = "disabled";
-};
-
-&main_uart3 {
- status = "disabled";
-};
-
-&main_uart4 {
- status = "disabled";
-};
-
-&main_uart5 {
- status = "disabled";
-};
-
-&main_uart6 {
- status = "disabled";
-};
-
-&mcu_i2c0 {
- status = "disabled";
-};
-
-&wkup_i2c0 {
- status = "disabled";
-};
-
&main_i2c0 {
- status = "disabled";
+ status = "okay";
+ pinctrl-names = "default";
pinctrl-0 = <&main_i2c0_pins_default>;
clock-frequency = <400000>;
};
&main_i2c1 {
- status = "disabled";
+ status = "okay";
+ pinctrl-names = "default";
pinctrl-0 = <&main_i2c1_pins_default>;
clock-frequency = <400000>;
@@ -363,15 +351,8 @@
};
};
-&main_i2c2 {
- status = "disabled";
-};
-
-&main_i2c3 {
- status = "disabled";
-};
-
&sdhci0 {
+ status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_mmc0_pins_default>;
ti,driver-strength-ohm = <50>;
@@ -380,6 +361,7 @@
&sdhci1 {
/* SD/MMC */
+ status = "okay";
vmmc-supply = <&vdd_mmc1>;
vqmmc-supply = <&vdd_sd_dv>;
pinctrl-names = "default";
@@ -390,8 +372,7 @@
&cpsw3g {
pinctrl-names = "default";
- pinctrl-0 = <&main_mdio1_pins_default
- &main_rgmii1_pins_default
+ pinctrl-0 = <&main_rgmii1_pins_default
&main_rgmii2_pins_default>;
};
@@ -406,6 +387,10 @@
};
&cpsw3g_mdio {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_mdio1_pins_default>;
+
cpsw3g_phy0: ethernet-phy@0 {
reg = <0>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
@@ -429,6 +414,7 @@
};
&ospi0 {
+ status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&ospi0_pins_default>;
@@ -487,18 +473,21 @@
};
};
-&ecap0 {
- status = "disabled";
+&usbss0 {
+ status = "okay";
+ ti,vbus-divider;
};
-&ecap1 {
- status = "disabled";
+&usbss1 {
+ status = "okay";
};
-&ecap2 {
- status = "disabled";
+&usb0 {
+ dr_mode = "peripheral";
};
-&main_mcan0 {
- status = "disabled";
+&usb1 {
+ dr_mode = "host";
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_usb1_pins_default>;
};
diff --git a/arch/arm/dts/k3-am625.dtsi b/arch/arm/dts/k3-am625.dtsi
index 887f31c23fe..acc7f8ab642 100644
--- a/arch/arm/dts/k3-am625.dtsi
+++ b/arch/arm/dts/k3-am625.dtsi
@@ -48,6 +48,8 @@
d-cache-line-size = <64>;
d-cache-sets = <128>;
next-level-cache = <&L2_0>;
+ operating-points-v2 = <&a53_opp_table>;
+ clocks = <&k3_clks 135 0>;
};
cpu1: cpu@1 {
@@ -62,6 +64,8 @@
d-cache-line-size = <64>;
d-cache-sets = <128>;
next-level-cache = <&L2_0>;
+ operating-points-v2 = <&a53_opp_table>;
+ clocks = <&k3_clks 136 0>;
};
cpu2: cpu@2 {
@@ -76,6 +80,8 @@
d-cache-line-size = <64>;
d-cache-sets = <128>;
next-level-cache = <&L2_0>;
+ operating-points-v2 = <&a53_opp_table>;
+ clocks = <&k3_clks 137 0>;
};
cpu3: cpu@3 {
@@ -90,11 +96,57 @@
d-cache-line-size = <64>;
d-cache-sets = <128>;
next-level-cache = <&L2_0>;
+ operating-points-v2 = <&a53_opp_table>;
+ clocks = <&k3_clks 138 0>;
+ };
+ };
+
+ a53_opp_table: opp-table {
+ compatible = "operating-points-v2-ti-cpu";
+ opp-shared;
+ syscon = <&wkup_conf>;
+
+ opp-200000000 {
+ opp-hz = /bits/ 64 <200000000>;
+ opp-supported-hw = <0x01 0x0007>;
+ clock-latency-ns = <6000000>;
+ };
+
+ opp-400000000 {
+ opp-hz = /bits/ 64 <400000000>;
+ opp-supported-hw = <0x01 0x0007>;
+ clock-latency-ns = <6000000>;
+ };
+
+ opp-600000000 {
+ opp-hz = /bits/ 64 <600000000>;
+ opp-supported-hw = <0x01 0x0007>;
+ clock-latency-ns = <6000000>;
+ };
+
+ opp-800000000 {
+ opp-hz = /bits/ 64 <800000000>;
+ opp-supported-hw = <0x01 0x0007>;
+ clock-latency-ns = <6000000>;
+ };
+
+ opp-1000000000 {
+ opp-hz = /bits/ 64 <1000000000>;
+ opp-supported-hw = <0x01 0x0006>;
+ clock-latency-ns = <6000000>;
+ };
+
+ opp-1250000000 {
+ opp-hz = /bits/ 64 <1250000000>;
+ opp-supported-hw = <0x01 0x0004>;
+ clock-latency-ns = <6000000>;
+ opp-suspend;
};
};
L2_0: l2-cache0 {
compatible = "cache";
+ cache-unified;
cache-level = <2>;
cache-size = <0x40000>;
cache-line-size = <64>;
--
2.40.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 4/8] arm: dts: k3-am625-sk: Enable emmc in SPL
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
` (2 preceding siblings ...)
2023-04-06 18:55 ` [PATCH v2 3/8] arm: dts: k3-am62: Bump dtsi from linux Sjoerd Simons
@ 2023-04-06 18:55 ` Sjoerd Simons
2023-09-19 7:35 ` Sverdlin, Alexander
2023-04-06 18:55 ` [PATCH v2 5/8] usb: dwc3: Add dwc3 glue driver for am62 Sjoerd Simons
` (6 subsequent siblings)
10 siblings, 1 reply; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot
Cc: Tom Rini, Aswath Govindraju, Dhruva Gole, Georgi Vlaev,
Nishanth Menon, Simon Glass, Vignesh Raghavendra
sdhci0 on the k3-am625-sk is the emmc, enable this in SPL as well to
allow booting from that media.
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
---
(no changes since v1)
arch/arm/dts/k3-am625-sk-u-boot.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
index 0def84b4cf0..5f90a4b56f1 100644
--- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
@@ -92,6 +92,14 @@
bootph-pre-ram;
};
+&sdhci0 {
+ bootph-pre-ram;
+};
+
+&main_mmc0_pins_default {
+ bootph-pre-ram;
+};
+
&sdhci1 {
bootph-pre-ram;
};
--
2.40.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 5/8] usb: dwc3: Add dwc3 glue driver for am62
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
` (3 preceding siblings ...)
2023-04-06 18:55 ` [PATCH v2 4/8] arm: dts: k3-am625-sk: Enable emmc in SPL Sjoerd Simons
@ 2023-04-06 18:55 ` Sjoerd Simons
2023-04-07 13:26 ` Mattijs Korpershoek
2023-04-24 2:25 ` Kunihiko Hayashi
2023-04-06 18:55 ` [PATCH v2 6/8] configs: am62: Add configs for enabling USB in U-Boot Sjoerd Simons
` (5 subsequent siblings)
10 siblings, 2 replies; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot; +Cc: Angus Ainslie, Kunihiko Hayashi, Marek Vasut, Mattijs Korpershoek
Add glue code for TI AM62 to the dwc3 driver; Most code adopted from
TI vendor u-boot code.
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
---
Changes in v2:
- Switch dwc3 glue to a seperate driver rather then in dwc-generic
drivers/usb/dwc3/Kconfig | 14 ++++
drivers/usb/dwc3/Makefile | 1 +
drivers/usb/dwc3/dwc3-am62.c | 127 +++++++++++++++++++++++++++++++++++
3 files changed, 142 insertions(+)
create mode 100644 drivers/usb/dwc3/dwc3-am62.c
diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
index c0c8c16fd9c..26a1e1770c5 100644
--- a/drivers/usb/dwc3/Kconfig
+++ b/drivers/usb/dwc3/Kconfig
@@ -37,6 +37,20 @@ config SPL_USB_DWC3_GENERIC
Select this for Xilinx ZynqMP and similar Platforms.
This wrapper supports Host and Peripheral operation modes.
+config SPL_USB_DWC3_AM62
+ bool "TI AM62 USB wrapper"
+ depends on SPL_DM_USB && SPL_USB_DWC3_GENERIC
+ help
+ Select this for TI AM62 Platforms.
+ This wrapper supports Host and Peripheral operation modes.
+
+config USB_DWC3_AM62
+ bool "TI AM62 USB wrapper"
+ depends on DM_USB && USB_DWC3_GENERIC
+ help
+ Select this for TI AM62 Platforms.
+ This wrapper supports Host and Peripheral operation modes.
+
config USB_DWC3_MESON_G12A
bool "Amlogic Meson G12A USB wrapper"
depends on DM_USB && USB_DWC3 && ARCH_MESON
diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile
index 97b4f7191ca..a46b6824ab7 100644
--- a/drivers/usb/dwc3/Makefile
+++ b/drivers/usb/dwc3/Makefile
@@ -6,6 +6,7 @@ dwc3-y := core.o
obj-$(CONFIG_USB_DWC3_GADGET) += gadget.o ep0.o
+obj-$(CONFIG_$(SPL_)USB_DWC3_AM62) += dwc3-am62.o
obj-$(CONFIG_USB_DWC3_OMAP) += dwc3-omap.o
obj-$(CONFIG_USB_DWC3_MESON_G12A) += dwc3-meson-g12a.o
obj-$(CONFIG_USB_DWC3_MESON_GXL) += dwc3-meson-gxl.o
diff --git a/drivers/usb/dwc3/dwc3-am62.c b/drivers/usb/dwc3/dwc3-am62.c
new file mode 100644
index 00000000000..20d99758b4f
--- /dev/null
+++ b/drivers/usb/dwc3/dwc3-am62.c
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * TI AM62 specific glue layer for DWC3
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <dm/device_compat.h>
+#include <regmap.h>
+#include <syscon.h>
+#include <asm/io.h>
+
+#include "dwc3-generic.h"
+
+void dwc3_ti_am62_glue_configure(struct udevice *dev, int index,
+ enum usb_dr_mode mode)
+{
+#define USBSS_MODE_CONTROL 0x1c
+#define USBSS_PHY_CONFIG 0x8
+#define USBSS_PHY_VBUS_SEL_MASK GENMASK(2, 1)
+#define USBSS_PHY_VBUS_SEL_SHIFT 1
+#define USBSS_MODE_VALID BIT(0)
+#define PHY_PLL_REFCLK_MASK GENMASK(3, 0)
+static const int dwc3_ti_am62_rate_table[] = { /* in KHZ */
+ 9600,
+ 10000,
+ 12000,
+ 19200,
+ 20000,
+ 24000,
+ 25000,
+ 26000,
+ 38400,
+ 40000,
+ 58000,
+ 50000,
+ 52000,
+};
+
+ struct clk usb2_refclk;
+ int rate_code, i, ret;
+ unsigned long rate;
+ u32 reg;
+ void *usbss;
+ bool vbus_divider;
+ struct regmap *syscon;
+ struct ofnode_phandle_args args;
+
+ usbss = dev_remap_addr_index(dev, 0);
+ if (IS_ERR(usbss)) {
+ dev_err(dev, "can't map IOMEM resource\n");
+ return;
+ }
+
+ ret = clk_get_by_name(dev, "ref", &usb2_refclk);
+ if (ret) {
+ dev_err(dev, "can't get usb2_refclk\n");
+ return;
+ }
+
+ /* Calcuate the rate code */
+ rate = clk_get_rate(&usb2_refclk);
+ rate /= 1000; /* To KHz */
+ for (i = 0; i < ARRAY_SIZE(dwc3_ti_am62_rate_table); i++) {
+ if (dwc3_ti_am62_rate_table[i] == rate)
+ break;
+ }
+
+ if (i == ARRAY_SIZE(dwc3_ti_am62_rate_table)) {
+ dev_err(dev, "unsupported usb2_refclk rate: %lu KHz\n", rate);
+ return;
+ }
+
+ rate_code = i;
+
+ /* Read the syscon property */
+ syscon = syscon_regmap_lookup_by_phandle(dev, "ti,syscon-phy-pll-refclk");
+ if (IS_ERR(syscon)) {
+ dev_err(dev, "unable to get ti,syscon-phy-pll-refclk regmap\n");
+ return;
+ }
+
+ ret = ofnode_parse_phandle_with_args(dev_ofnode(dev), "ti,syscon-phy-pll-refclk", NULL, 1,
+ 0, &args);
+ if (ret)
+ return;
+
+ /* Program PHY PLL refclk by reading syscon property */
+ ret = regmap_update_bits(syscon, args.args[0], PHY_PLL_REFCLK_MASK, rate_code);
+ if (ret) {
+ dev_err(dev, "failed to set phy pll reference clock rate\n");
+ return;
+ }
+
+ /* VBUS divider select */
+ reg = readl(usbss + USBSS_PHY_CONFIG);
+ vbus_divider = dev_read_bool(dev, "ti,vbus-divider");
+ if (vbus_divider)
+ reg |= 1 << USBSS_PHY_VBUS_SEL_SHIFT;
+
+ writel(reg, usbss + USBSS_PHY_CONFIG);
+
+ /* Set mode valid */
+ reg = readl(usbss + USBSS_MODE_CONTROL);
+ reg |= USBSS_MODE_VALID;
+ writel(reg, usbss + USBSS_MODE_CONTROL);
+}
+
+struct dwc3_glue_ops ti_am62_ops = {
+ .glue_configure = dwc3_ti_am62_glue_configure,
+};
+
+static const struct udevice_id dwc3_am62_match[] = {
+ { .compatible = "ti,am62-usb", .data = (ulong)&ti_am62_ops },
+ { /* sentinel */ }
+};
+
+U_BOOT_DRIVER(dwc3_am62_wrapper) = {
+ .name = "dwc3-am62",
+ .id = UCLASS_SIMPLE_BUS,
+ .of_match = dwc3_am62_match,
+ .bind = dwc3_glue_bind,
+ .probe = dwc3_glue_probe,
+ .remove = dwc3_glue_remove,
+ .plat_auto = sizeof(struct dwc3_glue_data),
+
+};
--
2.40.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 6/8] configs: am62: Add configs for enabling USB in U-Boot
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
` (4 preceding siblings ...)
2023-04-06 18:55 ` [PATCH v2 5/8] usb: dwc3: Add dwc3 glue driver for am62 Sjoerd Simons
@ 2023-04-06 18:55 ` Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 7/8] arm: dts: k3-am625-sk: Enable usb ports in u-boot Sjoerd Simons
` (4 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot; +Cc: Dave Gerlach
Add configs for enabling USB DFU in U-Boot.
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
---
Changes in v2:
- Minimize config changes to just DFU configuration
include/configs/am62x_evm.h | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/include/configs/am62x_evm.h b/include/configs/am62x_evm.h
index 7bf07809b05..d07da4ebae4 100644
--- a/include/configs/am62x_evm.h
+++ b/include/configs/am62x_evm.h
@@ -11,6 +11,7 @@
#include <config_distro_bootcmd.h>
#include <environment/ti/mmc.h>
+#include <environment/ti/k3_dfu.h>
/* DDR Configuration */
#define CFG_SYS_SDRAM_BASE1 0x880000000
@@ -38,9 +39,16 @@
DISTRO_BOOT_DEV_PXE(func) \
DISTRO_BOOT_DEV_DHCP(func)
+#define EXTRA_ENV_DFUARGS \
+ DFU_ALT_INFO_MMC \
+ DFU_ALT_INFO_EMMC \
+ DFU_ALT_INFO_RAM \
+ DFU_ALT_INFO_OSPI
+
/* Incorporate settings into the U-Boot environment */
#define CFG_EXTRA_ENV_SETTINGS \
- BOOTENV
+ BOOTENV \
+ EXTRA_ENV_DFUARGS
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>
--
2.40.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 7/8] arm: dts: k3-am625-sk: Enable usb ports in u-boot
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
` (5 preceding siblings ...)
2023-04-06 18:55 ` [PATCH v2 6/8] configs: am62: Add configs for enabling USB in U-Boot Sjoerd Simons
@ 2023-04-06 18:55 ` Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 8/8] configs: am62x_evm_*: Enable USB and DFU support Sjoerd Simons
` (3 subsequent siblings)
10 siblings, 0 replies; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot
Cc: Aswath Govindraju, Dhruva Gole, Georgi Vlaev, Nishanth Menon,
Simon Glass, Tom Rini
Enable both usb0 as a peripheral for use with DFU and
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
---
Changes in v2:
- Only enable usb port 0 DFU in SPL
arch/arm/dts/k3-am625-sk-u-boot.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
index 5f90a4b56f1..2746451572d 100644
--- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
@@ -154,3 +154,14 @@
&cpsw_port2 {
status = "disabled";
};
+
+&usbss0 {
+ bootph-pre-ram;
+};
+
+&usb0 {
+ dr_mode = "peripheral";
+ /* Since role switching is not supported in U-Boot */
+ /delete-property/ extcon;
+ bootph-pre-ram;
+};
--
2.40.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v2 8/8] configs: am62x_evm_*: Enable USB and DFU support
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
` (6 preceding siblings ...)
2023-04-06 18:55 ` [PATCH v2 7/8] arm: dts: k3-am625-sk: Enable usb ports in u-boot Sjoerd Simons
@ 2023-04-06 18:55 ` Sjoerd Simons
2023-06-08 21:41 ` Marcel Ziswiler
2023-04-11 5:51 ` [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Ravi Gunasekaran
` (2 subsequent siblings)
10 siblings, 1 reply; 24+ messages in thread
From: Sjoerd Simons @ 2023-04-06 18:55 UTC (permalink / raw)
To: u-boot
Cc: Aswath Govindraju, Dave Gerlach, Dhruva Gole, Georgi Vlaev,
Julien Panis, Kamlesh Gurudasani
Enable USB host as well as USB gadget and DFU support for a53; For the
r5 due to the smaller available size create a new config just for
DFU support
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
---
Changes in v2:
- Create a seperate defconfig for R5
configs/am62x_evm_a53_defconfig | 35 +++++++-
configs/am62x_evm_r5_usbdfu_defconfig | 116 ++++++++++++++++++++++++++
2 files changed, 148 insertions(+), 3 deletions(-)
create mode 100644 configs/am62x_evm_r5_usbdfu_defconfig
diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig
index cc9c8eab3e3..7dbf2f54050 100644
--- a/configs/am62x_evm_a53_defconfig
+++ b/configs/am62x_evm_a53_defconfig
@@ -1,5 +1,6 @@
CONFIG_ARM=y
CONFIG_ARCH_K3=y
+CONFIG_SYS_MALLOC_LEN=0x2000000
CONFIG_SYS_MALLOC_F_LEN=0x8000
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
@@ -9,9 +10,11 @@ CONFIG_K3_ATF_LOAD_ADDR=0x9e780000
CONFIG_TARGET_AM625_A53_EVM=y
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80480000
+CONFIG_SF_DEFAULT_SPEED=25000000
CONFIG_SPL_DM_SPI=y
CONFIG_DEFAULT_DEVICE_TREE="k3-am625-sk"
CONFIG_SPL_TEXT_BASE=0x80080000
+CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_DM_RESET=y
CONFIG_SPL_MMC=y
CONFIG_SPL_SERIAL=y
@@ -33,17 +36,23 @@ CONFIG_SPL_SYS_MALLOC_SIMPLE=y
CONFIG_SPL_STACK_R=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1400
+CONFIG_SPL_ENV_SUPPORT=y
CONFIG_SPL_FS_LOAD_PAYLOAD_NAME="u-boot.img"
CONFIG_SPL_DM_MAILBOX=y
CONFIG_SPL_DM_SPI_FLASH=y
CONFIG_SPL_POWER_DOMAIN=y
+CONFIG_SPL_RAM_SUPPORT=y
+CONFIG_SPL_RAM_DEVICE=y
# CONFIG_SPL_SPI_FLASH_TINY is not set
CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x280000
+CONFIG_SPL_USB_GADGET=y
+CONFIG_SPL_DFU=y
CONFIG_SPL_YMODEM_SUPPORT=y
-CONFIG_SYS_BOOTM_LEN=0x800000
+CONFIG_CMD_DFU=y
CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
CONFIG_OF_CONTROL=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_MULTI_DTB_FIT=y
@@ -54,10 +63,17 @@ CONFIG_SPL_DM=y
CONFIG_SPL_DM_SEQ_ALIAS=y
CONFIG_REGMAP=y
CONFIG_SPL_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_SPL_SYSCON=y
CONFIG_SPL_OF_TRANSLATE=y
CONFIG_CLK=y
CONFIG_SPL_CLK=y
CONFIG_CLK_TI_SCI=y
+CONFIG_DFU_MMC=y
+CONFIG_DFU_RAM=y
+CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
CONFIG_DMA_CHANNELS=y
CONFIG_TI_K3_NAVSS_UDMA=y
CONFIG_TI_SCI_PROTOCOL=y
@@ -68,7 +84,6 @@ CONFIG_MMC_SDHCI_ADMA=y
CONFIG_SPL_MMC_SDHCI_ADMA=y
CONFIG_MMC_SDHCI_AM654=y
CONFIG_DM_SPI_FLASH=y
-CONFIG_SF_DEFAULT_SPEED=25000000
CONFIG_SPI_FLASH_SFDP_SUPPORT=y
CONFIG_SPI_FLASH_SOFT_RESET=y
CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
@@ -96,5 +111,19 @@ CONFIG_CADENCE_QSPI=y
CONFIG_SYSRESET=y
CONFIG_SPL_SYSRESET=y
CONFIG_SYSRESET_TI_SCI=y
+CONFIG_USB=y
+CONFIG_DM_USB_GADGET=y
+CONFIG_SPL_DM_USB_GADGET=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_SPL_USB_DWC3_GENERIC=y
+CONFIG_SPL_USB_DWC3_AM62=y
+CONFIG_USB_DWC3_AM62=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
+CONFIG_USB_GADGET_VENDOR_NUM=0x0451
+CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
+CONFIG_USB_GADGET_DOWNLOAD=y
CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
-CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/am62x_evm_r5_usbdfu_defconfig b/configs/am62x_evm_r5_usbdfu_defconfig
new file mode 100644
index 00000000000..00a0821b6df
--- /dev/null
+++ b/configs/am62x_evm_r5_usbdfu_defconfig
@@ -0,0 +1,116 @@
+CONFIG_ARM=y
+CONFIG_ARCH_K3=y
+CONFIG_SYS_MALLOC_LEN=0x08000000
+CONFIG_SYS_MALLOC_F_LEN=0x9000
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_SOC_K3_AM625=y
+CONFIG_TARGET_AM625_R5_EVM=y
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x43c3a7f0
+CONFIG_ENV_SIZE=0x20000
+CONFIG_DM_GPIO=y
+CONFIG_DEFAULT_DEVICE_TREE="k3-am625-r5-sk"
+CONFIG_SPL_TEXT_BASE=0x43c00000
+CONFIG_DM_RESET=y
+CONFIG_SPL_SERIAL=y
+CONFIG_SPL_DRIVERS_MISC=y
+CONFIG_SPL_STACK_R_ADDR=0x82000000
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x7000
+CONFIG_SPL_SIZE_LIMIT=0x3A7F0
+CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK=0x3500
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_LOAD_FIT_ADDRESS=0x80080000
+CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_SPL_SIZE_LIMIT_SUBTRACT_GD=y
+CONFIG_SPL_SIZE_LIMIT_SUBTRACT_MALLOC=y
+CONFIG_SPL_MAX_SIZE=0x3B000
+CONFIG_SPL_PAD_TO=0x0
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0x43c3b000
+CONFIG_SPL_BSS_MAX_SIZE=0x3000
+CONFIG_SPL_SYS_REPORT_STACK_F_USAGE=y
+CONFIG_SPL_SYS_MALLOC_SIMPLE=y
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_SEPARATE_BSS=y
+CONFIG_SYS_SPL_MALLOC=y
+CONFIG_HAS_CUSTOM_SPL_MALLOC_START=y
+CONFIG_CUSTOM_SYS_SPL_MALLOC_ADDR=0x84000000
+CONFIG_SYS_SPL_MALLOC_SIZE=0x1000000
+CONFIG_SPL_EARLY_BSS=y
+CONFIG_SPL_ENV_SUPPORT=y
+CONFIG_SPL_DM_MAILBOX=y
+CONFIG_SPL_DM_RESET=y
+CONFIG_SPL_POWER_DOMAIN=y
+CONFIG_SPL_RAM_SUPPORT=y
+CONFIG_SPL_RAM_DEVICE=y
+CONFIG_SPL_REMOTEPROC=y
+CONFIG_SPL_USB_GADGET=y
+CONFIG_SPL_DFU=y
+CONFIG_SPL_YMODEM_SUPPORT=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_DFU=y
+CONFIG_CMD_REMOTEPROC=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_TIME=y
+CONFIG_OF_CONTROL=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_SPL_MULTI_DTB_FIT=y
+CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_SPL_DM=y
+CONFIG_SPL_DM_SEQ_ALIAS=y
+CONFIG_REGMAP=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_SPL_SYSCON=y
+CONFIG_SPL_OF_TRANSLATE=y
+CONFIG_CLK=y
+CONFIG_SPL_CLK=y
+CONFIG_SPL_CLK_CCF=y
+CONFIG_SPL_CLK_K3_PLL=y
+CONFIG_SPL_CLK_K3=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
+CONFIG_TI_SCI_PROTOCOL=y
+CONFIG_DA8XX_GPIO=y
+CONFIG_DM_MAILBOX=y
+CONFIG_K3_SEC_PROXY=y
+CONFIG_MISC=y
+CONFIG_ESM_K3=y
+CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_GENERIC is not set
+CONFIG_SPL_PINCTRL=y
+# CONFIG_SPL_PINCTRL_GENERIC is not set
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_TI_POWER_DOMAIN=y
+CONFIG_K3_SYSTEM_CONTROLLER=y
+CONFIG_REMOTEPROC_TI_K3_ARM64=y
+CONFIG_RESET_TI_SCI=y
+CONFIG_SPECIFY_CONSOLE_INDEX=y
+CONFIG_DM_SERIAL=y
+CONFIG_SOC_DEVICE=y
+CONFIG_SOC_DEVICE_TI_K3=y
+CONFIG_SOC_TI=y
+CONFIG_TIMER=y
+CONFIG_SPL_TIMER=y
+CONFIG_OMAP_TIMER=y
+CONFIG_USB=y
+CONFIG_DM_USB_GADGET=y
+CONFIG_SPL_DM_USB_GADGET=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_SPL_USB_DWC3_GENERIC=y
+CONFIG_SPL_USB_DWC3_AM62=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
+CONFIG_USB_GADGET_VENDOR_NUM=0x0451
+CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_LIB_RATIONAL=y
+CONFIG_SPL_LIB_RATIONAL=y
--
2.40.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v2 5/8] usb: dwc3: Add dwc3 glue driver for am62
2023-04-06 18:55 ` [PATCH v2 5/8] usb: dwc3: Add dwc3 glue driver for am62 Sjoerd Simons
@ 2023-04-07 13:26 ` Mattijs Korpershoek
2023-04-24 2:25 ` Kunihiko Hayashi
1 sibling, 0 replies; 24+ messages in thread
From: Mattijs Korpershoek @ 2023-04-07 13:26 UTC (permalink / raw)
To: Sjoerd Simons, u-boot; +Cc: Angus Ainslie, Kunihiko Hayashi, Marek Vasut
On jeu., avril 06, 2023 at 20:55, Sjoerd Simons <sjoerd@collabora.com> wrote:
> Add glue code for TI AM62 to the dwc3 driver; Most code adopted from
> TI vendor u-boot code.
>
> Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
nitpick (comment typo) below
>
> ---
>
> Changes in v2:
> - Switch dwc3 glue to a seperate driver rather then in dwc-generic
>
> drivers/usb/dwc3/Kconfig | 14 ++++
> drivers/usb/dwc3/Makefile | 1 +
> drivers/usb/dwc3/dwc3-am62.c | 127 +++++++++++++++++++++++++++++++++++
> 3 files changed, 142 insertions(+)
> create mode 100644 drivers/usb/dwc3/dwc3-am62.c
>
> diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
> index c0c8c16fd9c..26a1e1770c5 100644
> --- a/drivers/usb/dwc3/Kconfig
> +++ b/drivers/usb/dwc3/Kconfig
> @@ -37,6 +37,20 @@ config SPL_USB_DWC3_GENERIC
> Select this for Xilinx ZynqMP and similar Platforms.
> This wrapper supports Host and Peripheral operation modes.
>
> +config SPL_USB_DWC3_AM62
> + bool "TI AM62 USB wrapper"
> + depends on SPL_DM_USB && SPL_USB_DWC3_GENERIC
> + help
> + Select this for TI AM62 Platforms.
> + This wrapper supports Host and Peripheral operation modes.
> +
> +config USB_DWC3_AM62
> + bool "TI AM62 USB wrapper"
> + depends on DM_USB && USB_DWC3_GENERIC
> + help
> + Select this for TI AM62 Platforms.
> + This wrapper supports Host and Peripheral operation modes.
> +
> config USB_DWC3_MESON_G12A
> bool "Amlogic Meson G12A USB wrapper"
> depends on DM_USB && USB_DWC3 && ARCH_MESON
> diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile
> index 97b4f7191ca..a46b6824ab7 100644
> --- a/drivers/usb/dwc3/Makefile
> +++ b/drivers/usb/dwc3/Makefile
> @@ -6,6 +6,7 @@ dwc3-y := core.o
>
> obj-$(CONFIG_USB_DWC3_GADGET) += gadget.o ep0.o
>
> +obj-$(CONFIG_$(SPL_)USB_DWC3_AM62) += dwc3-am62.o
> obj-$(CONFIG_USB_DWC3_OMAP) += dwc3-omap.o
> obj-$(CONFIG_USB_DWC3_MESON_G12A) += dwc3-meson-g12a.o
> obj-$(CONFIG_USB_DWC3_MESON_GXL) += dwc3-meson-gxl.o
> diff --git a/drivers/usb/dwc3/dwc3-am62.c b/drivers/usb/dwc3/dwc3-am62.c
> new file mode 100644
> index 00000000000..20d99758b4f
> --- /dev/null
> +++ b/drivers/usb/dwc3/dwc3-am62.c
> @@ -0,0 +1,127 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * TI AM62 specific glue layer for DWC3
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <dm/device_compat.h>
> +#include <regmap.h>
> +#include <syscon.h>
> +#include <asm/io.h>
> +
> +#include "dwc3-generic.h"
> +
> +void dwc3_ti_am62_glue_configure(struct udevice *dev, int index,
> + enum usb_dr_mode mode)
> +{
> +#define USBSS_MODE_CONTROL 0x1c
> +#define USBSS_PHY_CONFIG 0x8
> +#define USBSS_PHY_VBUS_SEL_MASK GENMASK(2, 1)
> +#define USBSS_PHY_VBUS_SEL_SHIFT 1
> +#define USBSS_MODE_VALID BIT(0)
> +#define PHY_PLL_REFCLK_MASK GENMASK(3, 0)
> +static const int dwc3_ti_am62_rate_table[] = { /* in KHZ */
> + 9600,
> + 10000,
> + 12000,
> + 19200,
> + 20000,
> + 24000,
> + 25000,
> + 26000,
> + 38400,
> + 40000,
> + 58000,
> + 50000,
> + 52000,
> +};
> +
> + struct clk usb2_refclk;
> + int rate_code, i, ret;
> + unsigned long rate;
> + u32 reg;
> + void *usbss;
> + bool vbus_divider;
> + struct regmap *syscon;
> + struct ofnode_phandle_args args;
> +
> + usbss = dev_remap_addr_index(dev, 0);
> + if (IS_ERR(usbss)) {
> + dev_err(dev, "can't map IOMEM resource\n");
> + return;
> + }
> +
> + ret = clk_get_by_name(dev, "ref", &usb2_refclk);
> + if (ret) {
> + dev_err(dev, "can't get usb2_refclk\n");
> + return;
> + }
> +
> + /* Calcuate the rate code */
s/Calcuate/Calculate
> + rate = clk_get_rate(&usb2_refclk);
> + rate /= 1000; /* To KHz */
> + for (i = 0; i < ARRAY_SIZE(dwc3_ti_am62_rate_table); i++) {
> + if (dwc3_ti_am62_rate_table[i] == rate)
> + break;
> + }
> +
> + if (i == ARRAY_SIZE(dwc3_ti_am62_rate_table)) {
> + dev_err(dev, "unsupported usb2_refclk rate: %lu KHz\n", rate);
> + return;
> + }
> +
> + rate_code = i;
> +
> + /* Read the syscon property */
> + syscon = syscon_regmap_lookup_by_phandle(dev, "ti,syscon-phy-pll-refclk");
> + if (IS_ERR(syscon)) {
> + dev_err(dev, "unable to get ti,syscon-phy-pll-refclk regmap\n");
> + return;
> + }
> +
> + ret = ofnode_parse_phandle_with_args(dev_ofnode(dev), "ti,syscon-phy-pll-refclk", NULL, 1,
> + 0, &args);
> + if (ret)
> + return;
> +
> + /* Program PHY PLL refclk by reading syscon property */
> + ret = regmap_update_bits(syscon, args.args[0], PHY_PLL_REFCLK_MASK, rate_code);
> + if (ret) {
> + dev_err(dev, "failed to set phy pll reference clock rate\n");
> + return;
> + }
> +
> + /* VBUS divider select */
> + reg = readl(usbss + USBSS_PHY_CONFIG);
> + vbus_divider = dev_read_bool(dev, "ti,vbus-divider");
> + if (vbus_divider)
> + reg |= 1 << USBSS_PHY_VBUS_SEL_SHIFT;
> +
> + writel(reg, usbss + USBSS_PHY_CONFIG);
> +
> + /* Set mode valid */
> + reg = readl(usbss + USBSS_MODE_CONTROL);
> + reg |= USBSS_MODE_VALID;
> + writel(reg, usbss + USBSS_MODE_CONTROL);
> +}
> +
> +struct dwc3_glue_ops ti_am62_ops = {
> + .glue_configure = dwc3_ti_am62_glue_configure,
> +};
> +
> +static const struct udevice_id dwc3_am62_match[] = {
> + { .compatible = "ti,am62-usb", .data = (ulong)&ti_am62_ops },
> + { /* sentinel */ }
> +};
> +
> +U_BOOT_DRIVER(dwc3_am62_wrapper) = {
> + .name = "dwc3-am62",
> + .id = UCLASS_SIMPLE_BUS,
> + .of_match = dwc3_am62_match,
> + .bind = dwc3_glue_bind,
> + .probe = dwc3_glue_probe,
> + .remove = dwc3_glue_remove,
> + .plat_auto = sizeof(struct dwc3_glue_data),
> +
> +};
> --
> 2.40.0
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
` (7 preceding siblings ...)
2023-04-06 18:55 ` [PATCH v2 8/8] configs: am62x_evm_*: Enable USB and DFU support Sjoerd Simons
@ 2023-04-11 5:51 ` Ravi Gunasekaran
2023-05-10 7:59 ` Mattijs Korpershoek
2023-05-31 21:14 ` Tom Rini
10 siblings, 0 replies; 24+ messages in thread
From: Ravi Gunasekaran @ 2023-04-11 5:51 UTC (permalink / raw)
To: Sjoerd Simons, u-boot
Cc: Angus Ainslie, Aswath Govindraju, Dave Gerlach, Dhruva Gole,
Georgi Vlaev, Gowtham Tammana, Julien Panis, Kamlesh Gurudasani,
Kunihiko Hayashi, Marek Vasut, Mattijs Korpershoek,
Nishanth Menon, Simon Glass, Suman Anna, Tom Rini,
Vignesh Raghavendra, Bajjuri, Praneeth
On 07/04/23 12:25 am, Sjoerd Simons wrote:
> This series adds more boot sources for the TI am62x. For that the dts'
> are synced from the upstream ti-next git tree (to add usb nodes), some
> dwc3 glue is and finally the default configuration is tuned to add
> support for DFU and USB (host and gadget)
>
>
> Changes in v2:
> - Update dts sync to v6.3-rc5
> - Switch dwc3 glue to a seperate driver rather then in dwc-generic
> - Minimize config changes to just DFU configuration
> - Only enable usb port 0 DFU in SPL
> - Create a seperate defconfig for R5
>
> Sjoerd Simons (8):
> omap: timer: add ti,am654-timer compatibility
> arm: mach-k3: am62: Add timer0 id to the dev list
> arm: dts: k3-am62: Bump dtsi from linux
> arm: dts: k3-am625-sk: Enable emmc in SPL
> usb: dwc3: Add dwc3 glue driver for am62
> configs: am62: Add configs for enabling USB in U-Boot
> arm: dts: k3-am625-sk: Enable usb ports in u-boot
> configs: am62x_evm_*: Enable USB and DFU support
>
> arch/arm/dts/k3-am62-main.dtsi | 259 +++++++++++++++++++++++---
> arch/arm/dts/k3-am62-mcu.dtsi | 49 +++++
> arch/arm/dts/k3-am62-wakeup.dtsi | 4 +-
> arch/arm/dts/k3-am625-r5-sk.dts | 2 +-
> arch/arm/dts/k3-am625-sk-u-boot.dtsi | 27 ++-
> arch/arm/dts/k3-am625-sk.dts | 95 +++++-----
> arch/arm/dts/k3-am625.dtsi | 52 ++++++
> arch/arm/mach-k3/am62x/dev-data.c | 1 +
> configs/am62x_evm_a53_defconfig | 35 +++-
> configs/am62x_evm_r5_usbdfu_defconfig | 116 ++++++++++++
> drivers/timer/omap-timer.c | 1 +
> drivers/usb/dwc3/Kconfig | 14 ++
> drivers/usb/dwc3/Makefile | 1 +
> drivers/usb/dwc3/dwc3-am62.c | 127 +++++++++++++
> include/configs/am62x_evm.h | 10 +-
> 15 files changed, 701 insertions(+), 92 deletions(-)
> create mode 100644 configs/am62x_evm_r5_usbdfu_defconfig
> create mode 100644 drivers/usb/dwc3/dwc3-am62.c
I tested USB DFU boot on AM62 and it works fine.
Tested-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
--
Regards,
Ravi
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 3/8] arm: dts: k3-am62: Bump dtsi from linux
2023-04-06 18:55 ` [PATCH v2 3/8] arm: dts: k3-am62: Bump dtsi from linux Sjoerd Simons
@ 2023-04-11 14:17 ` Nishanth Menon
0 siblings, 0 replies; 24+ messages in thread
From: Nishanth Menon @ 2023-04-11 14:17 UTC (permalink / raw)
To: Sjoerd Simons
Cc: u-boot, Aswath Govindraju, Dave Gerlach, Dhruva Gole,
Georgi Vlaev, Gowtham Tammana, Julien Panis, Simon Glass,
Suman Anna, Tom Rini, Vignesh Raghavendra
On 20:55-20230406, Sjoerd Simons wrote:
> Update the am62 and am625 device-trees from linux v6.3-rc5 This needed the following
> tweaks to the u-boot specific dtsi as well:
> - Switch tick-timer to the main_timer as it's now defined in the main dtsi
> - Add mdio pins to the cpsw3g pinctrl. It moved to a subnode in the
> linux dtsi that u-boot doesn't use/support
>
> Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
>
> ---
>
> Changes in v2:
> - Update dts sync to v6.3-rc5
Reviewed-by: Nishanth Menon <nm@ti.com>
Note to self: I think we should probably refactor r5-sk.dtsi to make the
common pieces to be included from a common soc-r5.dtsi.
>
> arch/arm/dts/k3-am62-main.dtsi | 259 ++++++++++++++++++++++++---
> arch/arm/dts/k3-am62-mcu.dtsi | 49 +++++
> arch/arm/dts/k3-am62-wakeup.dtsi | 4 +-
> arch/arm/dts/k3-am625-r5-sk.dts | 2 +-
> arch/arm/dts/k3-am625-sk-u-boot.dtsi | 8 +-
> arch/arm/dts/k3-am625-sk.dts | 95 +++++-----
> arch/arm/dts/k3-am625.dtsi | 52 ++++++
> 7 files changed, 381 insertions(+), 88 deletions(-)
>
> diff --git a/arch/arm/dts/k3-am62-main.dtsi b/arch/arm/dts/k3-am62-main.dtsi
> index 4a42f1b2e31..ea683fd77d6 100644
> --- a/arch/arm/dts/k3-am62-main.dtsi
> +++ b/arch/arm/dts/k3-am62-main.dtsi
> @@ -54,6 +54,12 @@
> reg = <0x4044 0x8>;
> #phy-cells = <1>;
> };
> +
> + epwm_tbclk: clock@4130 {
> + compatible = "ti,am62-epwm-tbclk", "syscon";
> + reg = <0x4130 0x4>;
> + #clock-cells = <1>;
> + };
> };
>
> dmss: bus@48000000 {
> @@ -144,8 +150,8 @@
> compatible = "ti,k2g-sci";
> ti,host-id = <12>;
> mbox-names = "rx", "tx";
> - mboxes= <&secure_proxy_main 12>,
> - <&secure_proxy_main 13>;
> + mboxes = <&secure_proxy_main 12>,
> + <&secure_proxy_main 13>;
> reg-names = "debug_messages";
> reg = <0x00 0x44043000 0x00 0xfe0>;
>
> @@ -186,6 +192,102 @@
> pinctrl-single,function-mask = <0xffffffff>;
> };
>
> + main_timer0: timer@2400000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x2400000 0x00 0x400>;
> + interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 36 2>;
> + clock-names = "fck";
> + assigned-clocks = <&k3_clks 36 2>;
> + assigned-clock-parents = <&k3_clks 36 3>;
> + power-domains = <&k3_pds 36 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + };
> +
> + main_timer1: timer@2410000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x2410000 0x00 0x400>;
> + interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 37 2>;
> + clock-names = "fck";
> + assigned-clocks = <&k3_clks 37 2>;
> + assigned-clock-parents = <&k3_clks 37 3>;
> + power-domains = <&k3_pds 37 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + };
> +
> + main_timer2: timer@2420000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x2420000 0x00 0x400>;
> + interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 38 2>;
> + clock-names = "fck";
> + assigned-clocks = <&k3_clks 38 2>;
> + assigned-clock-parents = <&k3_clks 38 3>;
> + power-domains = <&k3_pds 38 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + };
> +
> + main_timer3: timer@2430000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x2430000 0x00 0x400>;
> + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 39 2>;
> + clock-names = "fck";
> + assigned-clocks = <&k3_clks 39 2>;
> + assigned-clock-parents = <&k3_clks 39 3>;
> + power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + };
> +
> + main_timer4: timer@2440000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x2440000 0x00 0x400>;
> + interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 40 2>;
> + clock-names = "fck";
> + assigned-clocks = <&k3_clks 40 2>;
> + assigned-clock-parents = <&k3_clks 40 3>;
> + power-domains = <&k3_pds 40 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + };
> +
> + main_timer5: timer@2450000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x2450000 0x00 0x400>;
> + interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 41 2>;
> + clock-names = "fck";
> + assigned-clocks = <&k3_clks 41 2>;
> + assigned-clock-parents = <&k3_clks 41 3>;
> + power-domains = <&k3_pds 41 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + };
> +
> + main_timer6: timer@2460000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x2460000 0x00 0x400>;
> + interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 42 2>;
> + clock-names = "fck";
> + assigned-clocks = <&k3_clks 42 2>;
> + assigned-clock-parents = <&k3_clks 42 3>;
> + power-domains = <&k3_pds 42 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + };
> +
> + main_timer7: timer@2470000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x2470000 0x00 0x400>;
> + interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 43 2>;
> + clock-names = "fck";
> + assigned-clocks = <&k3_clks 43 2>;
> + assigned-clock-parents = <&k3_clks 43 3>;
> + power-domains = <&k3_pds 43 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + };
> +
> main_uart0: serial@2800000 {
> compatible = "ti,am64-uart", "ti,am654-uart";
> reg = <0x00 0x02800000 0x00 0x100>;
> @@ -193,6 +295,7 @@
> power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 146 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> main_uart1: serial@2810000 {
> @@ -202,6 +305,7 @@
> power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 152 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> main_uart2: serial@2820000 {
> @@ -211,6 +315,7 @@
> power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 153 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> main_uart3: serial@2830000 {
> @@ -220,6 +325,7 @@
> power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 154 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> main_uart4: serial@2840000 {
> @@ -229,6 +335,7 @@
> power-domains = <&k3_pds 155 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 155 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> main_uart5: serial@2850000 {
> @@ -238,6 +345,7 @@
> power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 156 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> main_uart6: serial@2860000 {
> @@ -247,6 +355,7 @@
> power-domains = <&k3_pds 158 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 158 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> main_i2c0: i2c@20000000 {
> @@ -258,6 +367,7 @@
> power-domains = <&k3_pds 102 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 102 2>;
> clock-names = "fck";
> + status = "disabled";
> };
>
> main_i2c1: i2c@20010000 {
> @@ -269,6 +379,7 @@
> power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 103 2>;
> clock-names = "fck";
> + status = "disabled";
> };
>
> main_i2c2: i2c@20020000 {
> @@ -280,6 +391,7 @@
> power-domains = <&k3_pds 104 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 104 2>;
> clock-names = "fck";
> + status = "disabled";
> };
>
> main_i2c3: i2c@20030000 {
> @@ -291,6 +403,7 @@
> power-domains = <&k3_pds 105 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 105 2>;
> clock-names = "fck";
> + status = "disabled";
> };
>
> main_spi0: spi@20100000 {
> @@ -300,7 +413,8 @@
> #address-cells = <1>;
> #size-cells = <0>;
> power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>;
> - clocks = <&k3_clks 172 0>;
> + clocks = <&k3_clks 141 0>;
> + status = "disabled";
> };
>
> main_spi1: spi@20110000 {
> @@ -310,7 +424,8 @@
> #address-cells = <1>;
> #size-cells = <0>;
> power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>;
> - clocks = <&k3_clks 173 0>;
> + clocks = <&k3_clks 142 0>;
> + status = "disabled";
> };
>
> main_spi2: spi@20120000 {
> @@ -320,7 +435,8 @@
> #address-cells = <1>;
> #size-cells = <0>;
> power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>;
> - clocks = <&k3_clks 174 0>;
> + clocks = <&k3_clks 143 0>;
> + status = "disabled";
> };
>
> main_gpio_intr: interrupt-controller@a00000 {
> @@ -385,8 +501,11 @@
> 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";
> };
>
> sdhci1: mmc@fa00000 {
> @@ -397,19 +516,20 @@
> 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";
> };
>
> sdhci2: mmc@fa20000 {
> @@ -420,18 +540,65 @@
> 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";
> + };
> +
> + 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 {
> @@ -456,6 +623,7 @@
> power-domains = <&k3_pds 75 TI_SCI_PD_EXCLUSIVE>;
> #address-cells = <1>;
> #size-cells = <0>;
> + status = "disabled";
> };
> };
>
> @@ -514,12 +682,13 @@
> clocks = <&k3_clks 13 0>;
> clock-names = "fck";
> bus_freq = <1000000>;
> + status = "disabled";
> };
>
> cpts@3d000 {
> compatible = "ti,j721e-cpts";
> reg = <0x00 0x3d000 0x00 0x400>;
> - clocks = <&k3_clks 13 1>;
> + clocks = <&k3_clks 13 3>;
> clock-names = "cpts";
> interrupts-extended = <&gic500 GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
> interrupt-names = "cpts";
> @@ -551,6 +720,7 @@
> power-domains = <&k3_pds 51 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 51 0>;
> clock-names = "fck";
> + status = "disabled";
> };
>
> ecap1: pwm@23110000 {
> @@ -560,6 +730,7 @@
> power-domains = <&k3_pds 52 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 52 0>;
> clock-names = "fck";
> + status = "disabled";
> };
>
> ecap2: pwm@23120000 {
> @@ -569,6 +740,7 @@
> power-domains = <&k3_pds 53 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 53 0>;
> clock-names = "fck";
> + status = "disabled";
> };
>
> main_mcan0: can@20701000 {
> @@ -583,5 +755,36 @@
> <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
> interrupt-names = "int0", "int1";
> bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
> + status = "disabled";
> + };
> +
> + epwm0: pwm@23000000 {
> + compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
> + #pwm-cells = <3>;
> + reg = <0x00 0x23000000 0x00 0x100>;
> + power-domains = <&k3_pds 86 TI_SCI_PD_EXCLUSIVE>;
> + clocks = <&epwm_tbclk 0>, <&k3_clks 86 0>;
> + clock-names = "tbclk", "fck";
> + status = "disabled";
> + };
> +
> + epwm1: pwm@23010000 {
> + compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
> + #pwm-cells = <3>;
> + reg = <0x00 0x23010000 0x00 0x100>;
> + power-domains = <&k3_pds 87 TI_SCI_PD_EXCLUSIVE>;
> + clocks = <&epwm_tbclk 1>, <&k3_clks 87 0>;
> + clock-names = "tbclk", "fck";
> + status = "disabled";
> + };
> +
> + epwm2: pwm@23020000 {
> + compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
> + #pwm-cells = <3>;
> + reg = <0x00 0x23020000 0x00 0x100>;
> + power-domains = <&k3_pds 88 TI_SCI_PD_EXCLUSIVE>;
> + clocks = <&epwm_tbclk 2>, <&k3_clks 88 0>;
> + clock-names = "tbclk", "fck";
> + status = "disabled";
> };
> };
> diff --git a/arch/arm/dts/k3-am62-mcu.dtsi b/arch/arm/dts/k3-am62-mcu.dtsi
> index f56c803560f..a427231527c 100644
> --- a/arch/arm/dts/k3-am62-mcu.dtsi
> +++ b/arch/arm/dts/k3-am62-mcu.dtsi
> @@ -14,6 +14,51 @@
> pinctrl-single,function-mask = <0xffffffff>;
> };
>
> + /*
> + * The MCU domain timer interrupts are routed only to the ESM module,
> + * and not currently available for Linux. The MCU domain timers are
> + * of limited use without interrupts, and likely reserved by the ESM.
> + */
> + mcu_timer0: timer@4800000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x4800000 0x00 0x400>;
> + clocks = <&k3_clks 35 2>;
> + clock-names = "fck";
> + power-domains = <&k3_pds 35 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + status = "reserved";
> + };
> +
> + mcu_timer1: timer@4810000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x4810000 0x00 0x400>;
> + clocks = <&k3_clks 48 2>;
> + clock-names = "fck";
> + power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + status = "reserved";
> + };
> +
> + mcu_timer2: timer@4820000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x4820000 0x00 0x400>;
> + clocks = <&k3_clks 49 2>;
> + clock-names = "fck";
> + power-domains = <&k3_pds 49 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + status = "reserved";
> + };
> +
> + mcu_timer3: timer@4830000 {
> + compatible = "ti,am654-timer";
> + reg = <0x00 0x4830000 0x00 0x400>;
> + clocks = <&k3_clks 50 2>;
> + clock-names = "fck";
> + power-domains = <&k3_pds 50 TI_SCI_PD_EXCLUSIVE>;
> + ti,timer-pwm;
> + status = "reserved";
> + };
> +
> mcu_uart0: serial@4a00000 {
> compatible = "ti,am64-uart", "ti,am654-uart";
> reg = <0x00 0x04a00000 0x00 0x100>;
> @@ -21,6 +66,7 @@
> power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 149 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> mcu_i2c0: i2c@4900000 {
> @@ -32,6 +78,7 @@
> power-domains = <&k3_pds 106 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 106 2>;
> clock-names = "fck";
> + status = "disabled";
> };
>
> mcu_spi0: spi@4b00000 {
> @@ -42,6 +89,7 @@
> #size-cells = <0>;
> power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 147 0>;
> + status = "disabled";
> };
>
> mcu_spi1: spi@4b10000 {
> @@ -52,6 +100,7 @@
> #size-cells = <0>;
> power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 148 0>;
> + status = "disabled";
> };
>
> mcu_gpio_intr: interrupt-controller@4210000 {
> diff --git a/arch/arm/dts/k3-am62-wakeup.dtsi b/arch/arm/dts/k3-am62-wakeup.dtsi
> index 4090134676c..38dced6b4fe 100644
> --- a/arch/arm/dts/k3-am62-wakeup.dtsi
> +++ b/arch/arm/dts/k3-am62-wakeup.dtsi
> @@ -26,16 +26,18 @@
> power-domains = <&k3_pds 114 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 114 0>;
> clock-names = "fclk";
> + status = "disabled";
> };
>
> wkup_i2c0: i2c@2b200000 {
> compatible = "ti,am64-i2c", "ti,omap4-i2c";
> - reg = <0x00 0x02b200000 0x00 0x100>;
> + reg = <0x00 0x2b200000 0x00 0x100>;
> interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
> #address-cells = <1>;
> #size-cells = <0>;
> power-domains = <&k3_pds 107 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 107 4>;
> clock-names = "fck";
> + status = "disabled";
> };
> };
> diff --git a/arch/arm/dts/k3-am625-r5-sk.dts b/arch/arm/dts/k3-am625-r5-sk.dts
> index dad46704a2d..59ce1a1d70e 100644
> --- a/arch/arm/dts/k3-am625-r5-sk.dts
> +++ b/arch/arm/dts/k3-am625-r5-sk.dts
> @@ -20,7 +20,7 @@
>
> chosen {
> stdout-path = "serial2:115200n8";
> - tick-timer = &timer1;
> + tick-timer = &main_timer0;
> };
>
> memory@80000000 {
> diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> index 249155733a2..0def84b4cf0 100644
> --- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> +++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> @@ -7,7 +7,7 @@
> / {
> chosen {
> stdout-path = "serial2:115200n8";
> - tick-timer = &timer1;
> + tick-timer = &main_timer0;
> };
>
> aliases {
> @@ -22,10 +22,7 @@
> &cbass_main{
> bootph-pre-ram;
>
> - timer1: timer@2400000 {
> - compatible = "ti,omap5430-timer";
> - reg = <0x00 0x2400000 0x00 0x80>;
> - ti,timer-alwon;
> + timer@2400000 {
> clock-frequency = <25000000>;
> bootph-pre-ram;
> };
> @@ -133,6 +130,7 @@
> reg-names = "cpsw_nuss", "mac_efuse";
> /delete-property/ ranges;
> bootph-pre-ram;
> + pinctrl-0 = <&main_mdio1_pins_default &main_rgmii1_pins_default>;
>
> cpsw-phy-sel@04044 {
> compatible = "ti,am64-phy-gmii-sel";
> diff --git a/arch/arm/dts/k3-am625-sk.dts b/arch/arm/dts/k3-am625-sk.dts
> index af5617ff44d..6bc7d63cf52 100644
> --- a/arch/arm/dts/k3-am625-sk.dts
> +++ b/arch/arm/dts/k3-am625-sk.dts
> @@ -13,7 +13,7 @@
> #include "k3-am625.dtsi"
>
> / {
> - compatible = "ti,am625-sk", "ti,am625";
> + compatible = "ti,am625-sk", "ti,am625";
> model = "Texas Instruments AM625 SK";
>
> aliases {
> @@ -24,6 +24,8 @@
> spi0 = &ospi0;
> ethernet0 = &cpsw_port1;
> ethernet1 = &cpsw_port2;
> + usb0 = &usb0;
> + usb1 = &usb1;
> };
>
> chosen {
> @@ -31,6 +33,15 @@
> bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
> };
>
> + opp-table {
> + /* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
> + opp-1400000000 {
> + opp-hz = /bits/ 64 <1400000000>;
> + opp-supported-hw = <0x01 0x0004>;
> + clock-latency-ns = <6000000>;
> + };
> + };
> +
> memory@80000000 {
> device_type = "memory";
> /* 2G RAM */
> @@ -275,6 +286,12 @@
> 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 {
> @@ -282,11 +299,8 @@
> status = "reserved";
> };
>
> -&mcu_uart0 {
> - status = "disabled";
> -};
> -
> &main_uart0 {
> + status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&main_uart0_pins_default>;
> };
> @@ -296,42 +310,16 @@
> status = "reserved";
> };
>
> -&main_uart2 {
> - status = "disabled";
> -};
> -
> -&main_uart3 {
> - status = "disabled";
> -};
> -
> -&main_uart4 {
> - status = "disabled";
> -};
> -
> -&main_uart5 {
> - status = "disabled";
> -};
> -
> -&main_uart6 {
> - status = "disabled";
> -};
> -
> -&mcu_i2c0 {
> - status = "disabled";
> -};
> -
> -&wkup_i2c0 {
> - status = "disabled";
> -};
> -
> &main_i2c0 {
> - status = "disabled";
> + status = "okay";
> + pinctrl-names = "default";
> pinctrl-0 = <&main_i2c0_pins_default>;
> clock-frequency = <400000>;
> };
>
> &main_i2c1 {
> - status = "disabled";
> + status = "okay";
> + pinctrl-names = "default";
> pinctrl-0 = <&main_i2c1_pins_default>;
> clock-frequency = <400000>;
>
> @@ -363,15 +351,8 @@
> };
> };
>
> -&main_i2c2 {
> - status = "disabled";
> -};
> -
> -&main_i2c3 {
> - status = "disabled";
> -};
> -
> &sdhci0 {
> + status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&main_mmc0_pins_default>;
> ti,driver-strength-ohm = <50>;
> @@ -380,6 +361,7 @@
>
> &sdhci1 {
> /* SD/MMC */
> + status = "okay";
> vmmc-supply = <&vdd_mmc1>;
> vqmmc-supply = <&vdd_sd_dv>;
> pinctrl-names = "default";
> @@ -390,8 +372,7 @@
>
> &cpsw3g {
> pinctrl-names = "default";
> - pinctrl-0 = <&main_mdio1_pins_default
> - &main_rgmii1_pins_default
> + pinctrl-0 = <&main_rgmii1_pins_default
> &main_rgmii2_pins_default>;
> };
>
> @@ -406,6 +387,10 @@
> };
>
> &cpsw3g_mdio {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&main_mdio1_pins_default>;
> +
> cpsw3g_phy0: ethernet-phy@0 {
> reg = <0>;
> ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
> @@ -429,6 +414,7 @@
> };
>
> &ospi0 {
> + status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&ospi0_pins_default>;
>
> @@ -487,18 +473,21 @@
> };
> };
>
> -&ecap0 {
> - status = "disabled";
> +&usbss0 {
> + status = "okay";
> + ti,vbus-divider;
> };
>
> -&ecap1 {
> - status = "disabled";
> +&usbss1 {
> + status = "okay";
> };
>
> -&ecap2 {
> - status = "disabled";
> +&usb0 {
> + dr_mode = "peripheral";
> };
>
> -&main_mcan0 {
> - status = "disabled";
> +&usb1 {
> + dr_mode = "host";
> + pinctrl-names = "default";
> + pinctrl-0 = <&main_usb1_pins_default>;
> };
> diff --git a/arch/arm/dts/k3-am625.dtsi b/arch/arm/dts/k3-am625.dtsi
> index 887f31c23fe..acc7f8ab642 100644
> --- a/arch/arm/dts/k3-am625.dtsi
> +++ b/arch/arm/dts/k3-am625.dtsi
> @@ -48,6 +48,8 @@
> d-cache-line-size = <64>;
> d-cache-sets = <128>;
> next-level-cache = <&L2_0>;
> + operating-points-v2 = <&a53_opp_table>;
> + clocks = <&k3_clks 135 0>;
> };
>
> cpu1: cpu@1 {
> @@ -62,6 +64,8 @@
> d-cache-line-size = <64>;
> d-cache-sets = <128>;
> next-level-cache = <&L2_0>;
> + operating-points-v2 = <&a53_opp_table>;
> + clocks = <&k3_clks 136 0>;
> };
>
> cpu2: cpu@2 {
> @@ -76,6 +80,8 @@
> d-cache-line-size = <64>;
> d-cache-sets = <128>;
> next-level-cache = <&L2_0>;
> + operating-points-v2 = <&a53_opp_table>;
> + clocks = <&k3_clks 137 0>;
> };
>
> cpu3: cpu@3 {
> @@ -90,11 +96,57 @@
> d-cache-line-size = <64>;
> d-cache-sets = <128>;
> next-level-cache = <&L2_0>;
> + operating-points-v2 = <&a53_opp_table>;
> + clocks = <&k3_clks 138 0>;
> + };
> + };
> +
> + a53_opp_table: opp-table {
> + compatible = "operating-points-v2-ti-cpu";
> + opp-shared;
> + syscon = <&wkup_conf>;
> +
> + opp-200000000 {
> + opp-hz = /bits/ 64 <200000000>;
> + opp-supported-hw = <0x01 0x0007>;
> + clock-latency-ns = <6000000>;
> + };
> +
> + opp-400000000 {
> + opp-hz = /bits/ 64 <400000000>;
> + opp-supported-hw = <0x01 0x0007>;
> + clock-latency-ns = <6000000>;
> + };
> +
> + opp-600000000 {
> + opp-hz = /bits/ 64 <600000000>;
> + opp-supported-hw = <0x01 0x0007>;
> + clock-latency-ns = <6000000>;
> + };
> +
> + opp-800000000 {
> + opp-hz = /bits/ 64 <800000000>;
> + opp-supported-hw = <0x01 0x0007>;
> + clock-latency-ns = <6000000>;
> + };
> +
> + opp-1000000000 {
> + opp-hz = /bits/ 64 <1000000000>;
> + opp-supported-hw = <0x01 0x0006>;
> + clock-latency-ns = <6000000>;
> + };
> +
> + opp-1250000000 {
> + opp-hz = /bits/ 64 <1250000000>;
> + opp-supported-hw = <0x01 0x0004>;
> + clock-latency-ns = <6000000>;
> + opp-suspend;
> };
> };
>
> L2_0: l2-cache0 {
> compatible = "cache";
> + cache-unified;
> cache-level = <2>;
> cache-size = <0x40000>;
> cache-line-size = <64>;
> --
> 2.40.0
>
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 5/8] usb: dwc3: Add dwc3 glue driver for am62
2023-04-06 18:55 ` [PATCH v2 5/8] usb: dwc3: Add dwc3 glue driver for am62 Sjoerd Simons
2023-04-07 13:26 ` Mattijs Korpershoek
@ 2023-04-24 2:25 ` Kunihiko Hayashi
1 sibling, 0 replies; 24+ messages in thread
From: Kunihiko Hayashi @ 2023-04-24 2:25 UTC (permalink / raw)
To: Sjoerd Simons, u-boot; +Cc: Angus Ainslie, Marek Vasut, Mattijs Korpershoek
Hi Sjoerd,
On 2023/04/07 3:55, Sjoerd Simons wrote:
> Add glue code for TI AM62 to the dwc3 driver; Most code adopted from
> TI vendor u-boot code.
>
> Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
>
> ---
>
> Changes in v2:
> - Switch dwc3 glue to a seperate driver rather then in dwc-generic
Thanks for helping separate the glue code to avoid dwc-generic complications.
>
> drivers/usb/dwc3/Kconfig | 14 ++++
> drivers/usb/dwc3/Makefile | 1 +
> drivers/usb/dwc3/dwc3-am62.c | 127 +++++++++++++++++++++++++++++++++++
> 3 files changed, 142 insertions(+)
> create mode 100644 drivers/usb/dwc3/dwc3-am62.c
>
> diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
> index c0c8c16fd9c..26a1e1770c5 100644
> --- a/drivers/usb/dwc3/Kconfig
> +++ b/drivers/usb/dwc3/Kconfig
> @@ -37,6 +37,20 @@ config SPL_USB_DWC3_GENERIC
> Select this for Xilinx ZynqMP and similar Platforms.
> This wrapper supports Host and Peripheral operation modes.
>
> +config SPL_USB_DWC3_AM62
> + bool "TI AM62 USB wrapper"
> + depends on SPL_DM_USB && SPL_USB_DWC3_GENERIC
> + help
> + Select this for TI AM62 Platforms.
> + This wrapper supports Host and Peripheral operation modes.
> +
> +config USB_DWC3_AM62
> + bool "TI AM62 USB wrapper"
> + depends on DM_USB && USB_DWC3_GENERIC
> + help
> + Select this for TI AM62 Platforms.
> + This wrapper supports Host and Peripheral operation modes.
> +
> config USB_DWC3_MESON_G12A
> bool "Amlogic Meson G12A USB wrapper"
> depends on DM_USB && USB_DWC3 && ARCH_MESON
> diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile
> index 97b4f7191ca..a46b6824ab7 100644
> --- a/drivers/usb/dwc3/Makefile
> +++ b/drivers/usb/dwc3/Makefile
> @@ -6,6 +6,7 @@ dwc3-y := core.o
>
> obj-$(CONFIG_USB_DWC3_GADGET) += gadget.o ep0.o
>
> +obj-$(CONFIG_$(SPL_)USB_DWC3_AM62) += dwc3-am62.o
> obj-$(CONFIG_USB_DWC3_OMAP) += dwc3-omap.o
> obj-$(CONFIG_USB_DWC3_MESON_G12A) += dwc3-meson-g12a.o
> obj-$(CONFIG_USB_DWC3_MESON_GXL) += dwc3-meson-gxl.o
> diff --git a/drivers/usb/dwc3/dwc3-am62.c b/drivers/usb/dwc3/dwc3-am62.c
> new file mode 100644
> index 00000000000..20d99758b4f
> --- /dev/null
> +++ b/drivers/usb/dwc3/dwc3-am62.c
> @@ -0,0 +1,127 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * TI AM62 specific glue layer for DWC3
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <dm/device_compat.h>
> +#include <regmap.h>
> +#include <syscon.h>
> +#include <asm/io.h>
> +
> +#include "dwc3-generic.h"
> +
> +void dwc3_ti_am62_glue_configure(struct udevice *dev, int index,
Should this function be static?
> + enum usb_dr_mode mode)
> +{
> +#define USBSS_MODE_CONTROL 0x1c
> +#define USBSS_PHY_CONFIG 0x8
> +#define USBSS_PHY_VBUS_SEL_MASK GENMASK(2, 1)
> +#define USBSS_PHY_VBUS_SEL_SHIFT 1
> +#define USBSS_MODE_VALID BIT(0)
> +#define PHY_PLL_REFCLK_MASK GENMASK(3, 0)
> +static const int dwc3_ti_am62_rate_table[] = { /* in KHZ */
> + 9600,
> + 10000,
> + 12000,
> + 19200,
> + 20000,
> + 24000,
> + 25000,
> + 26000,
> + 38400,
> + 40000,
> + 58000,
> + 50000,
> + 52000,
> +};
It's trivial but I think "#define" and the table are better
outside of the function.
> +
> + struct clk usb2_refclk;
> + int rate_code, i, ret;
> + unsigned long rate;
> + u32 reg;
> + void *usbss;
> + bool vbus_divider;
> + struct regmap *syscon;
> + struct ofnode_phandle_args args;
> +
> + usbss = dev_remap_addr_index(dev, 0);
> + if (IS_ERR(usbss)) {
> + dev_err(dev, "can't map IOMEM resource\n");
> + return;
> + }
> +
> + ret = clk_get_by_name(dev, "ref", &usb2_refclk);
> + if (ret) {
> + dev_err(dev, "can't get usb2_refclk\n");
> + return;
> + }
> +
> + /* Calcuate the rate code */
> + rate = clk_get_rate(&usb2_refclk);
> + rate /= 1000; /* To KHz */
> + for (i = 0; i < ARRAY_SIZE(dwc3_ti_am62_rate_table); i++) {
> + if (dwc3_ti_am62_rate_table[i] == rate)
> + break;
> + }
> +
> + if (i == ARRAY_SIZE(dwc3_ti_am62_rate_table)) {
> + dev_err(dev, "unsupported usb2_refclk rate: %lu KHz\n",
> rate);
> + return;
> + }
> +
> + rate_code = i;
> +
> + /* Read the syscon property */
> + syscon = syscon_regmap_lookup_by_phandle(dev,
> "ti,syscon-phy-pll-refclk");
> + if (IS_ERR(syscon)) {
> + dev_err(dev, "unable to get ti,syscon-phy-pll-refclk
> regmap\n");
> + return;
> + }
> +
> + ret = ofnode_parse_phandle_with_args(dev_ofnode(dev),
> "ti,syscon-phy-pll-refclk", NULL, 1,
> + 0, &args);
> + if (ret)
> + return;
> +
> + /* Program PHY PLL refclk by reading syscon property */
> + ret = regmap_update_bits(syscon, args.args[0],
> PHY_PLL_REFCLK_MASK, rate_code);
> + if (ret) {
> + dev_err(dev, "failed to set phy pll reference clock
> rate\n");
> + return;
> + }
> +
> + /* VBUS divider select */
> + reg = readl(usbss + USBSS_PHY_CONFIG);
> + vbus_divider = dev_read_bool(dev, "ti,vbus-divider");
> + if (vbus_divider)
> + reg |= 1 << USBSS_PHY_VBUS_SEL_SHIFT;
> +
> + writel(reg, usbss + USBSS_PHY_CONFIG);
> +
> + /* Set mode valid */
> + reg = readl(usbss + USBSS_MODE_CONTROL);
> + reg |= USBSS_MODE_VALID;
> + writel(reg, usbss + USBSS_MODE_CONTROL);
> +}
> +
> +struct dwc3_glue_ops ti_am62_ops = {
> + .glue_configure = dwc3_ti_am62_glue_configure,
> +};
> +
> +static const struct udevice_id dwc3_am62_match[] = {
> + { .compatible = "ti,am62-usb", .data = (ulong)&ti_am62_ops },
> + { /* sentinel */ }
> +};
> +
> +U_BOOT_DRIVER(dwc3_am62_wrapper) = {
> + .name = "dwc3-am62",
> + .id = UCLASS_SIMPLE_BUS,
> + .of_match = dwc3_am62_match,
> + .bind = dwc3_glue_bind,
> + .probe = dwc3_glue_probe,
> + .remove = dwc3_glue_remove,
> + .plat_auto = sizeof(struct dwc3_glue_data),
> +
The pointless blank line.
> +};
Thank you,
---
Best Regards
Kunihiko Hayashi
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
` (8 preceding siblings ...)
2023-04-11 5:51 ` [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Ravi Gunasekaran
@ 2023-05-10 7:59 ` Mattijs Korpershoek
2023-05-31 21:14 ` Tom Rini
10 siblings, 0 replies; 24+ messages in thread
From: Mattijs Korpershoek @ 2023-05-10 7:59 UTC (permalink / raw)
To: Sjoerd Simons, u-boot
Cc: Angus Ainslie, Aswath Govindraju, Dave Gerlach, Dhruva Gole,
Georgi Vlaev, Gowtham Tammana, Julien Panis, Kamlesh Gurudasani,
Kunihiko Hayashi, Marek Vasut, Nishanth Menon, Simon Glass,
Suman Anna, Tom Rini, Vignesh Raghavendra
Hi Sjoerd,
Thank you for this series.
On jeu., avril 06, 2023 at 20:55, Sjoerd Simons <sjoerd@collabora.com> wrote:
> This series adds more boot sources for the TI am62x. For that the dts'
> are synced from the upstream ti-next git tree (to add usb nodes), some
> dwc3 glue is and finally the default configuration is tuned to add
> support for DFU and USB (host and gadget)
>
>
> Changes in v2:
> - Update dts sync to v6.3-rc5
> - Switch dwc3 glue to a seperate driver rather then in dwc-generic
> - Minimize config changes to just DFU configuration
> - Only enable usb port 0 DFU in SPL
> - Create a seperate defconfig for R5
>
> Sjoerd Simons (8):
> omap: timer: add ti,am654-timer compatibility
> arm: mach-k3: am62: Add timer0 id to the dev list
> arm: dts: k3-am62: Bump dtsi from linux
> arm: dts: k3-am625-sk: Enable emmc in SPL
> usb: dwc3: Add dwc3 glue driver for am62
> configs: am62: Add configs for enabling USB in U-Boot
> arm: dts: k3-am625-sk: Enable usb ports in u-boot
> configs: am62x_evm_*: Enable USB and DFU support
I've tested USB support on AM62x SK EVM for this whole series based on a
public TI integration branch:
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/log/?h=ti-u-boot-2023.04-next
I did not test DFU, however with some small config changes I could test
fastboot support using:
=> fastboot usb 0
Then from host:
$ fastboot devices
$ fastboot flash <partition_label> <image_file>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
>
> arch/arm/dts/k3-am62-main.dtsi | 259 +++++++++++++++++++++++---
> arch/arm/dts/k3-am62-mcu.dtsi | 49 +++++
> arch/arm/dts/k3-am62-wakeup.dtsi | 4 +-
> arch/arm/dts/k3-am625-r5-sk.dts | 2 +-
> arch/arm/dts/k3-am625-sk-u-boot.dtsi | 27 ++-
> arch/arm/dts/k3-am625-sk.dts | 95 +++++-----
> arch/arm/dts/k3-am625.dtsi | 52 ++++++
> arch/arm/mach-k3/am62x/dev-data.c | 1 +
> configs/am62x_evm_a53_defconfig | 35 +++-
> configs/am62x_evm_r5_usbdfu_defconfig | 116 ++++++++++++
> drivers/timer/omap-timer.c | 1 +
> drivers/usb/dwc3/Kconfig | 14 ++
> drivers/usb/dwc3/Makefile | 1 +
> drivers/usb/dwc3/dwc3-am62.c | 127 +++++++++++++
> include/configs/am62x_evm.h | 10 +-
> 15 files changed, 701 insertions(+), 92 deletions(-)
> create mode 100644 configs/am62x_evm_r5_usbdfu_defconfig
> create mode 100644 drivers/usb/dwc3/dwc3-am62.c
>
> --
> 2.40.0
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
` (9 preceding siblings ...)
2023-05-10 7:59 ` Mattijs Korpershoek
@ 2023-05-31 21:14 ` Tom Rini
2023-06-01 6:37 ` Sjoerd Simons
10 siblings, 1 reply; 24+ messages in thread
From: Tom Rini @ 2023-05-31 21:14 UTC (permalink / raw)
To: Sjoerd Simons, nm
Cc: u-boot, Angus Ainslie, Aswath Govindraju, Dave Gerlach,
Dhruva Gole, Georgi Vlaev, Gowtham Tammana, Julien Panis,
Kamlesh Gurudasani, Kunihiko Hayashi, Marek Vasut,
Mattijs Korpershoek, Nishanth Menon, Simon Glass, Suman Anna,
Vignesh Raghavendra
[-- Attachment #1: Type: text/plain, Size: 2352 bytes --]
On Thu, Apr 06, 2023 at 08:55:34PM +0200, Sjoerd Simons wrote:
> This series adds more boot sources for the TI am62x. For that the dts'
> are synced from the upstream ti-next git tree (to add usb nodes), some
> dwc3 glue is and finally the default configuration is tuned to add
> support for DFU and USB (host and gadget)
>
>
> Changes in v2:
> - Update dts sync to v6.3-rc5
> - Switch dwc3 glue to a seperate driver rather then in dwc-generic
> - Minimize config changes to just DFU configuration
> - Only enable usb port 0 DFU in SPL
> - Create a seperate defconfig for R5
>
> Sjoerd Simons (8):
> omap: timer: add ti,am654-timer compatibility
> arm: mach-k3: am62: Add timer0 id to the dev list
> arm: dts: k3-am62: Bump dtsi from linux
> arm: dts: k3-am625-sk: Enable emmc in SPL
> usb: dwc3: Add dwc3 glue driver for am62
> configs: am62: Add configs for enabling USB in U-Boot
> arm: dts: k3-am625-sk: Enable usb ports in u-boot
> configs: am62x_evm_*: Enable USB and DFU support
>
> arch/arm/dts/k3-am62-main.dtsi | 259 +++++++++++++++++++++++---
> arch/arm/dts/k3-am62-mcu.dtsi | 49 +++++
> arch/arm/dts/k3-am62-wakeup.dtsi | 4 +-
> arch/arm/dts/k3-am625-r5-sk.dts | 2 +-
> arch/arm/dts/k3-am625-sk-u-boot.dtsi | 27 ++-
> arch/arm/dts/k3-am625-sk.dts | 95 +++++-----
> arch/arm/dts/k3-am625.dtsi | 52 ++++++
> arch/arm/mach-k3/am62x/dev-data.c | 1 +
> configs/am62x_evm_a53_defconfig | 35 +++-
> configs/am62x_evm_r5_usbdfu_defconfig | 116 ++++++++++++
> drivers/timer/omap-timer.c | 1 +
> drivers/usb/dwc3/Kconfig | 14 ++
> drivers/usb/dwc3/Makefile | 1 +
> drivers/usb/dwc3/dwc3-am62.c | 127 +++++++++++++
> include/configs/am62x_evm.h | 10 +-
> 15 files changed, 701 insertions(+), 92 deletions(-)
> create mode 100644 configs/am62x_evm_r5_usbdfu_defconfig
> create mode 100644 drivers/usb/dwc3/dwc3-am62.c
> Tested-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
> Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
This seems, conceptually, fine. But as we're getting the TI dts files
in sync with the kernel, I'm deferring this version and you'll want to
rebase and re-post once everything has settled.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
2023-05-31 21:14 ` Tom Rini
@ 2023-06-01 6:37 ` Sjoerd Simons
2023-08-21 16:13 ` Marcel Ziswiler
0 siblings, 1 reply; 24+ messages in thread
From: Sjoerd Simons @ 2023-06-01 6:37 UTC (permalink / raw)
To: Tom Rini, nm
Cc: u-boot, Angus Ainslie, Aswath Govindraju, Dave Gerlach,
Dhruva Gole, Georgi Vlaev, Gowtham Tammana, Julien Panis,
Kamlesh Gurudasani, Kunihiko Hayashi, Marek Vasut,
Mattijs Korpershoek, Simon Glass, Suman Anna, Vignesh Raghavendra
On Wed, 2023-05-31 at 17:14 -0400, Tom Rini wrote:
> On Thu, Apr 06, 2023 at 08:55:34PM +0200, Sjoerd Simons wrote:
>
> > This series adds more boot sources for the TI am62x. For that the
> > dts'
> > are synced from the upstream ti-next git tree (to add usb nodes),
> > some
> > dwc3 glue is and finally the default configuration is tuned to add
> > support for DFU and USB (host and gadget)
>
> This seems, conceptually, fine. But as we're getting the TI dts
> files
> in sync with the kernel, I'm deferring this version and you'll want
> to
> rebase and re-post once everything has settled.
Thanks for the update/hint ;) I also got a few review comments so the
plan is to include those and repost.. Just my may has been stupidly
busy causing me to not get around it in the first place, so maybe that
turned into good timing in the end.
--
Sjoerd Simons
Collabora Ltd.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 8/8] configs: am62x_evm_*: Enable USB and DFU support
2023-04-06 18:55 ` [PATCH v2 8/8] configs: am62x_evm_*: Enable USB and DFU support Sjoerd Simons
@ 2023-06-08 21:41 ` Marcel Ziswiler
0 siblings, 0 replies; 24+ messages in thread
From: Marcel Ziswiler @ 2023-06-08 21:41 UTC (permalink / raw)
To: u-boot@lists.denx.de, sjoerd@collabora.com
Cc: a-govindraju@ti.com, d-gole@ti.com, g-vlaev@ti.com,
jpanis@baylibre.com, d-gerlach@ti.com, kamlesh@ti.com
Hi Sjoerd
Thanks for this series.
On Thu, 2023-04-06 at 20:55 +0200, Sjoerd Simons wrote:
> Enable USB host as well as USB gadget and DFU support for a53; For the
> r5 due to the smaller available size create a new config just for
> DFU support
>
> Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
With the nitpick about CONFIG_USB_XHCI_DWC3 (needs to be removed) below.
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
I tested both USB device aka gadget (with DFU and UMS) as well as USB host on both the TI AM625 EVM aka SK as
well as the Toradex Verdin AM62 [1] (plus USB integration analogous to EVM/SK to be posted later).
[1] https://lore.kernel.org/all/20230607120639.82087-1-marcel@ziswiler.com/
> ---
>
> Changes in v2:
> - Create a seperate defconfig for R5
>
> configs/am62x_evm_a53_defconfig | 35 +++++++-
> configs/am62x_evm_r5_usbdfu_defconfig | 116 ++++++++++++++++++++++++++
> 2 files changed, 148 insertions(+), 3 deletions(-)
> create mode 100644 configs/am62x_evm_r5_usbdfu_defconfig
>
> diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig
> index cc9c8eab3e3..7dbf2f54050 100644
> --- a/configs/am62x_evm_a53_defconfig
> +++ b/configs/am62x_evm_a53_defconfig
> @@ -1,5 +1,6 @@
> CONFIG_ARM=y
> CONFIG_ARCH_K3=y
> +CONFIG_SYS_MALLOC_LEN=0x2000000
> CONFIG_SYS_MALLOC_F_LEN=0x8000
> CONFIG_SPL_LIBCOMMON_SUPPORT=y
> CONFIG_SPL_LIBGENERIC_SUPPORT=y
> @@ -9,9 +10,11 @@ CONFIG_K3_ATF_LOAD_ADDR=0x9e780000
> CONFIG_TARGET_AM625_A53_EVM=y
> CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
> CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80480000
> +CONFIG_SF_DEFAULT_SPEED=25000000
> CONFIG_SPL_DM_SPI=y
> CONFIG_DEFAULT_DEVICE_TREE="k3-am625-sk"
> CONFIG_SPL_TEXT_BASE=0x80080000
> +CONFIG_OF_LIBFDT_OVERLAY=y
> CONFIG_DM_RESET=y
> CONFIG_SPL_MMC=y
> CONFIG_SPL_SERIAL=y
> @@ -33,17 +36,23 @@ CONFIG_SPL_SYS_MALLOC_SIMPLE=y
> CONFIG_SPL_STACK_R=y
> CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
> CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1400
> +CONFIG_SPL_ENV_SUPPORT=y
> CONFIG_SPL_FS_LOAD_PAYLOAD_NAME="u-boot.img"
> CONFIG_SPL_DM_MAILBOX=y
> CONFIG_SPL_DM_SPI_FLASH=y
> CONFIG_SPL_POWER_DOMAIN=y
> +CONFIG_SPL_RAM_SUPPORT=y
> +CONFIG_SPL_RAM_DEVICE=y
> # CONFIG_SPL_SPI_FLASH_TINY is not set
> CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
> CONFIG_SPL_SPI_LOAD=y
> CONFIG_SYS_SPI_U_BOOT_OFFS=0x280000
> +CONFIG_SPL_USB_GADGET=y
> +CONFIG_SPL_DFU=y
> CONFIG_SPL_YMODEM_SUPPORT=y
> -CONFIG_SYS_BOOTM_LEN=0x800000
> +CONFIG_CMD_DFU=y
> CONFIG_CMD_MMC=y
> +CONFIG_CMD_USB=y
> CONFIG_OF_CONTROL=y
> CONFIG_SPL_OF_CONTROL=y
> CONFIG_MULTI_DTB_FIT=y
> @@ -54,10 +63,17 @@ CONFIG_SPL_DM=y
> CONFIG_SPL_DM_SEQ_ALIAS=y
> CONFIG_REGMAP=y
> CONFIG_SPL_REGMAP=y
> +CONFIG_SYSCON=y
> +CONFIG_SPL_SYSCON=y
> CONFIG_SPL_OF_TRANSLATE=y
> CONFIG_CLK=y
> CONFIG_SPL_CLK=y
> CONFIG_CLK_TI_SCI=y
> +CONFIG_DFU_MMC=y
> +CONFIG_DFU_RAM=y
> +CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
> CONFIG_DMA_CHANNELS=y
> CONFIG_TI_K3_NAVSS_UDMA=y
> CONFIG_TI_SCI_PROTOCOL=y
> @@ -68,7 +84,6 @@ CONFIG_MMC_SDHCI_ADMA=y
> CONFIG_SPL_MMC_SDHCI_ADMA=y
> CONFIG_MMC_SDHCI_AM654=y
> CONFIG_DM_SPI_FLASH=y
> -CONFIG_SF_DEFAULT_SPEED=25000000
> CONFIG_SPI_FLASH_SFDP_SUPPORT=y
> CONFIG_SPI_FLASH_SOFT_RESET=y
> CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
> @@ -96,5 +111,19 @@ CONFIG_CADENCE_QSPI=y
> CONFIG_SYSRESET=y
> CONFIG_SPL_SYSRESET=y
> CONFIG_SYSRESET_TI_SCI=y
> +CONFIG_USB=y
> +CONFIG_DM_USB_GADGET=y
> +CONFIG_SPL_DM_USB_GADGET=y
> +CONFIG_USB_XHCI_HCD=y
> +CONFIG_USB_XHCI_DWC3=y
I believe the above got superseded by CONFIG_USB_DWC3_AM62 further below, not?
At least in my testing it always crashed as follows unless I removed CONFIG_USB_XHCI_DWC3:
=> usb start
starting USB...
Bus usb@31000000: generic_phy_get_bulk : no phys property
Register 1000840 NbrPorts 1
Starting the controller
USB XHCI 1.10
Bus usb@31100000: generic_phy_get_bulk : no phys property
Register 1000840 NbrPorts 1
Starting the controller
USB XHCI 1.10
Bus usb@31100000: generic_phy_get_bulk : no phys property
Register 1000840 NbrPorts 1
Starting the controller
USB XHCI 1.10
scanning bus usb@31000000 for devices... 1 USB Device(s) found
scanning bus usb@31100000 for devices... XHCI timeout on event type 33... cannot recover.
BUG at drivers/usb/host/xhci-ring.c:496/xhci_wait_for_event()!
BUG!
resetting ...
System reset not supported on this platform
### ERROR ### Please RESET the board ###
> +CONFIG_USB_DWC3=y
> +CONFIG_USB_DWC3_GENERIC=y
> +CONFIG_SPL_USB_DWC3_GENERIC=y
> +CONFIG_SPL_USB_DWC3_AM62=y
> +CONFIG_USB_DWC3_AM62=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
> +CONFIG_USB_GADGET_VENDOR_NUM=0x0451
> +CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
> +CONFIG_USB_GADGET_DOWNLOAD=y
> CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
> -CONFIG_OF_LIBFDT_OVERLAY=y
> diff --git a/configs/am62x_evm_r5_usbdfu_defconfig b/configs/am62x_evm_r5_usbdfu_defconfig
> new file mode 100644
> index 00000000000..00a0821b6df
> --- /dev/null
> +++ b/configs/am62x_evm_r5_usbdfu_defconfig
> @@ -0,0 +1,116 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_K3=y
> +CONFIG_SYS_MALLOC_LEN=0x08000000
> +CONFIG_SYS_MALLOC_F_LEN=0x9000
> +CONFIG_SPL_LIBCOMMON_SUPPORT=y
> +CONFIG_SPL_LIBGENERIC_SUPPORT=y
> +CONFIG_NR_DRAM_BANKS=2
> +CONFIG_SOC_K3_AM625=y
> +CONFIG_TARGET_AM625_R5_EVM=y
> +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
> +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x43c3a7f0
> +CONFIG_ENV_SIZE=0x20000
> +CONFIG_DM_GPIO=y
> +CONFIG_DEFAULT_DEVICE_TREE="k3-am625-r5-sk"
> +CONFIG_SPL_TEXT_BASE=0x43c00000
> +CONFIG_DM_RESET=y
> +CONFIG_SPL_SERIAL=y
> +CONFIG_SPL_DRIVERS_MISC=y
> +CONFIG_SPL_STACK_R_ADDR=0x82000000
> +CONFIG_SPL_SYS_MALLOC_F_LEN=0x7000
> +CONFIG_SPL_SIZE_LIMIT=0x3A7F0
> +CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK=0x3500
> +CONFIG_SPL_LOAD_FIT=y
> +CONFIG_SPL_LOAD_FIT_ADDRESS=0x80080000
> +CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y
> +# CONFIG_DISPLAY_CPUINFO is not set
> +CONFIG_SPL_SIZE_LIMIT_SUBTRACT_GD=y
> +CONFIG_SPL_SIZE_LIMIT_SUBTRACT_MALLOC=y
> +CONFIG_SPL_MAX_SIZE=0x3B000
> +CONFIG_SPL_PAD_TO=0x0
> +CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
> +CONFIG_SPL_BSS_START_ADDR=0x43c3b000
> +CONFIG_SPL_BSS_MAX_SIZE=0x3000
> +CONFIG_SPL_SYS_REPORT_STACK_F_USAGE=y
> +CONFIG_SPL_SYS_MALLOC_SIMPLE=y
> +CONFIG_SPL_STACK_R=y
> +CONFIG_SPL_SEPARATE_BSS=y
> +CONFIG_SYS_SPL_MALLOC=y
> +CONFIG_HAS_CUSTOM_SPL_MALLOC_START=y
> +CONFIG_CUSTOM_SYS_SPL_MALLOC_ADDR=0x84000000
> +CONFIG_SYS_SPL_MALLOC_SIZE=0x1000000
> +CONFIG_SPL_EARLY_BSS=y
> +CONFIG_SPL_ENV_SUPPORT=y
> +CONFIG_SPL_DM_MAILBOX=y
> +CONFIG_SPL_DM_RESET=y
> +CONFIG_SPL_POWER_DOMAIN=y
> +CONFIG_SPL_RAM_SUPPORT=y
> +CONFIG_SPL_RAM_DEVICE=y
> +CONFIG_SPL_REMOTEPROC=y
> +CONFIG_SPL_USB_GADGET=y
> +CONFIG_SPL_DFU=y
> +CONFIG_SPL_YMODEM_SUPPORT=y
> +CONFIG_HUSH_PARSER=y
> +CONFIG_CMD_ASKENV=y
> +CONFIG_CMD_DFU=y
> +CONFIG_CMD_REMOTEPROC=y
> +# CONFIG_CMD_SETEXPR is not set
> +CONFIG_CMD_TIME=y
> +CONFIG_OF_CONTROL=y
> +CONFIG_SPL_OF_CONTROL=y
> +CONFIG_SPL_MULTI_DTB_FIT=y
> +CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
> +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_SPL_DM=y
> +CONFIG_SPL_DM_SEQ_ALIAS=y
> +CONFIG_REGMAP=y
> +CONFIG_SPL_REGMAP=y
> +CONFIG_SYSCON=y
> +CONFIG_SPL_SYSCON=y
> +CONFIG_SPL_OF_TRANSLATE=y
> +CONFIG_CLK=y
> +CONFIG_SPL_CLK=y
> +CONFIG_SPL_CLK_CCF=y
> +CONFIG_SPL_CLK_K3_PLL=y
> +CONFIG_SPL_CLK_K3=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
> +CONFIG_TI_SCI_PROTOCOL=y
> +CONFIG_DA8XX_GPIO=y
> +CONFIG_DM_MAILBOX=y
> +CONFIG_K3_SEC_PROXY=y
> +CONFIG_MISC=y
> +CONFIG_ESM_K3=y
> +CONFIG_PINCTRL=y
> +# CONFIG_PINCTRL_GENERIC is not set
> +CONFIG_SPL_PINCTRL=y
> +# CONFIG_SPL_PINCTRL_GENERIC is not set
> +CONFIG_PINCTRL_SINGLE=y
> +CONFIG_POWER_DOMAIN=y
> +CONFIG_TI_POWER_DOMAIN=y
> +CONFIG_K3_SYSTEM_CONTROLLER=y
> +CONFIG_REMOTEPROC_TI_K3_ARM64=y
> +CONFIG_RESET_TI_SCI=y
> +CONFIG_SPECIFY_CONSOLE_INDEX=y
> +CONFIG_DM_SERIAL=y
> +CONFIG_SOC_DEVICE=y
> +CONFIG_SOC_DEVICE_TI_K3=y
> +CONFIG_SOC_TI=y
> +CONFIG_TIMER=y
> +CONFIG_SPL_TIMER=y
> +CONFIG_OMAP_TIMER=y
> +CONFIG_USB=y
> +CONFIG_DM_USB_GADGET=y
> +CONFIG_SPL_DM_USB_GADGET=y
> +CONFIG_USB_XHCI_HCD=y
> +CONFIG_USB_XHCI_DWC3=y
The same applies here.
> +CONFIG_USB_DWC3=y
> +CONFIG_USB_DWC3_GENERIC=y
> +CONFIG_SPL_USB_DWC3_GENERIC=y
> +CONFIG_SPL_USB_DWC3_AM62=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
> +CONFIG_USB_GADGET_VENDOR_NUM=0x0451
> +CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
> +CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_LIB_RATIONAL=y
> +CONFIG_SPL_LIB_RATIONAL=y
Cheers
Marcel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
2023-06-01 6:37 ` Sjoerd Simons
@ 2023-08-21 16:13 ` Marcel Ziswiler
2023-08-21 18:20 ` Tom Rini
0 siblings, 1 reply; 24+ messages in thread
From: Marcel Ziswiler @ 2023-08-21 16:13 UTC (permalink / raw)
To: nm@ti.com, trini@konsulko.com, sjoerd@collabora.com
Cc: a-govindraju@ti.com, d-gole@ti.com, d-gerlach@ti.com,
jpanis@baylibre.com, mkorpershoek@baylibre.com, g-tammana@ti.com,
kamlesh@ti.com, vigneshr@ti.com, marex@denx.de,
hayashi.kunihiko@socionext.com, u-boot@lists.denx.de,
angus@akkea.ca, g-vlaev@ti.com, s-anna@ti.com, sjg@chromium.org
Hi Sjoerd
On Thu, 2023-06-01 at 08:37 +0200, Sjoerd Simons wrote:
> On Wed, 2023-05-31 at 17:14 -0400, Tom Rini wrote:
> > On Thu, Apr 06, 2023 at 08:55:34PM +0200, Sjoerd Simons wrote:
> >
> > > This series adds more boot sources for the TI am62x. For that the
> > > dts'
> > > are synced from the upstream ti-next git tree (to add usb nodes),
> > > some
> > > dwc3 glue is and finally the default configuration is tuned to add
> > > support for DFU and USB (host and gadget)
> >
> > This seems, conceptually, fine. But as we're getting the TI dts
> > files
> > in sync with the kernel, I'm deferring this version and you'll want
> > to
> > rebase and re-post once everything has settled.
>
> Thanks for the update/hint ;) I also got a few review comments so the
> plan is to include those and repost.. Just my may has been stupidly
> busy causing me to not get around it in the first place, so maybe that
> turned into good timing in the end.
Any progress on this?
I still carry your re-based series on top of latest master [1] and USB DFU is working very well on Verdin AM62.
Thanks!
[1] https://github.com/ziswiler/u-boot/tree/verdin-am62-usb-support
Cheers
Marcel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
2023-08-21 16:13 ` Marcel Ziswiler
@ 2023-08-21 18:20 ` Tom Rini
2024-05-29 6:09 ` Dhruva Gole
0 siblings, 1 reply; 24+ messages in thread
From: Tom Rini @ 2023-08-21 18:20 UTC (permalink / raw)
To: Marcel Ziswiler
Cc: nm@ti.com, sjoerd@collabora.com, a-govindraju@ti.com,
d-gole@ti.com, d-gerlach@ti.com, jpanis@baylibre.com,
mkorpershoek@baylibre.com, g-tammana@ti.com, kamlesh@ti.com,
vigneshr@ti.com, marex@denx.de, hayashi.kunihiko@socionext.com,
u-boot@lists.denx.de, angus@akkea.ca, g-vlaev@ti.com,
s-anna@ti.com, sjg@chromium.org
[-- Attachment #1: Type: text/plain, Size: 1453 bytes --]
On Mon, Aug 21, 2023 at 04:13:32PM +0000, Marcel Ziswiler wrote:
> Hi Sjoerd
>
> On Thu, 2023-06-01 at 08:37 +0200, Sjoerd Simons wrote:
> > On Wed, 2023-05-31 at 17:14 -0400, Tom Rini wrote:
> > > On Thu, Apr 06, 2023 at 08:55:34PM +0200, Sjoerd Simons wrote:
> > >
> > > > This series adds more boot sources for the TI am62x. For that the
> > > > dts'
> > > > are synced from the upstream ti-next git tree (to add usb nodes),
> > > > some
> > > > dwc3 glue is and finally the default configuration is tuned to add
> > > > support for DFU and USB (host and gadget)
> > >
> > > This seems, conceptually, fine. But as we're getting the TI dts
> > > files
> > > in sync with the kernel, I'm deferring this version and you'll want
> > > to
> > > rebase and re-post once everything has settled.
> >
> > Thanks for the update/hint ;) I also got a few review comments so the
> > plan is to include those and repost.. Just my may has been stupidly
> > busy causing me to not get around it in the first place, so maybe that
> > turned into good timing in the end.
>
> Any progress on this?
>
> I still carry your re-based series on top of latest master [1] and USB DFU is working very well on Verdin AM62.
>
> Thanks!
>
> [1] https://github.com/ziswiler/u-boot/tree/verdin-am62-usb-support
As the am62 files have been re-synced, re-basing this and re-posting for
next would be appropriate at this point.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 4/8] arm: dts: k3-am625-sk: Enable emmc in SPL
2023-04-06 18:55 ` [PATCH v2 4/8] arm: dts: k3-am625-sk: Enable emmc in SPL Sjoerd Simons
@ 2023-09-19 7:35 ` Sverdlin, Alexander
2023-09-19 11:19 ` Nishanth Menon
0 siblings, 1 reply; 24+ messages in thread
From: Sverdlin, Alexander @ 2023-09-19 7:35 UTC (permalink / raw)
To: u-boot@lists.denx.de, sjoerd@collabora.com
Cc: a-govindraju@ti.com, trini@konsulko.com, g-vlaev@ti.com,
d-gole@ti.com, vigneshr@ti.com, nm@ti.com, sjg@chromium.org
Hello Sjoerd,
On Thu, 2023-04-06 at 20:55 +0200, Sjoerd Simons wrote:
> sdhci0 on the k3-am625-sk is the emmc, enable this in SPL as well to
> allow booting from that media.
>
> Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>
thanks for the patch! I've tested the eMMC boot on AM625 SK
and this was exactly the missing piece, with the patch it boots fine:
Tested-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
> ---
>
> (no changes since v1)
>
> arch/arm/dts/k3-am625-sk-u-boot.dtsi | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> index 0def84b4cf0..5f90a4b56f1 100644
> --- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> +++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> @@ -92,6 +92,14 @@
> bootph-pre-ram;
> };
>
> +&sdhci0 {
> + bootph-pre-ram;
> +};
> +
> +&main_mmc0_pins_default {
> + bootph-pre-ram;
> +};
> +
> &sdhci1 {
> bootph-pre-ram;
> };
--
Alexander Sverdlin
Siemens AG
www.siemens.com
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 4/8] arm: dts: k3-am625-sk: Enable emmc in SPL
2023-09-19 7:35 ` Sverdlin, Alexander
@ 2023-09-19 11:19 ` Nishanth Menon
2023-09-19 11:33 ` Dhruva Gole
0 siblings, 1 reply; 24+ messages in thread
From: Nishanth Menon @ 2023-09-19 11:19 UTC (permalink / raw)
To: Sverdlin, Alexander
Cc: u-boot@lists.denx.de, sjoerd@collabora.com, a-govindraju@ti.com,
trini@konsulko.com, g-vlaev@ti.com, d-gole@ti.com,
vigneshr@ti.com, sjg@chromium.org
On 07:35-20230919, Sverdlin, Alexander wrote:
> Hello Sjoerd,
>
> On Thu, 2023-04-06 at 20:55 +0200, Sjoerd Simons wrote:
> > sdhci0 on the k3-am625-sk is the emmc, enable this in SPL as well to
> > allow booting from that media.
> >
> > Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
> > Reviewed-by: Tom Rini <trini@konsulko.com>
>
> thanks for the patch! I've tested the eMMC boot on AM625 SK
> and this was exactly the missing piece, with the patch it boots fine:
>
> Tested-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
note: I have also posted https://lore.kernel.org/r/20230911162535.1044560-4-nm@ti.com
That should take care of this in the kernel sync next time around.
But, for next:
Reviewed-by: Nishanth Menon <nm@ti.com>
>
> > ---
> >
> > (no changes since v1)
> >
> > arch/arm/dts/k3-am625-sk-u-boot.dtsi | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> > index 0def84b4cf0..5f90a4b56f1 100644
> > --- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> > +++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> > @@ -92,6 +92,14 @@
> > bootph-pre-ram;
> > };
> >
> > +&sdhci0 {
> > + bootph-pre-ram;
> > +};
> > +
> > +&main_mmc0_pins_default {
> > + bootph-pre-ram;
> > +};
> > +
> > &sdhci1 {
> > bootph-pre-ram;
> > };
>
> --
> Alexander Sverdlin
> Siemens AG
> www.siemens.com
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 4/8] arm: dts: k3-am625-sk: Enable emmc in SPL
2023-09-19 11:19 ` Nishanth Menon
@ 2023-09-19 11:33 ` Dhruva Gole
0 siblings, 0 replies; 24+ messages in thread
From: Dhruva Gole @ 2023-09-19 11:33 UTC (permalink / raw)
To: Nishanth Menon
Cc: Sverdlin, Alexander, u-boot@lists.denx.de, sjoerd@collabora.com,
a-govindraju@ti.com, trini@konsulko.com, g-vlaev@ti.com,
vigneshr@ti.com, sjg@chromium.org
On Sep 19, 2023 at 06:19:02 -0500, Nishanth Menon wrote:
> On 07:35-20230919, Sverdlin, Alexander wrote:
> > Hello Sjoerd,
> >
> > On Thu, 2023-04-06 at 20:55 +0200, Sjoerd Simons wrote:
> > > sdhci0 on the k3-am625-sk is the emmc, enable this in SPL as well to
> > > allow booting from that media.
> > >
> > > Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
> > > Reviewed-by: Tom Rini <trini@konsulko.com>
> >
> > thanks for the patch! I've tested the eMMC boot on AM625 SK
> > and this was exactly the missing piece, with the patch it boots fine:
> >
> > Tested-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
>
> note: I have also posted https://lore.kernel.org/r/20230911162535.1044560-4-nm@ti.com
>
> That should take care of this in the kernel sync next time around.
>
> But, for next:
>
> Reviewed-by: Nishanth Menon <nm@ti.com>
>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
> >
> > > ---
> > >
> > > (no changes since v1)
> > >
> > > arch/arm/dts/k3-am625-sk-u-boot.dtsi | 8 ++++++++
> > > 1 file changed, 8 insertions(+)
> > >
> > > diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> > > index 0def84b4cf0..5f90a4b56f1 100644
> > > --- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> > > +++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
> > > @@ -92,6 +92,14 @@
> > > bootph-pre-ram;
> > > };
> > >
> > > +&sdhci0 {
> > > + bootph-pre-ram;
> > > +};
> > > +
> > > +&main_mmc0_pins_default {
> > > + bootph-pre-ram;
> > > +};
> > > +
> > > &sdhci1 {
> > > bootph-pre-ram;
> > > };
> >
> > --
> > Alexander Sverdlin
> > Siemens AG
> > www.siemens.com
>
> --
> Regards,
> Nishanth Menon
> Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
>
--
Best regards,
Dhruva Gole <d-gole@ti.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
2023-08-21 18:20 ` Tom Rini
@ 2024-05-29 6:09 ` Dhruva Gole
2024-05-29 9:00 ` Mattijs Korpershoek
0 siblings, 1 reply; 24+ messages in thread
From: Dhruva Gole @ 2024-05-29 6:09 UTC (permalink / raw)
To: Tom Rini
Cc: Marcel Ziswiler, nm@ti.com, sjoerd@collabora.com,
a-govindraju@ti.com, d-gerlach@ti.com, jpanis@baylibre.com,
mkorpershoek@baylibre.com, g-tammana@ti.com, kamlesh@ti.com,
vigneshr@ti.com, marex@denx.de, hayashi.kunihiko@socionext.com,
u-boot@lists.denx.de, angus@akkea.ca, g-vlaev@ti.com,
s-anna@ti.com, sjg@chromium.org
Hi Sjoerd,
On Aug 21, 2023 at 14:20:26 -0400, Tom Rini wrote:
> On Mon, Aug 21, 2023 at 04:13:32PM +0000, Marcel Ziswiler wrote:
> > Hi Sjoerd
> >
> > On Thu, 2023-06-01 at 08:37 +0200, Sjoerd Simons wrote:
> > > On Wed, 2023-05-31 at 17:14 -0400, Tom Rini wrote:
> > > > On Thu, Apr 06, 2023 at 08:55:34PM +0200, Sjoerd Simons wrote:
> > > >
> > > > > This series adds more boot sources for the TI am62x. For that the
> > > > > dts'
> > > > > are synced from the upstream ti-next git tree (to add usb nodes),
> > > > > some
> > > > > dwc3 glue is and finally the default configuration is tuned to add
> > > > > support for DFU and USB (host and gadget)
> > > >
> > > > This seems, conceptually, fine. But as we're getting the TI dts
> > > > files
> > > > in sync with the kernel, I'm deferring this version and you'll want
> > > > to
> > > > rebase and re-post once everything has settled.
> > >
> > > Thanks for the update/hint ;) I also got a few review comments so the
> > > plan is to include those and repost.. Just my may has been stupidly
> > > busy causing me to not get around it in the first place, so maybe that
> > > turned into good timing in the end.
> >
> > Any progress on this?
> >
> > I still carry your re-based series on top of latest master [1] and USB DFU is working very well on Verdin AM62.
> >
> > Thanks!
> >
> > [1] https://github.com/ziswiler/u-boot/tree/verdin-am62-usb-support
>
> As the am62 files have been re-synced, re-basing this and re-posting for
> next would be appropriate at this point.
Any updates on this? Do you have plans to rebase and resend this series?
--
Best regards,
Dhruva Gole <d-gole@ti.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x
2024-05-29 6:09 ` Dhruva Gole
@ 2024-05-29 9:00 ` Mattijs Korpershoek
0 siblings, 0 replies; 24+ messages in thread
From: Mattijs Korpershoek @ 2024-05-29 9:00 UTC (permalink / raw)
To: Dhruva Gole, Tom Rini
Cc: Marcel Ziswiler, nm@ti.com, sjoerd@collabora.com,
a-govindraju@ti.com, d-gerlach@ti.com, jpanis@baylibre.com,
g-tammana@ti.com, kamlesh@ti.com, vigneshr@ti.com, marex@denx.de,
hayashi.kunihiko@socionext.com, u-boot@lists.denx.de,
angus@akkea.ca, g-vlaev@ti.com, s-anna@ti.com, sjg@chromium.org,
Martyn Welch
Hi Dhruva,
On mer., mai 29, 2024 at 11:39, Dhruva Gole <d-gole@ti.com> wrote:
> Hi Sjoerd,
>
> On Aug 21, 2023 at 14:20:26 -0400, Tom Rini wrote:
>> On Mon, Aug 21, 2023 at 04:13:32PM +0000, Marcel Ziswiler wrote:
>> > Hi Sjoerd
>> >
>> > On Thu, 2023-06-01 at 08:37 +0200, Sjoerd Simons wrote:
>> > > On Wed, 2023-05-31 at 17:14 -0400, Tom Rini wrote:
>> > > > On Thu, Apr 06, 2023 at 08:55:34PM +0200, Sjoerd Simons wrote:
>> > > >
>> > > > > This series adds more boot sources for the TI am62x. For that the
>> > > > > dts'
>> > > > > are synced from the upstream ti-next git tree (to add usb nodes),
>> > > > > some
>> > > > > dwc3 glue is and finally the default configuration is tuned to add
>> > > > > support for DFU and USB (host and gadget)
>> > > >
>> > > > This seems, conceptually, fine. But as we're getting the TI dts
>> > > > files
>> > > > in sync with the kernel, I'm deferring this version and you'll want
>> > > > to
>> > > > rebase and re-post once everything has settled.
>> > >
>> > > Thanks for the update/hint ;) I also got a few review comments so the
>> > > plan is to include those and repost.. Just my may has been stupidly
>> > > busy causing me to not get around it in the first place, so maybe that
>> > > turned into good timing in the end.
>> >
>> > Any progress on this?
>> >
>> > I still carry your re-based series on top of latest master [1] and USB DFU is working very well on Verdin AM62.
>> >
>> > Thanks!
>> >
>> > [1] https://github.com/ziswiler/u-boot/tree/verdin-am62-usb-support
>>
>> As the am62 files have been re-synced, re-basing this and re-posting for
>> next would be appropriate at this point.
>
> Any updates on this? Do you have plans to rebase and resend this series?
A part of this (USB DFU) has been taken over by Martyn and has been merged:
https://lore.kernel.org/all/171581573300.812585.12291710364879103682.b4-ty@konsulko.com/
>
>
>
> --
> Best regards,
> Dhruva Gole <d-gole@ti.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2024-05-29 9:00 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-06 18:55 [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 1/8] omap: timer: add ti,am654-timer compatibility Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 2/8] arm: mach-k3: am62: Add timer0 id to the dev list Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 3/8] arm: dts: k3-am62: Bump dtsi from linux Sjoerd Simons
2023-04-11 14:17 ` Nishanth Menon
2023-04-06 18:55 ` [PATCH v2 4/8] arm: dts: k3-am625-sk: Enable emmc in SPL Sjoerd Simons
2023-09-19 7:35 ` Sverdlin, Alexander
2023-09-19 11:19 ` Nishanth Menon
2023-09-19 11:33 ` Dhruva Gole
2023-04-06 18:55 ` [PATCH v2 5/8] usb: dwc3: Add dwc3 glue driver for am62 Sjoerd Simons
2023-04-07 13:26 ` Mattijs Korpershoek
2023-04-24 2:25 ` Kunihiko Hayashi
2023-04-06 18:55 ` [PATCH v2 6/8] configs: am62: Add configs for enabling USB in U-Boot Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 7/8] arm: dts: k3-am625-sk: Enable usb ports in u-boot Sjoerd Simons
2023-04-06 18:55 ` [PATCH v2 8/8] configs: am62x_evm_*: Enable USB and DFU support Sjoerd Simons
2023-06-08 21:41 ` Marcel Ziswiler
2023-04-11 5:51 ` [PATCH v2 0/8] Add DFU, emmc and usb boot for TI am62x Ravi Gunasekaran
2023-05-10 7:59 ` Mattijs Korpershoek
2023-05-31 21:14 ` Tom Rini
2023-06-01 6:37 ` Sjoerd Simons
2023-08-21 16:13 ` Marcel Ziswiler
2023-08-21 18:20 ` Tom Rini
2024-05-29 6:09 ` Dhruva Gole
2024-05-29 9:00 ` Mattijs Korpershoek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox