[PATCH v5 00/19] Add USB on SAM9X60, SAMA7G5 and SAMA5D2 boards

Sergiu Moga sergiu.moga at microchip.com
Thu Dec 22 11:53:39 CET 2022


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


v4 -> v5:
- Fixed some warnings


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            | 157 +++++++++++++
 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, 1376 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



More information about the U-Boot mailing list