]> git.karo-electronics.de Git - karo-tx-uboot.git/log
karo-tx-uboot.git
9 years agodm: core: Add a uclass pre_probe() method for devices
Simon Glass [Thu, 5 Mar 2015 19:25:22 +0000 (12:25 -0700)]
dm: core: Add a uclass pre_probe() method for devices

Some uclasses want to set up a device before it is probed. Add a method
for this.

An example is with PCI, where a PCI uclass wants to set up its private
data for later use. This allows the device's uclass() method to make calls
whcih use that data (for example, read PCI memory regions from device
tree, set up bus numbers).

Signed-off-by: Simon Glass <sjg@chromium.org>
9 years agodm: core: Mark device as active before calling its probe() method
Simon Glass [Thu, 5 Mar 2015 19:25:21 +0000 (12:25 -0700)]
dm: core: Mark device as active before calling its probe() method

At present the device is not active when the probe() method is called. But
some probe() methods want to set up the device and this can involve
accessing it through normal methods. For example a PCI bus may wish to
set up its PCI parameters using calls to pci_hose_write_config_dword() and
similar.

At present this does not work because every such call within the probe()
method sees that the device is not active and attempts to probe it.

Already we mark the device as probed before calling the uclass post_probe()
method. This is a subtle change but I believe the new approach is better.
Since the scope of the change is only the probe() method and all its callees
it should still be within the control of the board author.

Signed-off-by: Simon Glass <sjg@chromium.org>
9 years agodm: core: Add dev_get_uclass_priv() to access uclass private data
Simon Glass [Thu, 5 Mar 2015 19:25:20 +0000 (12:25 -0700)]
dm: core: Add dev_get_uclass_priv() to access uclass private data

Add a convenience function to access the private data that a uclass stores
for each of its devices. Convert over most existing uses for consistency
and to provide an example for others.

Signed-off-by: Simon Glass <sjg@chromium.org>
9 years agofdt: Tighten up error handling in fdtdec_get_pci_addr()
Simon Glass [Thu, 5 Mar 2015 19:25:19 +0000 (12:25 -0700)]
fdt: Tighten up error handling in fdtdec_get_pci_addr()

This function returns -ENOENT when the property is missing (which the caller
might forgive) and also when the property is present but incorrectly
formatted (which many callers would like to report).

Update the error return value to allow these different situations to be
distinguished.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agoCorrect map_sysmem() logic in do_mem_mw()
Simon Glass [Thu, 5 Mar 2015 19:25:18 +0000 (12:25 -0700)]
Correct map_sysmem() logic in do_mem_mw()

This function does not unmap what it maps. Correct it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agox86: Split up arch_cpu_init()
Simon Glass [Thu, 5 Mar 2015 19:25:17 +0000 (12:25 -0700)]
x86: Split up arch_cpu_init()

At present we do more in this function than we should. Split out the
post-driver-model part into a separate function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agodm: Add a new CPU init function which can use driver model
Simon Glass [Thu, 5 Mar 2015 19:25:16 +0000 (12:25 -0700)]
dm: Add a new CPU init function which can use driver model

Since driver model is set up after arch_cpu_init(), that function cannot
use drivers. Add a new arch_cpu_init_dm() function which is called
immediately after driver model is ready, and can reference devices.

This can be used to probe essential devices for the CPU.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agox86: Add a x86_ prefix to the x86-specific PCI functions
Simon Glass [Thu, 5 Mar 2015 19:25:15 +0000 (12:25 -0700)]
x86: Add a x86_ prefix to the x86-specific PCI functions

These functions currently use a generic name, but they are for x86 only.
This may introduce confusion and prevents U-Boot from using these names
more widely.

In fact it should be possible to remove these at some point and use
generic functions, but for now, rename them.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agofdt: Export fdtdec_get_number() for general use
Simon Glass [Thu, 5 Mar 2015 19:25:14 +0000 (12:25 -0700)]
fdt: Export fdtdec_get_number() for general use

This function is missing a prototype but is more widey useful. Add it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
9 years agosandbox: Update device tree 'reg' properties for I2C and SPI
Simon Glass [Thu, 5 Mar 2015 19:25:13 +0000 (12:25 -0700)]
sandbox: Update device tree 'reg' properties for I2C and SPI

We should have a size value for these. Add one in each case. This will
be needed for PCI.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agox86: Add support for panther (Asus Chromebox)
Simon Glass [Mon, 2 Mar 2015 19:40:54 +0000 (12:40 -0700)]
x86: Add support for panther (Asus Chromebox)

Support running U-Boot as a coreboot payload. Tested peripherals include:

- Video (HDMI and DisplayPort)
- SATA disk
- Gigabit Ethernet
- SPI flash

USB3 does not work. This may be a problem with the USB3 PCI driver or
something in the USB3 stack and has not been investigated So far this is
disabled. The SD card slot also does not work.

For video, coreboot will need to run the OPROM to set this up.

With this board, bare support (running without coreboot) is not available
as yet.

