usb: host: npcm7xx-ehci: add Arbel NPCM8XX support and remove reset sequence
Subsystems (4)
Tomer Maimon
maintainerv2 cover usb: host: npcm7xx-ehci: add Arbel NPCM8XX support and remove reset sequence
This patch set
- Adds Arbel NPCM8XX USB EHCI host controller support to USB EHCI driver.
- Remove the USB reset sequence because it is done in the NPCM reset driver.
The NPCM USB host driver tested on the NPCM845 evaluation board.
Addressed comments from:
- Arnd Bergmann : https://lore.kernel.org/all/CAK8P3a2PM9pe5tN=N7BMdkwZZKNv9Wa+CEFCyQT_6Ur=O7P5pQ@mail.gmail.com/
- Alan Stern: https://lore.kernel.org/all/[email protected]/
Changes since version 1:
- Remove NPCM reset configuration dependency.
- Remove unused definitions.
Changes since version 1:
- Modify dt-binding compatible property.
- Use device_get_match_data function instead of_match_node function.
Tomer Maimon (3):
usb: host: npcm7xx: remove USB EHCI host reset sequence
dt-bindings: usb: npcm7xx: Add npcm845 compatible
USB: host: npcm: Add NPCM8XX support
.../devicetree/bindings/usb/npcm7xx-usb.txt | 4 +- drivers/usb/host/Kconfig | 8 +-- drivers/usb/host/ehci-npcm7xx.c | 50 ------------------- 3 files changed, 7 insertions(+), 55 deletions(-)
Signature · 1 line
2.33.0
Tomer Maimon
maintainerPATCH v2 1/3 usb: host: npcm7xx: remove USB EHCI host reset sequence
Remove USB EHCI host controller reset sequence from NPCM7XX USB EHCI host probe function because it is done in the NPCM reset driver.
--- drivers/usb/host/ehci-npcm7xx.c | 50 --------------------------------- 1 file changed, 50 deletions(-)
drivers/usb/host/ehci-npcm7xx.c +0 -50
@@ -22,19 +22,9 @@#include "ehci.h" -#include <linux/regmap.h> -#include <linux/mfd/syscon.h> -#define DRIVER_DESC "EHCI npcm7xx driver"static const char hcd_name[] ="npcm7xx-ehci" ; - -#define USB2PHYCTL_OFFSET 0x144 - -#define IPSRST2_OFFSET 0x24 -#define IPSRST3_OFFSET 0x34 - -static struct hc_driver __read_mostly ehci_npcm7xx_hc_driver;static int __maybe_unused ehci_npcm7xx_drv_suspend (struct device *dev)
@@ -60,52 +50,12 @@ static int npcm7xx_ehci_hcd_drv_probe(struct platform_device *pdev) {struct usb_hcd *hcd;struct resource *res; -struct regmap *gcr_regmap; -struct regmap *rst_regmap;const struct hc_driver *driver = &ehci_npcm7xx_hc_driver;int irq;int retval;dev_dbg (&pdev->dev,"initializing npcm7xx ehci USB Controller\n" ); - gcr_regmap =syscon_regmap_lookup_by_compatible ("nuvoton,npcm750-gcr" ); -if (IS_ERR (gcr_regmap)) { -dev_err (&pdev->dev,"%s: failed to find nuvoton,npcm750-gcr\n" , - __func__); -return PTR_ERR (gcr_regmap); - } - - rst_regmap =syscon_regmap_lookup_by_compatible ("nuvoton,npcm750-rst" ); -if (IS_ERR (rst_regmap)) { -dev_err (&pdev->dev,"%s: failed to find nuvoton,npcm750-rst\n" , - __func__); -return PTR_ERR (rst_regmap); - } - -/********* phy init ******/ -// reset usb host -regmap_update_bits (rst_regmap,IPSRST2_OFFSET , - (0x1 <<26 ), (0x1 <<26 )); -regmap_update_bits (rst_regmap,IPSRST3_OFFSET , - (0x1 <<25 ), (0x1 <<25 )); -regmap_update_bits (gcr_regmap,USB2PHYCTL_OFFSET , - (0x1 <<28 ),0 ); - -udelay (1 ); - -// enable phy -regmap_update_bits (rst_regmap,IPSRST3_OFFSET , - (0x1 <<25 ),0 ); - -udelay (50 );// enable phy - -regmap_update_bits (gcr_regmap,USB2PHYCTL_OFFSET , - (0x1 <<28 ), (0x1 <<28 )); - -// enable host -regmap_update_bits (rst_regmap,IPSRST2_OFFSET , - (0x1 <<26 ),0 ); -if (usb_disabled ())return -ENODEV ;
Signature · 1 line
2.33.0
Tomer Maimon
maintainerPATCH v2 2/3 dt-bindings: usb: npcm7xx: Add npcm845 compatible
In reply to Tomer MaimonAdd a compatible string for Nuvoton BMC NPCM845 USB EHCI host controller.
--- Documentation/devicetree/bindings/usb/npcm7xx-usb.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/usb/npcm7xx-usb.txt +3 -1
@@ -5,7 +5,9 @@ EHCI: ----- Required properties: -- compatible: "nuvoton,npcm750-ehci" +- compatible: should be one of + "nuvoton,npcm750-ehci" + "nuvoton,npcm845-ehci" - interrupts: Should contain the EHCI interrupt - reg: Physical address and length of the register set for the device
Signature · 1 line
2.33.0
Tomer Maimon
maintainerPATCH v2 3/3 USB: host: npcm: Add NPCM8XX support
In reply to Tomer MaimonModify NPCM USB EHCI host controller configuration to support all NPCM BMC SoC.
--- drivers/usb/host/Kconfig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/usb/host/Kconfig +4 -4
@@ -205,12 +205,12 @@ config USB_EHCI_FSL Variation of ARC USB block used in some Freescale chips. config USB_EHCI_HCD_NPCM7XX - tristate "Support for Nuvoton NPCM7XX on-chip EHCI USB controller" - depends on (USB_EHCI_HCD && ARCH_NPCM7XX) || COMPILE_TEST - default y if (USB_EHCI_HCD && ARCH_NPCM7XX) + tristate "Support for Nuvoton NPCM on-chip EHCI USB controller" + depends on (USB_EHCI_HCD && ARCH_NPCM) || COMPILE_TEST + default y if (USB_EHCI_HCD && ARCH_NPCM) help Enables support for the on-chip EHCI controller on - Nuvoton NPCM7XX chips. + Nuvoton NPCM chips. config USB_EHCI_HCD_OMAP tristate "EHCI support for OMAP3 and later chips"
Signature · 1 line
2.33.0