The USB Host Controller driver 'ohci-at91.c' reads a Special Function
Register - OHCI Interrupt Configuration Register (AT91_SFR_OHCIICR)
for bits SUSPEND_A/B/C. These bits are defined in sama5d2 alone, so
sfr register mapping is done with compatible string "atmel,sama5d2-sfr".
This gives a kernel warning 'failed to find sfr node' with non sama5d2
cpus which is removed here, thus leaving it up to having a proper DTS.

Signed-off-by: Prasanthi Chellakumar <>


The AT91_SFR_OHCIIR register is read for USB suspend and wake
up control. The OHCI driver has a sfr register mapping for sama5d2
alone. The USB suspend proceeds only when there is valid sfr regmap.
So SFR access in boards that it is absent is not required. In such
boards, USB suspend control requests is processed by usb_hub_control().
But there is a kernel warning with non sama5d2 cpus. This patch fixes
the kernel warning, changing to debug message(dev_dbg).
 drivers/usb/host/ohci-at91.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
index af0566d..ce11c47 100644
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
@@ -214,7 +214,7 @@ static int usb_hcd_at91_probe(const struct hc_driver 
        ohci_at91->sfr_regmap = at91_dt_syscon_sfr();
        if (!ohci_at91->sfr_regmap)
-               dev_warn(dev, "failed to find sfr node\n");
+               dev_dbg(dev, "failed to find sfr node\n");
        board = hcd->self.controller->platform_data;
        ohci = hcd_to_ohci(hcd);

Reply via email to