Signed-off-by: Simon Glass <sjg@chromium.org>
9 years agox86: Move common Chromebook config into a separate file
Simon Glass [Mon, 2 Mar 2015 19:40:53 +0000 (12:40 -0700)]
x86: Move common Chromebook config into a separate file

Since Chromebooks mostly have similar configuration, put it in a common
file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agox86: spi: Add support for lynxpoint
Simon Glass [Mon, 2 Mar 2015 19:40:52 +0000 (12:40 -0700)]
x86: spi: Add support for lynxpoint

Add Lynxpoint to the driver so that the Asus Chromebox can be supported.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
9 years agox86: pci: Add PCI IDs for lynxpoint
Simon Glass [Mon, 2 Mar 2015 19:40:51 +0000 (12:40 -0700)]
x86: pci: Add PCI IDs for lynxpoint

Add some new device IDs used by this haswell-based chipset.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agox86: video: Allow keyboard presence to be controlled by device tree
Simon Glass [Mon, 2 Mar 2015 19:40:50 +0000 (12:40 -0700)]
x86: video: Allow keyboard presence to be controlled by device tree

At present a VGA console assumes a keyboard unless a CONFIG option is set.
This difference can be dealt with by a device tree option, allowing boards
that are otherwise the same to use the same configuration.

Signed-off-by: Simon Glass <sjg@chromium.org>
9 years agox86: Support machines with >4GB of RAM
Simon Glass [Mon, 2 Mar 2015 19:40:49 +0000 (12:40 -0700)]
x86: Support machines with >4GB of RAM

Some systems have more than 4GB of RAM. U-Boot can only place things below
4GB so any memory above that should not be used. Ignore any such memory so
that the memory size will not exceed the maximum.

This prevents gd->ram_size exceeding 4GB which causes problems for PCI
devices which use DMA.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoti: dwc3: Enable clocks in enable_basic_clocks() in hw_data.c
Kishon Vijay Abraham I [Thu, 16 Apr 2015 11:47:00 +0000 (17:17 +0530)]
ti: dwc3: Enable clocks in enable_basic_clocks() in hw_data.c

Commit d3cfcb3 (ARM: DRA7: Enable clocks for USB OTGSS and USB PHY)
changed the member names of prcm_regs from cm_l3init_usb_otg_ss_clkctrl
to cm_l3init_usb_otg_ss1_clkctrl and from cm_coreaon_usb_phy_core_clkctrl
to cm_coreaon_usb_phy1_core_clkctrl in order to differentiate between
the two dwc3 controllers present in dra7xx/am43xx and enabled these
clocks in enable_basic_clocks() in hw_data.c. However these clocks
continued to be enabled in board files/driver files for dwc3 host
mode functionality causing compilation break with few configs.

Fixed it here by making all the clocks enabled in enable_basic_clocks()
and removing it from board files/driver files here.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
9 years agoARMv7 TLB: Fixed TTBR0 and Table Descriptors to allow caching
Bryan Brinsko [Tue, 24 Mar 2015 16:25:12 +0000 (11:25 -0500)]
ARMv7 TLB: Fixed TTBR0 and Table Descriptors to allow caching

The TTBR0 register and Table Descriptors of the ARMv7 TLB weren't being
properly set to allow for the configuration specified caching modes to
be active over DRAM. This commit fixes those issues.

Signed-off-by: Bryan Brinsko <bryan.brinsko@rockwellcollins.com>
9 years agoARM: cpu: Add ARMv7 barrier operations support
Valentine Barshak [Fri, 20 Mar 2015 15:16:17 +0000 (18:16 +0300)]
ARM: cpu: Add ARMv7 barrier operations support

This enables ARMv7 barrier operations support when
march=armv7-a is enabled.

Using CP15 barriers causes U-Boot bootm command crash when
transferring control to the loaded image on Renesas R8A7794 Cortex A7 CPU.
Using ARMv7 barrier operations instead of the deprecated CP15 barriers
helps to avoid these issues.

Signed-off-by: Valentine Barshak <valentine.barshak+renesas@cogentembedded.com>
Signed-off-by: Vladimir Barinov <vladimir.barinov+renesas@cogentembedded.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
9 years agofix ARM DCC support for ARMv7 based cores (e.g. CortexA)
Alexander Merkle [Thu, 19 Mar 2015 17:37:20 +0000 (18:37 +0100)]
fix ARM DCC support for ARMv7 based cores (e.g. CortexA)

Signed-off-by: Alexander Merkle <alexander.merkle@lauterbach.com>
9 years agofix ARM DCC support for ARMv7 based cores (e.g. CortexA)
Alexander Merkle [Thu, 19 Mar 2015 17:37:19 +0000 (18:37 +0100)]
fix ARM DCC support for ARMv7 based cores (e.g. CortexA)

Signed-off-by: Alexander Merkle <alexander.merkle@lauterbach.com>
9 years agoArmv8: Initializing CNTVOFF_EL2
David Feng [Mon, 2 Mar 2015 07:29:34 +0000 (15:29 +0800)]
Armv8: Initializing CNTVOFF_EL2

