From patchwork Wed Dec 7 13:14:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergiu Moga X-Patchwork-Id: 1713275 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=microchip.com header.i=@microchip.com header.a=rsa-sha256 header.s=mchp header.b=cqEoWfTB; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4NRyWC57cHz23yq for ; Thu, 8 Dec 2022 00:17:27 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7725485454; Wed, 7 Dec 2022 14:17:08 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=microchip.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=microchip.com header.i=@microchip.com header.b="cqEoWfTB"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 05D298513E; Wed, 7 Dec 2022 14:17:06 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id F2C068527B for ; Wed, 7 Dec 2022 14:16:47 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=microchip.com Authentication-Results: phobos.denx.de; spf=fail smtp.mailfrom=Sergiu.Moga@microchip.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1670419012; x=1701955012; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=12e46Vgy/RBSsF2MzEScipGWBmDPivA56M8CIF0tp2A=; b=cqEoWfTBYfqJs40h0TW9iVSZV22ILvpGLHXPY5vdcTJXnhgkbsjVjbaC MmeGLiIjWppl5SolgY7RUpe58kzMXJR7kfxWan2/7l1oVHKGSu/bGL54Y gt17dPuRpMyRaKO3rGbYnfPOVIPtfWATLYoWTbE6kVDzKcB0a2BI+nPf9 VV7THhZ+1dpUuhnnwL/cQoCkV3KRpIsjTzn0TQbUQCcWZWtDpwRdrCluI 0WpGlwUHN9sPaXPNOCxmJBPHP/gk6TwFeGR/g/qrftZtp7lPG+hBgyyDG FUsHkZRO02uooDGt7G/TqGLg1HZzAioLkN7Y/wmP/b1hFCdnbX+zPIGD1 A==; X-IronPort-AV: E=Sophos;i="5.96,225,1665471600"; d="scan'208";a="126939348" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa6.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 07 Dec 2022 06:16:41 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12; Wed, 7 Dec 2022 06:16:41 -0700 Received: from ROB-ULT-M68701.mchp-main.com (10.10.115.15) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.12 via Frontend Transport; Wed, 7 Dec 2022 06:16:36 -0700 From: Sergiu Moga To: , , , , , , , , , , , , , , , , , , , , , , , CC: Subject: [PATCH 00/18] Add USB on SAM9X60, SAMA7G5 and SAMA5D2 boards Date: Wed, 7 Dec 2022 15:14:29 +0200 Message-ID: <20221207131447.40590-1-sergiu.moga@microchip.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean 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