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

Eugen.Hristev at microchip.com Eugen.Hristev at microchip.com
Wed Dec 7 15:56:54 CET 2022


On 12/7/22 15:14, Sergiu Moga wrote:
> 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.
> 
> 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: sam9x60ek: 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
>    configs: at91: sam9x60ek: Add required configs for the USB command
>    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
>    configs: at91: sama7: Enable USB and RESET 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: sama5d2: Enable OHCI/EHCI related configs
> 
>   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/sam9x60ek_mmc_defconfig               |  10 +
>   configs/sam9x60ek_nandflash_defconfig         |  10 +
>   configs/sam9x60ek_qspiflash_defconfig         |  10 +
>   configs/sama5d27_som1_ek_mmc1_defconfig       |   5 +
>   configs/sama5d27_som1_ek_mmc_defconfig        |   5 +
>   configs/sama5d27_som1_ek_qspiflash_defconfig  |   5 +
>   configs/sama5d27_wlsom1_ek_mmc_defconfig      |   6 +
>   .../sama5d27_wlsom1_ek_qspiflash_defconfig    |   5 +
>   configs/sama5d2_icp_mmc_defconfig             |   9 +
>   configs/sama5d2_icp_qspiflash_defconfig       |   9 +
>   configs/sama5d2_ptc_ek_mmc_defconfig          |   5 +
>   configs/sama5d2_ptc_ek_nandflash_defconfig    |   5 +
>   configs/sama5d2_xplained_emmc_defconfig       |   5 +
>   configs/sama5d2_xplained_mmc_defconfig        |   5 +
>   configs/sama5d2_xplained_qspiflash_defconfig  |   5 +
>   configs/sama5d2_xplained_spiflash_defconfig   |   5 +
>   configs/sama7g5ek_mmc1_defconfig              |  13 ++
>   configs/sama7g5ek_mmc_defconfig               |  13 ++
>   drivers/clk/at91/Kconfig                      |   7 +
>   drivers/clk/at91/Makefile                     |   1 +
>   drivers/clk/at91/clk-sam9x60-usb.c            | 156 +++++++++++++
>   drivers/clk/at91/pmc.h                        |  11 +
>   drivers/clk/at91/sam9x60.c                    |  99 +++++++-
>   drivers/phy/Kconfig                           |  10 +
>   drivers/phy/Makefile                          |   1 +
>   drivers/phy/phy-sama7-usb.c                   |  92 ++++++++
>   drivers/phy/phy-sama7-utmi-clk.c              | 202 +++++++++++++++++
>   drivers/reset/Kconfig                         |   8 +
>   drivers/reset/Makefile                        |   1 +
>   drivers/reset/reset-at91.c                    | 143 ++++++++++++
>   drivers/sysreset/sysreset_at91.c              |  10 +-
>   drivers/usb/host/ohci-at91.c                  | 214 ++++++++++++++++++
>   include/dt-bindings/clk/at91.h                |   5 +
>   include/dt-bindings/reset/sama7g5-reset.h     |  10 +
>   41 files changed, 1342 insertions(+), 10 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
> 


Hi Sergiu,

When enabling the configs, I get plenty of errors like this in lots of 
boards:

./arch/arm/include/asm/arch/clk.h: In function ‘get_h32mxdiv’:
./arch/arm/include/asm/arch/clk.h:65:9: warning: implicit declaration of 
function ‘readl’ [-Wimplicit-function-declaration]
    65 |  return readl(&pmc->mckr) & AT91_PMC_MCKR_H32MXDIV;
       |         ^~~~~

This commit causes the problem :
configs: at91: sama5d2: Enable OHCI/EHCI related config

But I assume there is a problem with the driver since the commit only 
enables it to be built.

Can you have a look please ?

Eugen


More information about the U-Boot mailing list