Linux-arm64 require that CNTVOFF_EL2 should be programmed with
a consistent value on all cpus. Initializing CNTVOFF_EL2 at state
transition instead of start.S could prevent potential different value
on cpus if ATF exist and u-boot runs at only one cpu.

Signed-off-by: David Feng <fenghua@phytium.com.cn>
9 years agoarm: implement find_next_zero_bit function
Vitaly Andrianov [Thu, 5 Feb 2015 16:24:46 +0000 (11:24 -0500)]
arm: implement find_next_zero_bit function

This commit copies implementation of the find_next_zero_bit() from
git://git.denx.de/u-boot.git/arch/mips/include/asm/bitops.h. v2014.07

The function is required to enable MCAST_TFTP support for ARM platforms.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
9 years agosunxi: Complete i2c support for each supported platform
Paul Kocialkowski [Fri, 10 Apr 2015 21:09:52 +0000 (23:09 +0200)]
sunxi: Complete i2c support for each supported platform

Sunxi platforms come with at least 3 TWI (I2C) controllers and some platforms
even have up to 5. This adds support for every controller on each supported
platform, which is especially useful when using expansion ports on single-board-
computers.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agoi2c: mvtwsi: Support for up to 4 different controllers
Paul Kocialkowski [Fri, 10 Apr 2015 21:09:51 +0000 (23:09 +0200)]
i2c: mvtwsi: Support for up to 4 different controllers

Orion5x, Kirkwood and Armada XP platforms come with a single TWSI (I2C) MVTWSI
controller. However, other platforms using MVTWSI may come with more: this is
the case on Allwinner (sunxi) platforms, where up to 4 controllers can be found
on the same chip.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Heiko Schocher <hs@denx.de>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: iNet 3F support
Paul Kocialkowski [Sun, 12 Apr 2015 20:22:21 +0000 (22:22 +0200)]
sunxi: iNet 3F support

The iNet 3F is an A10 tablet with 1GiB RAM and a 1024x768 screen.

Also see: http://linux-sunxi.org/INet_3F

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: iNet 3W support
Paul Kocialkowski [Sun, 12 Apr 2015 20:22:20 +0000 (22:22 +0200)]
sunxi: iNet 3W support

The iNet 3W is an A10 tablet with 1GiB RAM and a 1024x768 screen.

Also see: http://linux-sunxi.org/INet_3W

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Proper iNet board config naming
Paul Kocialkowski [Sun, 12 Apr 2015 20:22:19 +0000 (22:22 +0200)]
sunxi: Proper iNet board config naming

The official name for the iNet manufacturer is iNet with a lowercase i and an
uppercase N.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Michal Suchanek <hramrach@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Removed dram files cleanup in MAINTAINERS
Paul Kocialkowski [Sun, 12 Apr 2015 20:22:18 +0000 (22:22 +0200)]
sunxi: Removed dram files cleanup in MAINTAINERS

A few dram files were still listed as maintained even though they were removed
some time ago

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Serial number support, obtained from SID bits
Paul Kocialkowski [Sat, 28 Mar 2015 17:35:35 +0000 (18:35 +0100)]
sunxi: Serial number support, obtained from SID bits

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: A20-OLinuXino-Lime2 USB0 VBUS detect and enable pins
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:48 +0000 (11:19 +0200)]
sunxi: A20-OLinuXino-Lime2 USB0 VBUS detect and enable pins

This allows enabling MUSB (on the OTG port).

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Cubieboard2 mmc0 card-detect pin
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:47 +0000 (11:19 +0200)]
sunxi: Cubieboard2 mmc0 card-detect pin

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: A20-OLinuXino-Lime2 mmc0 card-detect pin
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:46 +0000 (11:19 +0200)]
sunxi: A20-OLinuXino-Lime2 mmc0 card-detect pin

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Yones Toptech BD1078 mmc0 and mmc1 card-detect pins
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:45 +0000 (11:19 +0200)]
sunxi: Yones Toptech BD1078 mmc0 and mmc1 card-detect pins

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Ainol AW1 mmc0 card-detect pin
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:44 +0000 (11:19 +0200)]
sunxi: Ainol AW1 mmc0 card-detect pin

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Ampe A76 mmc0 card-detect pin
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:43 +0000 (11:19 +0200)]
sunxi: Ampe A76 mmc0 card-detect pin

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: TZX-Q8-713B7 mmc0 card-detect pin
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:42 +0000 (11:19 +0200)]
sunxi: TZX-Q8-713B7 mmc0 card-detect pin

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: axp221: Use vbus-available rather then vbus-usable for vbus-detect
Hans de Goede [Fri, 27 Mar 2015 20:40:20 +0000 (21:40 +0100)]
sunxi: axp221: Use vbus-available rather then vbus-usable for vbus-detect

vbus-usable may not get set if power is provided through both the power barrel
connector and external 5v is also present on the otg connector, at least on
boards where vbus is also controlled through the axp221-pmic.

