This series of patches is meant to add support for USB Mass Storage on SAM9X60, SAMA7G5 and SAMA5D2 boards and register ohci-at91 driver into Driver Model. In order for this to be achieved, the respective DT nodes have been added, the USB clock has been registered into CCF and the required defconfigs have been added to the boards' defconfig. What is more, in order for the VBUS to stay enabled, a `child_pre_probe` method has been added to overcome the DM core disabling it in `usb_scan_device`: when the generic `device_probe` method is called, the pinctrl is processed once again, undoing whatever changes have been made in our driver's probe method. In order to enable USB on SAMA7G5 the addition of RSTC and USB 2.0 PHY drivers were required.
v1 -> v2: - Additional patch included: [PATCH v2 04/19] clk: at91: pmc: export clock setup to pmc - Updated [PATCH v2 05/19] clk: at91: sam9x60: Add initial setup of UPLL and USBCK rates in concordance with the previously mentioned additional patch - Move ` #include <asm/arch/clk.h>` below `#if !(CONFIG_IS_ENABLED(DM_USB))` to avoid implicit declarations warnings/errors in the OHCI driver v2 -> v3: - Also add USB pinctrl nodes and USB Mass Storage for SAM9X60 Curiosity and remove no longer necessary ifdef in sam9x60 clk driver - Remove no longer required CONFIG_SYS_USB_* configs from the defconfigs and add CONFIG_RESET_AT91 to all defconfigs v3 -> v4: - Remove unnecessary NULL assignment `sama7_phy->sfr = NULL;` in sama7 usb phy probe method Claudiu Beznea (1): clk: at91: pmc: export clock setup to pmc Cristian Birsan (2): ARM: at91: add sama7 SFR definitions usb: ohci-at91: Add `ohci_t` field in `ohci_at91_priv` Sergiu Moga (16): ARM: dts: sam9x60: Add OHCI and EHCI DT nodes clk: at91: Add support for sam9x60 USB clock clk: at91: sam9x60: Register the required clocks for USB clk: at91: sam9x60: Add initial setup of UPLL and USBCK rates usb: ohci-at91: Enable OHCI functionality and register into DM dt-bindings: reset: add sama7g5 definitions dt-bindings: clk: at91: Define additional UTMI related clocks ARM: dts: at91: sama7: Add USB related DT nodes reset: at91: Add reset driver for basic assert/deassert operations phy: at91: Add support for the USB 2.0 PHY's of SAMA7 usb: ohci-at91: Add USB PHY functionality ARM: dts: at91: sama5d2_icp: Add pinctrl nodes for USB related DT nodes ARM: dts: at91: sama5d27_wlsom1_ek: Add pinctrl nodes for USB DT nodes configs: at91: sam9x60ek: Add required configs for the USB command configs: at91: sama5d2: Enable OHCI/EHCI related configs configs: at91: sama7: Enable USB and RESET functionality arch/arm/dts/at91-sam9x60_curiosity.dts | 21 ++ arch/arm/dts/at91-sama5d27_wlsom1_ek.dts | 25 ++ arch/arm/dts/at91-sama5d2_icp.dts | 22 ++ arch/arm/dts/at91-sama7g5ek.dts | 34 +++ arch/arm/dts/sam9x60.dtsi | 18 ++ arch/arm/dts/sam9x60ek.dts | 21 ++ arch/arm/dts/sama7g5.dtsi | 73 ++++++ arch/arm/mach-at91/include/mach/sama7-sfr.h | 59 +++++ configs/sam9x60_curiosity_mmc_defconfig | 8 + configs/sam9x60ek_mmc_defconfig | 9 + configs/sam9x60ek_nandflash_defconfig | 9 + configs/sam9x60ek_qspiflash_defconfig | 9 + configs/sama5d27_giantboard_defconfig | 4 + configs/sama5d27_som1_ek_mmc1_defconfig | 4 + configs/sama5d27_som1_ek_mmc_defconfig | 4 + configs/sama5d27_som1_ek_qspiflash_defconfig | 4 + configs/sama5d27_wlsom1_ek_mmc_defconfig | 5 + .../sama5d27_wlsom1_ek_qspiflash_defconfig | 4 + configs/sama5d2_icp_mmc_defconfig | 8 + configs/sama5d2_icp_qspiflash_defconfig | 4 + configs/sama5d2_ptc_ek_mmc_defconfig | 4 + configs/sama5d2_ptc_ek_nandflash_defconfig | 4 + configs/sama5d2_xplained_emmc_defconfig | 4 + configs/sama5d2_xplained_mmc_defconfig | 4 + configs/sama5d2_xplained_qspiflash_defconfig | 4 + configs/sama5d2_xplained_spiflash_defconfig | 4 + configs/sama7g5ek_mmc1_defconfig | 10 + configs/sama7g5ek_mmc_defconfig | 10 + drivers/clk/at91/Kconfig | 7 + drivers/clk/at91/Makefile | 1 + drivers/clk/at91/clk-sam9x60-usb.c | 156 +++++++++++++ drivers/clk/at91/pmc.c | 42 ++++ drivers/clk/at91/pmc.h | 27 +++ drivers/clk/at91/sam9x60.c | 63 +++++ drivers/clk/at91/sama7g5.c | 48 +--- drivers/phy/Kconfig | 10 + drivers/phy/Makefile | 1 + drivers/phy/phy-sama7-usb.c | 90 ++++++++ drivers/phy/phy-sama7-utmi-clk.c | 202 ++++++++++++++++ drivers/reset/Kconfig | 8 + drivers/reset/Makefile | 1 + drivers/reset/reset-at91.c | 141 ++++++++++++ drivers/sysreset/sysreset_at91.c | 10 +- drivers/usb/host/ohci-at91.c | 215 ++++++++++++++++++ include/dt-bindings/clk/at91.h | 5 + include/dt-bindings/reset/sama7g5-reset.h | 10 + 46 files changed, 1375 insertions(+), 51 deletions(-) create mode 100644 arch/arm/mach-at91/include/mach/sama7-sfr.h create mode 100644 drivers/clk/at91/clk-sam9x60-usb.c create mode 100644 drivers/phy/phy-sama7-usb.c create mode 100644 drivers/phy/phy-sama7-utmi-clk.c create mode 100644 drivers/reset/reset-at91.c create mode 100644 include/dt-bindings/reset/sama7g5-reset.h -- 2.34.1