exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT
authorandrey.konovalov@linaro.org <andrey.konovalov@linaro.org>
Tue, 22 Apr 2014 17:23:49 +0000 (21:23 +0400)
committerMarek Vasut <marex@denx.de>
Wed, 30 Apr 2014 08:30:57 +0000 (10:30 +0200)
commite6e493f341b0488843efe0c5b2c1274997fbbfe8
tree3f7ac1ac539ecbfa6354c630cacdf45d5930b173
parent078d7302ac9263e582d625c377c8289ae07436b7
exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT

Commit 4a271cb1b4ff doesn't take into account that fdtdec_setup_gpio()
returns success when the gpio passed to it is FDT_GPIO_NONE (no
gpio node found in the fdtdec_decode_gpio() call). This results in
calling gpio_direction_output() on invalid gpio. For this reason
executing "usb start" command on Arndale causes data abort in the
ehci-exynos driver.

Add the fdt_gpio_isvalid() check to fix that problem.

Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>
Cc: Julius Werner <jwerner@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Marek Vasut <marex@denx.de>
drivers/usb/host/ehci-exynos.c
drivers/usb/host/xhci-exynos5.c