One way to reproduce this is to bootup an Ippo-q8h board with a usb-host
cable plugged into the otg (so that it will get powered), then unplug the
usb-host cable and plug in a charger, and then do "reset" on the u-boot
console, vbus-usable will then report 0, leading to uboot trying to provide
power to the otg port even though external 5v is present, this commit fixes
this.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: usbc: Wait for vbus to fall after disabling it
Hans de Goede [Fri, 27 Mar 2015 20:46:00 +0000 (21:46 +0100)]
sunxi: usbc: Wait for vbus to fall after disabling it

When u-boot boots the board may be powering vbus, we turn off vbus in
sunxi_usbc_request_resources, if we are too quick with reading vusb-detect
after this we may see a residual charge and assume we've an external vusb
connected even though we do not. So when we see an external vusb wait a bit
and try again.

Without this when dealing with a pmic controller vbus and doing "reset" on
the u-boot console the musb host will only init once every other boot, because
the other boot it thinks an external vbus is present, this commit fixes this.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: usbc: Initialize vusb value on request_resources
Hans de Goede [Fri, 27 Mar 2015 20:57:54 +0000 (21:57 +0100)]
sunxi: usbc: Initialize vusb value on request_resources

On boards which use the pmic to enable/disable vbus on the otg port, the
vbus value is not reset to 0 on reset, as reset only resets the SoC and not
the pmic, so explicitly set vbus to 0 on init (request_resources) by moving
the gpio_direction_output call into request_resources.

For consistency also move the gpio_direction_input call for vbus-detect into
request_resources.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agopower: axp209: Registers definitions in header
Paul Kocialkowski [Sun, 22 Mar 2015 17:08:21 +0000 (18:08 +0100)]
power: axp209: Registers definitions in header

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agopower: axp152: Registers definitions in header
Paul Kocialkowski [Sun, 22 Mar 2015 17:08:20 +0000 (18:08 +0100)]
power: axp152: Registers definitions in header

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Yones Toptech BD1078 support
Paul Kocialkowski [Sun, 22 Mar 2015 17:12:24 +0000 (18:12 +0100)]
sunxi: Yones Toptech BD1078 support

The Yones Toptech BD1078 is an A20 based 10" tablet with a 1024x600 lcd screen,
volume up/down and back buttons, headphones jack, mini hdmi, micro usb (otg),
micro usb (host), external micro-sd slot and a separate internal micro-sd slot.

Also see: http://linux-sunxi.org/Yones_Toptech_BD1078

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Complete mmc pin mux for each supported platform, configured with Kconfig
Paul Kocialkowski [Sun, 22 Mar 2015 17:12:23 +0000 (18:12 +0100)]
sunxi: Complete mmc pin mux for each supported platform, configured with Kconfig

Sunxi platforms have different possible mmc pin mux setups (except for mmc0),
which are different across platforms.

This lets users configure which is used through the CONFIG_MMC*_PINS Kconfig
options. This is especially relevant when a second (in addition to mmc0) port
is used and CONFIG_MMC_SUNXI_SLOT_EXTRA is enabled.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: GPIO pin mux hardware-feature-specific function index defines
Paul Kocialkowski [Sun, 22 Mar 2015 17:12:22 +0000 (18:12 +0100)]
sunxi: GPIO pin mux hardware-feature-specific function index defines

Each hardware feature exposed through the GPIO pin mux is usually using the same
function index (for a given port), so there is no need to define one value per
pin: one value per hardware feature per port is sufficient, avoids duplication
and makes everything easier to understand.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Ainol AW1 support
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:14 +0000 (18:07 +0100)]
sunxi: Ainol AW1 support

The Ainol AW1 is an A20 based tablet with a 800x480 lcd screen, sdio wifi,
volume up/down and home buttons, micro-sd slot, micro usb (otg), headphones
connector and a SPCI modem connector.

Also see: http://linux-sunxi.org/Ainol_AW1

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: USB download gadget cable detection
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:13 +0000 (18:07 +0100)]
sunxi: USB download gadget cable detection

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: common VBUS detection logic in usbc
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:12 +0000 (18:07 +0100)]
sunxi: common VBUS detection logic in usbc

VBUS detection could be needed not only by the musb code (to prevent host mode),
but also by e.g. gadget drivers to start only when a cable is connected.

In addition, this allows more flexibility in vbus detection, as it could easily
be extended to other USBC indexes. Eventually, this would help making musb
support independent from a hardcoded USB controller index (0).

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agopower: axp209: VBUS detection support
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:11 +0000 (18:07 +0100)]
power: axp209: VBUS detection support

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: usb: Drop AXP-sepcific VBUS detection and drive logic
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:10 +0000 (18:07 +0100)]
sunxi: usb: Drop AXP-sepcific VBUS detection and drive logic

VBUS detection and enable is now be used with virtual AXP GPIOs, so all the USB
code has to use GPIO in every case and let sunxi_gpio do the heavy lifting.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agopower: axp221: Virtual VBUS detect and enable GPIOs to replace separate logic
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:09 +0000 (18:07 +0100)]
power: axp221: Virtual VBUS detect and enable GPIOs to replace separate logic

This converts the VBUS detection and enable logic to GPIO instead of separate
axp functions and checks that have to be used aside usual GPIO functions.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: gpio: Indentation fix
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:08 +0000 (18:07 +0100)]
sunxi: gpio: Indentation fix

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosun6i: Add support for the Mixtile LOFT-Q board
Han Pengfei [Thu, 12 Mar 2015 03:13:02 +0000 (11:13 +0800)]
sun6i: Add support for the Mixtile LOFT-Q board

The Mixtile LOFT-Q is an A31 based board with 2G RAM, 8G EMMC, sdio wifi,
1Gbit ethernet, HDMI display, toslink audio plug, 4 USB2.0 port, external
USB2SATA connector, sd card plug, 3x60 external fpic expansion connector,
NXP JN5168 zigbee gw, remote support.

Also see http://focalcrest.com/en/pc.html#pro02

Signed-off-by: Han Pengfei <pengphei@sina.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agofastboot: Proper download gadget unregister and clear when cable is missing
Paul Kocialkowski [Sat, 28 Mar 2015 17:22:49 +0000 (18:22 +0100)]
fastboot: Proper download gadget unregister and clear when cable is missing

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
9 years agofastboot: add support for reboot-bootloader command
Alexey Firago [Wed, 25 Feb 2015 14:10:47 +0000 (17:10 +0300)]
fastboot: add support for reboot-bootloader command

The "fastboot reboot-bootloader" command is defined to
re-enter into fastboot mode after rebooting into
bootloader. This command is usually used after updating
bootloader via fastboot.

This commit implements only a generic side of the
command - setting of the reset flag and then resetting.
Setting of the reset flag is implemented using __weak
fb_set_reboot_flag() function. The actual setting and
checking of the reset flag should be implemented by
a boot script and/or board/SoC specific code.

Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
Tested-by: Steve Rae <srae@broadcom.com>
[Test HW: bcm28155_ap board]

9 years agofastboot: check for alias when looking up partition by name
Michael Scott [Wed, 11 Mar 2015 17:02:31 +0000 (10:02 -0700)]
fastboot: check for alias when looking up partition by name

Implement an alias name check for devices where GPT limitations prevent
user-friendly partition names such as "boot", "system" and "cache". Or,
where the actual partition name doesn't match a standard partition name
used commonly with fastboot.

To set an alias, add an environment setting as follows:
fastboot_partition_alias_<alias partition name>=<actual partition name>

Example: fastboot_partition_alias_boot=LNX

Signed-off-by: Michael Scott <michael.scott@linaro.org>
Acked-by: Steve Rae <srae@broadcom.com>
Cc: Steve Rae <srae@broadcom.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
9 years agodfu: cmd: trigger watchdog before calling usb_gadget_handle_interrupts
Heiko Schocher [Tue, 14 Apr 2015 07:53:13 +0000 (09:53 +0200)]
dfu: cmd: trigger watchdog before calling usb_gadget_handle_interrupts

trigger watchdog before calling usb_gadget_handle_interrupts()
This prevents board resets when calling dfu command on boards
which have a watchdog.

Signed-off-by: Heiko Schocher <hs@denx.de>
[ Reedition by Lukasz Majewski <l.majewski@samsung.com> to apply to
v2014.04 release ]

9 years agocmd_usb_mass_storage: Use 'USB Mass Storage' in the help text
Fabio Estevam [Sat, 28 Feb 2015 18:11:46 +0000 (15:11 -0300)]
cmd_usb_mass_storage: Use 'USB Mass Storage' in the help text

USB Mass Storage is the standard name, so let's use it here.

Suggested-by: Soeren Moch <smoch@web.de>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Marek Vasut <marex@denx.de>
9 years agousb: gadget: thor: Claim EP after allocating it in thor gadget
Marek Szyprowski [Tue, 3 Mar 2015 16:32:16 +0000 (17:32 +0100)]
usb: gadget: thor: Claim EP after allocating it in thor gadget

Storing thor device struct as an EP private data. It is necessary for
DWC3 operation.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agousb: dwc3: Correct clean up code for requests
Lukasz Majewski [Tue, 3 Mar 2015 16:32:15 +0000 (17:32 +0100)]
usb: dwc3: Correct clean up code for requests

For u-boot dwc3 driver the scatter gather list support has been removed
from original linux code. It is correct, since we try to send one request
at a time.
However, the cleanup left spurious break, which caused early exit from
loop at dwc3_cleanup_done_reqs() function. As a result the dwc3_gadget_giveback()
wasn't called and caused USB Mass Storage to hang.

This commit removes this problem and refactor the code to remove superfluous
do { } while(1) loop.

Test HW: Odroid XU3 (with ./test/ums/ums_gadget_test.sh)

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: gadget: Set non EP0 max packet limit to 512B
Lukasz Majewski [Tue, 3 Mar 2015 16:32:14 +0000 (17:32 +0100)]
usb: dwc3: gadget: Set non EP0 max packet limit to 512B

Commit "drivers/dwc3: add a workaround for too small OUT requests"
sets max packet for OUT requests when transfer is smaller.

Until this change the default maxpacket for non EP0 EPs was 1024. This is
too much, since UMS LBA size is 512B

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: gadget: Set all ctrl fields of Transfer Control Blocks (TRB) to be LST
Lukasz Majewski [Tue, 3 Mar 2015 16:32:13 +0000 (17:32 +0100)]
usb: dwc3: gadget: Set all ctrl fields of Transfer Control Blocks (TRB) to be LST

It turned out that current dwc3 gadget code is preparing multiple TRBs
for a transfer. Unfortunately, when multiple requests are in the same
queue, only for the last one the LST (last) ctrl bit is set.

Due to that dwc3 HW executes all TRBs up till the one marked as last.
Unfortunately, UMS requires call of ->complete callback after any send TRB.
This is the reason for "hangs" in executing UMS.

This code simplifies this situation and set each TRB's ctrl field bit to be
last (LST bit).

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: optimize interrupt loop
Marek Szyprowski [Tue, 3 Mar 2015 16:32:12 +0000 (17:32 +0100)]
usb: dwc3: optimize interrupt loop

There is no point in calling dwc3_thread_interrupt() if no event is
pending. There is also no point in flushing event cache in EVERY loop
iteration.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agousb: dwc3: gadget: add common endpoint configuration for dwc3 udc driver
Marek Szyprowski [Tue, 3 Mar 2015 16:32:11 +0000 (17:32 +0100)]
usb: dwc3: gadget: add common endpoint configuration for dwc3 udc driver

This patch adds code to select standard, commonly used usb endpoint
configuration (ep1in-bulk, ep2out-bulk, ep3in-int) to dwc3 driver. This
ensures compatibility with old userspace and windows drivers, which
expects hardcoded endpoint numbers.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agousb: dwc3: add a workaround for too small OUT requests
Marek Szyprowski [Tue, 3 Mar 2015 16:32:10 +0000 (17:32 +0100)]
usb: dwc3: add a workaround for too small OUT requests

DWC3 hangs on OUT requests smaller than maxpacket size,
so HACK the request length to be at least equal to maxpacket size.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agousb: dwc3: make dwc3_set_mode to static
Joonyoung Shim [Tue, 3 Mar 2015 16:32:09 +0000 (17:32 +0100)]
usb: dwc3: make dwc3_set_mode to static

This commit makes the dwc3_set_mode() as static, to prevent collisions.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: Remove BIT(x) macro from DWC3's gadget code
Lukasz Majewski [Tue, 3 Mar 2015 16:32:08 +0000 (17:32 +0100)]
usb: dwc3: Remove BIT(x) macro from DWC3's gadget code

The BIT() macro is used only in those places, so it is reasonable to
replace it by a constant value.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: composite: Add .reset callback to usb_gadget_driver structure
Lukasz Majewski [Tue, 3 Mar 2015 16:32:07 +0000 (17:32 +0100)]
usb: composite: Add .reset callback to usb_gadget_driver structure

DWC3 UDC driver requires presence of .reset callback in a composite driver.
This setting is similar to the one nowadays present in linux kernel.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: gadget: thor: Invoke board specific USB cleanup interface
Inha Song [Tue, 3 Mar 2015 16:32:06 +0000 (17:32 +0100)]
usb: gadget: thor: Invoke board specific USB cleanup interface

This patch invokes board-specific USB cleanup (board_usb_cleanup)
function in the thor gadget.

Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agousb: gadget: UMS: Invoke board specific USB cleanup interface
Inha Song [Tue, 3 Mar 2015 16:32:05 +0000 (17:32 +0100)]
usb: gadget: UMS: Invoke board specific USB cleanup interface

This patch invokes board-specific USB cleanup (board_usb_cleanup)
function in the mass storage gadget

Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agousb: board: goni: Add default board_usb_cleanup() definition for Goni board
Lukasz Majewski [Tue, 3 Mar 2015 16:32:04 +0000 (17:32 +0100)]
usb: board: goni: Add default board_usb_cleanup() definition for Goni board

This definition is necessary for S5PC110 based GONI board to work properly.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: board: samsung: Add default board_usb_cleanup() definition for Exynos SoCs
Lukasz Majewski [Tue, 3 Mar 2015 16:32:03 +0000 (17:32 +0100)]
usb: board: samsung: Add default board_usb_cleanup() definition for Exynos SoCs

This definition is necessary for Exynos based boards to work properly.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: modify usb_gadget_handle_interrupts to take controller index
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:23 +0000 (18:40 +0530)]
usb: modify usb_gadget_handle_interrupts to take controller index

Since we support multiple dwc3 controllers to be existent at the same
time, in order to handle the interrupts of a particular dwc3 controller
usb_gadget_handle_interrutps should take controller index as an
argument.

Hence the API of usb_gadget_handle_interrupts is modified to take
controller index as an argument and made the corresponding changes to all
the usb_gadget_handle_interrupts calls.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoinclude: configs: Enable DWC3 and DFU in AM43xx
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:22 +0000 (18:40 +0530)]
include: configs: Enable DWC3 and DFU in AM43xx

Enabled dwc3, dwc3-omap and PHY for dwc3 are enabled. Also enabled
support for DFU.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoboard: ti: AM43xx: added USB initializtion code
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:21 +0000 (18:40 +0530)]
board: ti: AM43xx: added USB initializtion code

Implemented board_usb_init(), board_usb_cleanup() and
usb_gadget_handle_interrupts() in am43xx board file that
can be invoked by various gadget drivers.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoinclude: configs: Enable DWC3 and DFU in DRA7xx
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:20 +0000 (18:40 +0530)]
include: configs: Enable DWC3 and DFU in DRA7xx

Enabled dwc3, dwc3-omap and PHY for dwc3 are enabled. Also enabled
support for DFU.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoboard: ti: DRA7: added USB initializtion code
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:19 +0000 (18:40 +0530)]
board: ti: DRA7: added USB initializtion code

Implemented board_usb_init(), board_usb_cleanup() and
usb_gadget_handle_interrupts() in dra7xx board file that
can be invoked by various gadget drivers.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agocommon: cmd_dfu: invoke board_usb_cleanup() for cleaning up
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:18 +0000 (18:40 +0530)]
common: cmd_dfu: invoke board_usb_cleanup() for cleaning up

Invoked board_usb_cleanup for cleaning up initialized USB. It
will be invoked if the user enterts ctrl-C.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: gadget: defer setting maxpacket till ->setup()
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:17 +0000 (18:40 +0530)]
usb: gadget: defer setting maxpacket till ->setup()

Taken from linux kernel with commit
commit 765f5b830e547229bb752e7b232ee83e2b3d49d5
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Thu Jun 23 14:26:11 2011 +0200

usb: gadget: defer setting maxpacket till ->setup()

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: Makefile: Make dwc3 driver compile in u-boot
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:16 +0000 (18:40 +0530)]
usb: dwc3: Makefile: Make dwc3 driver compile in u-boot

Now that the entire dwc3 driver is adapted to compile with uboot build,
modify the Makefiles so that the dwc3 driver can be built.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: Add chained TRB support for ep0
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:15 +0000 (18:40 +0530)]
usb: dwc3: Add chained TRB support for ep0

dwc3 can do only max packet aligned transfers. So in case request length
is not max packet aligned and is bigger than DWC3_EP0_BOUNCE_SIZE
two chained TRBs is required to handle the transfer.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: ep0: preparation for implementing chained TRB
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:14 +0000 (18:40 +0530)]
usb: dwc3: ep0: preparation for implementing chained TRB

No functional change. Modified few things so that there are no
code duplication while implementing chained TRB.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agodwc3: flush the buffers before using it
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:13 +0000 (18:40 +0530)]
dwc3: flush the buffers before using it

In the linux kernel, non cacheable buffers are used. However in uboot
since there are no APIs to allocate non cacheable memory, all
the buffers should be flushed before using it.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
9 years agousb: dwc3: TI PHY: PHY driver for dwc3 in TI platforms
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:12 +0000 (18:40 +0530)]
usb: dwc3: TI PHY: PHY driver for dwc3 in TI platforms

Added a single driver for both USB2 PHY programming and USB3 PHY
programming.

USB3 PHY is taken from drivers/phy/phy-ti-pipe3.c in linux kernel.
commit 56042e : phy: ti-pipe3: Fix suspend/resume and module reload.

USB2 PHY is taken from drivers/phy/phy-omap-usb2.c in linux kernel.
commit eb82a3 : phy: omap-usb2: Balance pm_runtime_enable() on probe
failure and remove.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: dwc3-omap: add interrupt status API to check for interrupts
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:11 +0000 (18:40 +0530)]
usb: dwc3: dwc3-omap: add interrupt status API to check for interrupts

Added an API to check for interrupt status. This API is generally
called from board file to check for interrupt status.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agodwc3: dwc3-omap: add support for multiple dwc3-omap controllers
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:10 +0000 (18:40 +0530)]
dwc3: dwc3-omap: add support for multiple dwc3-omap controllers

Added support for multiple dwc3 omap controllers. This gives uboot
the capability to control multiple dwc3 omap controllers.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: dwc3-omap: change probe and remove to uboot init and uboot exit code
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:09 +0000 (18:40 +0530)]
usb: dwc3: dwc3-omap: change probe and remove to uboot init and uboot exit code

Removed probe and remove that are specific to linux and replaced it with
uboot init and uboot exit. These functions will be invoked from boardfile.

This will change once we have dwc3-omap driver adapted to use the uboot
driver model.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoinclude: dwc3-omap-uboot: add a structure for populating dwc3-omap platform data
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:08 +0000 (18:40 +0530)]
include: dwc3-omap-uboot: add a structure for populating dwc3-omap platform data

Added a structure to populate dwc3 omap platform data. The board file should
populate these platform data before invoking dwc3 omap driver.

This will be removed once dwc3-omap driver is adapted to use the driver model.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: dwc3-omap: make dwc3-omap build in uboot
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:07 +0000 (18:40 +0530)]
usb: dwc3: dwc3-omap: make dwc3-omap build in uboot

*) Changed the included header files to that used in u-boot.
*) Removed extcon_* APIs
*) Removed regulator_* APIs
*) Fixed other misc warnings
*) Added dwc3-omap.h to include the definitions of UTMI modes.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agodwc3: core: added an API to invoke irq handlers
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:06 +0000 (18:40 +0530)]
dwc3: core: added an API to invoke irq handlers

Since interrupt support is not present in u-boot, added an
API to handle the interrupts in dwc3 core. This API can be
polled to handle the interrupts.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agodwc3: core: add support for multiple dwc3 controllers
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:05 +0000 (18:40 +0530)]
dwc3: core: add support for multiple dwc3 controllers

Added support for multiple dwc3 controllers. This gives uboot
the capability to control multiple dwc3 controllers.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agodwc3: core: change probe and remove to uboot init and uboot exit code
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:04 +0000 (18:40 +0530)]
dwc3: core: change probe and remove to uboot init and uboot exit code

Removed probe and remove that are specific to linux and replaced it with
uboot init and uboot exit. These functions will be invoked from boardfile.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoinclude: dwc3-uboot: add a structure for populating platform data
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:03 +0000 (18:40 +0530)]
include: dwc3-uboot: add a structure for populating platform data

Added a structure to populate dwc3 core platform data. The board file should
populate these platform data before invoking dwc3 driver.
This will be removed once we have dwc3 driver adapted to use the driver model.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: core: make dwc3 core build in uboot
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:02 +0000 (18:40 +0530)]
usb: dwc3: core: make dwc3 core build in uboot

*) Changed the include header files to that used in u-boot.
*) Removed phy_* APIs
*) Removed jiffies and used a simple while loop
*) Used dma_alloc_coherent and dma_free_coherent APIs of u-boot
*) Fixed other misc warnings

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoinclude: usb: composite: add USB_GADGET_DELAYED_STATUS to avoid compilation error
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:01 +0000 (18:40 +0530)]
include: usb: composite: add USB_GADGET_DELAYED_STATUS to avoid compilation error

Added USB_GADGET_DELAYED_STATUS to avoid the following compilation error.
error: ‘USB_GADGET_DELAYED_STATUS’ undeclared (first use in this function)
while compiling dwc3/ep0.c

While this is been added only to avoid compilation error, the complete fix
should be something like the one added in linux kernel. The complete fix
will be ported once we have the composite driver in u-boot look similar to
the one in linux kernel.
commit 1b9ba000177ee47bcc5b44c7c34e48e735f5f9b1
Author: Roger Quadros <roger.quadros@nokia.com>
Date:   Mon May 9 13:08:06 2011 +0300

    usb: gadget: composite: Allow function drivers to pause control transfers

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: ep0: make dwc3 ep0 build in uboot
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:10:00 +0000 (18:40 +0530)]
usb: dwc3: ep0: make dwc3 ep0 build in uboot

*) Changed the included header files to that used in u-boot.
*) added dwc3_ep_event_string() used in ep0.c
*) Fixed other misc warnings

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoinclude: asm: types: add resource_size_t type
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:59 +0000 (18:39 +0530)]
include: asm: types: add resource_size_t type

Added resource_size_t type in order to get rid of the following
compilation error whiel building dwc3 gadget.
include/linux/ioport.h:19:2: error: unknown type name ‘resource_size_t’

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: gadget: make dwc3 gadget build in uboot
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:58 +0000 (18:39 +0530)]
usb: dwc3: gadget: make dwc3 gadget build in uboot

Did a bunch of things to get dwc3/gadget.c compile in u-boot without
build errors and warnings
*) Changed the included header files to that used in u-boot.
*) Used dma_alloc_coherent and dma_free_coherent APIs of u-boot
*) removed sg support
*) remove jiffies and used a simple while loop
*) removed irq support and added a function to call these interrupt handler.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: linux-compat: Add header for dwc3 linux compatibiltiy
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:57 +0000 (18:39 +0530)]
usb: dwc3: linux-compat: Add header for dwc3 linux compatibiltiy

Added a header file to include various linux specific APIs like
pr_debug, WARN_ WARN_ON_ONCE etc.. in order to avoid compilation
error while building dwc3 driver.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoarm: asm: dma-mapping: added dma_free_coherent API
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:56 +0000 (18:39 +0530)]
arm: asm: dma-mapping: added dma_free_coherent API

Added dma_free_coherent corresponding to the dma_alloc_coherent in
dma-mapping.h in order to free memory allocated using dma_alloc_coherent.
This API is used in dwc3 driver.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>