]> git.kernelconcepts.de Git - karo-tx-uboot.git/log
karo-tx-uboot.git
9 years agoMerge remote-tracking branch 'u-boot-sh/rmobile'
Albert ARIBAUD [Fri, 16 May 2014 18:43:04 +0000 (20:43 +0200)]
Merge remote-tracking branch 'u-boot-sh/rmobile'

Conflicts:
boards.cfg

Trivial conflict, maintainer change plus board addition

9 years agoMerge branch 'u-boot-imx/master' into 'u-boot-arm/master'
Albert ARIBAUD [Fri, 16 May 2014 15:56:50 +0000 (17:56 +0200)]
Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'

9 years agoMerge branch 'u-boot-ti/master' into 'u-boot-arm/master'
Albert ARIBAUD [Fri, 16 May 2014 14:49:50 +0000 (16:49 +0200)]
Merge branch 'u-boot-ti/master' into 'u-boot-arm/master'

9 years agoMerge branch 'u-boot-tegra/master' into 'u-boot-arm/master'
Albert ARIBAUD [Thu, 15 May 2014 15:19:45 +0000 (17:19 +0200)]
Merge branch 'u-boot-tegra/master' into 'u-boot-arm/master'

9 years agoMerge branch 'u-boot-samsung/master' into 'u-boot-arm/master'
Albert ARIBAUD [Thu, 15 May 2014 14:36:02 +0000 (16:36 +0200)]
Merge branch 'u-boot-samsung/master' into 'u-boot-arm/master'

9 years agoarm: move exception handling out of start.S files
Albert ARIBAUD [Tue, 15 Apr 2014 14:13:51 +0000 (16:13 +0200)]
arm: move exception handling out of start.S files

Exception handling is basically identical for all ARM targets.
Factorize it out of the various start.S files and into a
single vectors.S file, and adjust linker scripts accordingly.

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
9 years agoarm: remove unused _end_vect and _vectors_end symbols
Albert ARIBAUD [Tue, 15 Apr 2014 14:13:50 +0000 (16:13 +0200)]
arm: remove unused _end_vect and _vectors_end symbols

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
9 years agoarm: pxa: move SP check from start.S to cpuinfo.c
Albert ARIBAUD [Tue, 15 Apr 2014 14:13:49 +0000 (16:13 +0200)]
arm: pxa: move SP check from start.S to cpuinfo.c

PXA start.S has a PXA (variant) specific check in
start.S. Move it to cpuinfo.c.

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
Acked-by: Marek Vasut <marex@denx.de>
9 years agoarm: move reset_cpu from start.S into cpu.c
Albert ARIBAUD [Tue, 15 Apr 2014 14:13:48 +0000 (16:13 +0200)]
arm: move reset_cpu from start.S into cpu.c

CPUs arm946es and sa1100 both define the reset_cpu()
function in their start.S file. Move this cpu-specific code
into cpu.c so that start.S only contains ARM generic code.

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
9 years agoarm1136: move cache code from start.S to cache.c
Albert ARIBAUD [Tue, 15 Apr 2014 14:13:47 +0000 (16:13 +0200)]
arm1136: move cache code from start.S to cache.c

arch/arm/cpu/arm1136/start.S contain a cache flushing function.
Remove the function and move its code into arch/arm/lib/cache.c.

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
9 years agoMerge branch 'master' of git://git.denx.de/u-boot-arm
Stefano Babic [Thu, 15 May 2014 08:27:32 +0000 (10:27 +0200)]
Merge branch 'master' of git://git.denx.de/u-boot-arm

9 years agonand: remove CONFIG_SYS_NAND_PAGE_SIZE
Tim Harvey [Thu, 8 May 2014 05:16:12 +0000 (22:16 -0700)]
nand: remove CONFIG_SYS_NAND_PAGE_SIZE

We only need to read in the size of struct image_header and thus don't
need to know the page size of the nand device.

Cc: Scott Wood <scottwood@freescale.com>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Acked-by: Stefano Babic <sbabic@denx.de>
Acked-by: Scott Wood <scottwood@freescale.com>
9 years agomtd: nand: omap_gpmc: Fix update of read_ecc in oob
Belisko Marek [Fri, 25 Apr 2014 10:00:07 +0000 (12:00 +0200)]
mtd: nand: omap_gpmc: Fix update of read_ecc in oob

We need to flip only one bit not assign.

Signed-off-by: Marek Belisko <marek.belisko@gmail.com>
Acked-by: Pekon Gupta <pekon@ti.com>
9 years agoam335x: pepper: Add Gumstix Pepper AM335x-based machine
Ash Charles [Wed, 7 May 2014 15:24:11 +0000 (08:24 -0700)]
am335x: pepper: Add Gumstix Pepper AM335x-based machine

This adds the Gumstix Pepper[1] single-board computer based on the
TI AM335x processor. Schematics are available [2].

[1] https://store.gumstix.com/index.php/products/344/
[2] https://pubs.gumstix.com/boards/PEPPER/

Signed-off-by: Ash Charles <ash@gumstix.com>
[trini: Move 'cdev' in board.c down to under #ifdef's where it's used]
Signed-off-by: Tom Rini <trini@ti.com>
9 years agoarm, davinci: Use CONFIG_SPL_PAD_TO for padding the SPL in an ais image
Christian Riesch [Wed, 7 May 2014 08:16:28 +0000 (10:16 +0200)]
arm, davinci: Use CONFIG_SPL_PAD_TO for padding the SPL in an ais image

The commits

commit b7b5f1a16ca66dfdd817e7339f0e263a5b9f2758
Author: Albert ARIBAUD <albert.u.boot@aribaud.net>
da850evm, da850_am18xxevm: convert to CONFIG_SPL_MAX_FOOTPRINT

and

commit e7497891e34efe5cb2b3a3dc7c6c096c012ede28
Author: Albert ARIBAUD <albert.u.boot@aribaud.net>
cam_enc_4xx: convert to CONFIG_SPL_MAX_FOOTPRINT

replaced CONFIG_SPL_MAX_SIZE by CONFIG_SPL_MAX_FOOTPRINT. However,
CONFIG_SPL_MAX_SIZE is used in the Makefile for padding the SPL
when preparing an u-boot.ais image. By removing CONFIG_SPL_MAX_SIZE
said commits broke the ais image of the da850evm and cam_enc_4xx
configurations.

This patch converts the u-boot.ais target to use CONFIG_SPL_PAD_TO
instead of CONFIG_SPL_MAX_SIZE for padding the SPL and adds
a #define CONFIG_SPL_PAD_TO where it is required.

Signed-off-by: Christian Riesch <christian.riesch@omicron.at>
Reported-by: Tom Taylor <ttaylor.tampa@gmail.com>
Cc: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
9 years agosiemens, draco: add new target
Egli, Samuel [Mon, 5 May 2014 14:50:44 +0000 (16:50 +0200)]
siemens, draco: add new target

Signed-off-by: Samuel Egli <samuel.egli@siemens.com>
Reviewed-by: Roger Meier <r.meier@siemens.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
9 years agosiemens:cosmetic, dxr2: rename dxr2 to draco
Egli, Samuel [Mon, 5 May 2014 14:50:43 +0000 (16:50 +0200)]
siemens:cosmetic, dxr2: rename dxr2 to draco

The actual board name is draco and dxr2 is the target name.
In the future we'll have different targets based on draco board.
All changes are purely non-functional and basically rename dxr2
to draco.

One style fix in board.c that existed already before.

Signed-off-by: Samuel Egli <samuel.egli@siemens.com>
Reviewed-by: Roger Meier <r.meier@siemens.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
9 years agoomap3_beagle: xM A/B validate new dtb exits in file system
Robert Nelson [Fri, 2 May 2014 20:15:03 +0000 (15:15 -0500)]
omap3_beagle: xM A/B validate new dtb exits in file system

Fall back to previous dtb used when omap3-beagle-xm-ab.dtb doesn't exist in file system

Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
CC: Tom Rini <trini@ti.com>
CC: Nishanth Menon <nm@ti.com>
Acked-by: Tom Rini <trini@ti.com>
9 years agoomap3_beagle: use omap3-beagle-xm-ab.dtb for the xM AB revision
Robert Nelson [Fri, 2 May 2014 20:14:39 +0000 (15:14 -0500)]
omap3_beagle: use omap3-beagle-xm-ab.dtb for the xM AB revision

As of v3.15-rc3, omap3-beagle-xm-ab.dtb now exists with the usb hub (ehci) enabled.

For older kernels versions, cherry pick from mainline:
ef78f3869c37c480f1d58462a760a40dabc823f4

Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
CC: Tom Rini <trini@ti.com>
CC: Nishanth Menon <nm@ti.com>
9 years agoARM: OMAP5: add CKO buffer control mask
Dmitry Lifshitz [Sun, 27 Apr 2014 10:17:27 +0000 (13:17 +0300)]
ARM: OMAP5: add CKO buffer control mask

Add CKOBUFFER_CLK_EN bit mask enabling FREF_XTAL_CLK clock.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
9 years agoARM: OMAP5: Power: add LDO2 support for Palmas driver
Dmitry Lifshitz [Sun, 27 Apr 2014 10:17:26 +0000 (13:17 +0300)]
ARM: OMAP5: Power: add LDO2 support for Palmas driver

Add defines required to turn on LDO2 regulator.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
9 years agoARM: OMAP5: add UART4 support
Dmitry Lifshitz [Sun, 27 Apr 2014 10:17:25 +0000 (13:17 +0300)]
ARM: OMAP5: add UART4 support

Add UART4 base address.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
9 years agosiemens: cosmetic: rename project_dir
Egli, Samuel [Thu, 24 Apr 2014 15:57:56 +0000 (17:57 +0200)]
siemens: cosmetic: rename project_dir

Signed-off-by: Samuel Egli <samuel.egli@siemens.com>
Cc: Roger Meier <r.meier@siemens.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
9 years agosiemens: change LED indication in DFU mode
Egli, Samuel [Thu, 24 Apr 2014 15:57:55 +0000 (17:57 +0200)]
siemens: change LED indication in DFU mode

In order to have the same LED indication like in another product
when ready for updating, enable only red led and disable status
LED when entering DFU mode.

The status LED is only switched off when defined in board file.

Signed-off-by: Samuel Egli <samuel.egli@siemens.com>
Cc: Roger Meier <r.meier@siemens.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
9 years agosiemens: add led cmd for flexible LED control
Egli, Samuel [Thu, 24 Apr 2014 15:57:54 +0000 (17:57 +0200)]
siemens: add led cmd for flexible LED control

* remove setting LED in user button function.
   We want to decouple reading user button and setting LED. This
   two things need to be done independently.

 * led cmd can be used to control LEDs that are defined in board file
   having a led cmd, one can easily set LEDs in u-boot shell. For
   example bootcmd can be extended to disable status LED before
   loading kernel.

Signed-off-by: Samuel Egli <samuel.egli@siemens.com>
Cc: Roger Meier <r.meier@siemens.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
9 years agosiemens: update DDR3 parameters for dxr2
Egli, Samuel [Thu, 24 Apr 2014 15:57:53 +0000 (17:57 +0200)]
siemens: update DDR3 parameters for dxr2

* add parameters for factory and print them at start up to
   facilitate control of right DDR3 settings in EEPROM.

 * cosmetic changes in a couple of printfs

Signed-off-by: Samuel Egli <samuel.egli@siemens.com>
Cc: Roger Meier <r.meier@siemens.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
9 years agosiemens: cosmetic: remove unused and rename defines
Egli, Samuel [Thu, 24 Apr 2014 15:57:52 +0000 (17:57 +0200)]
siemens: cosmetic: remove unused and rename defines

For dxr2 board DXR2_IOCTRL_VAL is set by data in EEPROM. In pxm2
board it does not make sense to have dxr2 as prefix. Replace it with
more meaningful DDR prefix.

Signed-off-by: Samuel Egli <samuel.egli@siemens.com>
Cc: Pascal Bach <pascal.bach@siemens.com>
Cc: Roger Meier <r.meier@siemens.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
9 years agoam33xx: add SSC enable macro
Yegor Yefremov [Sat, 19 Apr 2014 20:12:18 +0000 (22:12 +0200)]
am33xx: add SSC enable macro

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
9 years agoconfig: k2hk_evm: Add generic board support
Khoronzhuk, Ivan [Tue, 15 Apr 2014 18:32:25 +0000 (21:32 +0300)]
config: k2hk_evm: Add generic board support

We should use generic board in order the ARM maintainer
be able to remove arch/arm/lib/board.c

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
9 years agoARM: tegra: use a CPU freq that all SKUs can support
Stephen Warren [Thu, 8 May 2014 15:33:45 +0000 (09:33 -0600)]
ARM: tegra: use a CPU freq that all SKUs can support

U-Boot on Tegra30 currently selects a main CPU frequency that cannot be
supported at all on some SKUs, and needs higher VDD_CPU/VDD_CORE values
on some others. This can result in unreliable operation of the main CPUs.

Resolve this by switching to a CPU frequency that can be supported by any
SKU. According to the following link, the maximum supported CPU frequency
of the slowest Tegra30 SKU is 600MHz:

repo http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=summary
branch l4t/l4t-r16-r2
path arch/arm/mach-tegra/tegra3_dvfs.c
table cpu_dvfs_table[]

According to that same table, the minimum VDD_CPU required to operate at
that frequency across all SKUs is 1.007V. Given the adjustment resolution
of the TPS65911 PMIC that's used on all Tegra30-based boards we support,
we'll end up using 1.0125V instead.

At that VDD_CPU, tegra3_get_core_floor_mv() in that same file dictates
that VDD_CORE must be at least 1.2V on all SKUs. According to
tegra_core_speedo_mv() (in tegra3_speedo.c in the same source tree),
that voltage is safe for all SKUs.

An alternative would be to port much of the code from tegra3_dvfs.c and
tegra3_speedo.c in the kernel tree mentioned above. That's more work
than I want to take on right now.

While all the currently supported boards use the same regulator chip for
VDD_CPU, different types of regulators are used for VDD_CORE. Hence, we
add some small conditional code to select how VDD_CORE is programmed. If
this becomes more complex in the future as new boards are added, or we
end up adding code to detect the SoC SKU and dynamically determine the
allowed frequency and required voltages, we should probably make this a
runtime call into a function provided by the board file and/or relevant
PMIC driver.

Cc: Alban Bedel <alban.bedel@avionic-design.de>
Cc: Marcel Ziswiler <marcel@ziswiler.com>
Cc: Bard Liao <bardliao@realtek.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: Venice2 pinmux spreadsheet updates
Stephen Warren [Tue, 6 May 2014 17:18:41 +0000 (11:18 -0600)]
ARM: tegra: Venice2 pinmux spreadsheet updates

The Venice2 pinmux spreadsheet was updated to fix a few issues. Import
those changes into the U-Boot pinmux initialization tables.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: update Venice2 pinmux
Stephen Warren [Tue, 22 Apr 2014 20:37:57 +0000 (14:37 -0600)]
ARM: tegra: update Venice2 pinmux

This re-imports the entire Venice2 pinmux data from the board's master
spreadsheet, and makes use of the new IO clamping GPIO initialization
table features. This makes the board port fully compliant with the
required HW-defined pinmux initialization sequence.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: clamp inputs on Jetson TK1
Stephen Warren [Tue, 22 Apr 2014 20:37:56 +0000 (14:37 -0600)]
ARM: tegra: clamp inputs on Jetson TK1

The HW-defined procedure for booting Tegra requires that
CLAMP_INPUTS_WHEN_TRISTATED be enabled before programming the pinmux.
Modify the Jetson TK1 board to do this.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: make use of GPIO init table on Jetson TK1
Stephen Warren [Tue, 22 Apr 2014 20:37:55 +0000 (14:37 -0600)]
ARM: tegra: make use of GPIO init table on Jetson TK1

The HW-defined procedure for booting Tegra requires that some pins be
set up as GPIOs immediately at boot in order to avoid glitches on those
pins, when the pinmux is programmed. This patch implements this
procedure for Jetson TK1. For pins which are to be used as GPIOs, the
pinmux mux function need not be programmed, so the pinmux table is also
adjusted.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: add function to enable input clamping on tristate
Stephen Warren [Tue, 22 Apr 2014 20:37:54 +0000 (14:37 -0600)]
ARM: tegra: add function to enable input clamping on tristate

The HW-defined procedure for booting Tegra requires that
CLAMP_INPUTS_WHEN_TRISTATED be enabled before programming the pinmux.
Add a function to the pinmux driver to allow boards to do this.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: add GPIO initialization table function
Stephen Warren [Tue, 22 Apr 2014 20:37:53 +0000 (14:37 -0600)]
ARM: tegra: add GPIO initialization table function

The HW-defined procedure for booting Tegra requires that some pins be
set up as GPIOs immediately at boot in order to avoid glitches on those
pins, when the pinmux is programmed. Add a feature to the GPIO driver
which executes a GPIO configuration table. Board files will use this to
implement the correct HW initialization procedure.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: allow pinmux mux option not to be set by init tables
Stephen Warren [Tue, 22 Apr 2014 20:37:52 +0000 (14:37 -0600)]
ARM: tegra: allow pinmux mux option not to be set by init tables

Define enum PMUX_FUNC_DEFAULT, which indicates that a table entry passed
to pinmux_config_pingrp()/pinmux_config_pingrp_table() shouldn't change
the mux option in HW.

For pins that will be used as GPIOs, the mux option is irrelevant, so we
simply don't want to define any mux option in the pinmux initialization
table.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: fix CPU VDD comment in Tegra30 CPU init code
Stephen Warren [Mon, 21 Apr 2014 20:50:33 +0000 (14:50 -0600)]
ARM: tegra: fix CPU VDD comment in Tegra30 CPU init code

The register writes performed by arch/arm/cpu/arm720t/tegra30/cpu.c
enable_cpu_power_rail() set the voltage to 1.0V not 1.4V as the comment
implies. Fix the comment.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: set CONFIG_SYS_MMC_MAX_DEVICE
Stephen Warren [Fri, 18 Apr 2014 16:56:11 +0000 (10:56 -0600)]
ARM: tegra: set CONFIG_SYS_MMC_MAX_DEVICE

If CONFIG_API is ever to be enabled on Tegra, this define must be set,
since api/api_storage.c uses it.

A couple of annoyting things about CONFIG_SYS_MMC_MAX_DEVICE

1) It isn't documented in README. The same is true for a lot of similar
   defines used by api_storage.c.

2) It doesn't represent MAX_DEVICE but rather NUM_DEVICES, since the
   valid values are 0..n-1 not 0..n.

However, I this patch does not address those shortcomings.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoS5P: Exynos: Config: Enable GPIO CMD config
Akshay Saraswat [Tue, 13 May 2014 05:00:15 +0000 (10:30 +0530)]
S5P: Exynos: Config: Enable GPIO CMD config

Enabling configs for GPIO CMD, EXYNOS4 family and replacing
exynos_gpio_get with new linear GPIO pin number required
because of the new function asking only 2 arguments (pin
and value) instead of 3 (bank, pin and value).

Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoS5P: Exynos: Add GPIO pin numbering and rename definitions
Akshay Saraswat [Tue, 13 May 2014 05:00:14 +0000 (10:30 +0530)]
S5P: Exynos: Add GPIO pin numbering and rename definitions

This patch includes following changes :
* Adds gpio pin numbering support for EXYNOS SOCs.
  To have consistent 0..n-1 GPIO numbering the banks are divided
  into different parts where ever they have holes in them.

* Rename GPIO definitions from GPIO_... to S5P_GPIO_...
  These changes were done to enable cmd_gpio for EXYNOS and
  cmd_gpio has GPIO_INPUT same as s5p_gpio driver and hence
  getting a error during compilation.

* Adds support for name to gpio conversion in s5p_gpio to enable
  gpio command EXYNOS SoCs. Function has been added to asm/gpio.h
  to decode the input gpio name to gpio number.
  Example: SMDK5420 # gpio set gpa00

Signed-off-by: Leela Krishna Amudala <l.krishna@samsung.com>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoARM: Samsung: s5p_goni: maintainer update
Mateusz Zalega [Tue, 29 Apr 2014 18:16:22 +0000 (20:16 +0200)]
ARM: Samsung: s5p_goni: maintainer update

Because I'm leaving Samsung Electronics, I won't have access to their
developer hardware anymore. Przemyslaw Marczak will take over my
responsibilities.

Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoExynos5: config: Enable FIT
Akshay Saraswat [Tue, 6 May 2014 14:37:04 +0000 (20:07 +0530)]
Exynos5: config: Enable FIT

Adding two configs:
* CONFIG_FIT - Enable FIT image support.
* CONFIG_FIT_BEST_MATCH - Enable fetching correct DTB from
  FIT image by comparing compatibles.

Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agowandboard: Pass video kernel arguments for HDMI and LCD
Otavio Salvador [Thu, 1 May 2014 22:02:32 +0000 (19:02 -0300)]
wandboard: Pass video kernel arguments for HDMI and LCD

This checks if the 7" WVGA produced by Future Eletronics is detected
and pass the needed kernel arguments for it to work.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
9 years agowandboard: add Future Eletronics 7" WVGA LCD extension board
Otavio Salvador [Thu, 1 May 2014 22:02:31 +0000 (19:02 -0300)]
wandboard: add Future Eletronics 7" WVGA LCD extension board

This adds support for the 7" WVGA produced by Future Eletronics and
make it dynamically detect if it is connected or not based on the
touchscreen controller.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Acked-by: Stefano Babic <sbabic@denx.de>
9 years agoimx: ventana: add HDMI and LVDS display capability
Tim Harvey [Fri, 25 Apr 2014 22:39:07 +0000 (15:39 -0700)]
imx: ventana: add HDMI and LVDS display capability

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: Convert to generic board
Tim Harvey [Fri, 25 Apr 2014 22:17:00 +0000 (15:17 -0700)]
imx: ventana: Convert to generic board

Enable CONFIG_SYS_GENERIC_BOARD on ventana.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx6: ventana: fix system-serial dt property
Tim Harvey [Fri, 25 Apr 2014 16:18:33 +0000 (09:18 -0700)]
imx6: ventana: fix system-serial dt property

Fix typo in setting of system-serial property causing the prop len to be
off by 1.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agovideo: Add support for imx25 lcd controller
Thomas Diener [Wed, 23 Apr 2014 05:52:43 +0000 (07:52 +0200)]
video: Add support for imx25 lcd controller

This patch adds support for the imx25 lcd display controller.

Signed-off-by: Thomas Diener <dietho@gmx.de>
Acked-by: Anatolij Gustschin <agust@denx.de>
9 years agoimx25: Add new hardware registers
Thomas Diener [Wed, 23 Apr 2014 05:52:42 +0000 (07:52 +0200)]
imx25: Add new hardware registers

Signed-off-by: Thomas Diener <dietho@gmx.de>
9 years agoiomux-v3: Add support for mx6sl LVE bit
Fabio Estevam [Tue, 29 Apr 2014 13:15:46 +0000 (10:15 -0300)]
iomux-v3: Add support for mx6sl LVE bit

On mx6sl there is a LVE (Low Voltage Enable) bit in the IOMUXC_SW_PAD_CTL
register that can enable or disable low voltage on the pad.

LVE is bit 22 of IOMUXC_SW_PAD_CTL register, but in order to make the
calculation easier we can define it as a flag in bit 1, since this bit is unused.

Add support for it.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Otavio Salvador <otavio@ossystems.com.br>
9 years agoventana: Add support for the LTC3676 PMIC
Tim Harvey [Mon, 5 May 2014 15:22:25 +0000 (08:22 -0700)]
ventana: Add support for the LTC3676 PMIC

The LTC3676 PMIC is used instead of the PFUZE100 PMIC on the
GW51xx/GW52xx/GW53xx Ventana baseboards. In order to support the IMX6Q SoC
at 1GHz on those baseboards, we need to adjust the voltage scaling for the SW1
and SW3 DC/DC converters on the LTC3676 for 1225mV. Note that the scalar
values for the LTC3676 are board-specific as they relate to a resistor devider
chosen by the board design.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agopower: Add support for LTC3676 PMIC
Tim Harvey [Wed, 23 Apr 2014 04:53:58 +0000 (21:53 -0700)]
power: Add support for LTC3676 PMIC

The LTC3676 PMIC includes four DC/DC converters, and three 300mA
LDO Regulators (two Adjustable). The DC/DC converters are adjustable based
on a resistor devider (board-specific).

This adds support for the LTC3676 by creating a namespace unique init function
that uses the PMIC API to allocate a pmic and defines the registers.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Acked-by: Stefano Babic <sbabic@denx.de>
9 years agoventana: use non-generic pfuze100 init
Tim Harvey [Wed, 23 Apr 2014 04:53:57 +0000 (21:53 -0700)]
ventana: use non-generic pfuze100 init

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agopower: make pfuze100 be able to coexist with other pmics
Tim Harvey [Wed, 23 Apr 2014 04:53:56 +0000 (21:53 -0700)]
power: make pfuze100 be able to coexist with other pmics

Avoid uding pmic_init() as this forces the model of only allowing a
single PMIC driver to be built at a time.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoMerge branch 'u-boot/master'
Albert ARIBAUD [Fri, 9 May 2014 08:47:05 +0000 (10:47 +0200)]
Merge branch 'u-boot/master'

Conflicts:
drivers/net/Makefile

(trivial merge)

9 years agosamsung: misc: remove download mode info screen
Przemyslaw Marczak [Wed, 30 Apr 2014 11:28:10 +0000 (13:28 +0200)]
samsung: misc: remove download mode info screen

This change removes LCD menu download mode info screen.
Now key press timeout is checked in function download_menu()
and menu options are displayed directly after PWR + VOLUP keys.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agosamsung: misc: menu: increase delay in menu main loop
Przemyslaw Marczak [Wed, 30 Apr 2014 11:28:09 +0000 (13:28 +0200)]
samsung: misc: menu: increase delay in menu main loop

Increase menu loop delay to 200 ms helps choose the right
menu option by user. Before this, each time key was pressed
the current menu option was changed few times.
Now it changes only once and also changes few times if key
is pressed for a longer time.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agosamsung: misc: add env default option to lcd menu
Inha Song [Wed, 30 Apr 2014 11:28:08 +0000 (13:28 +0200)]
samsung: misc: add env default option to lcd menu

This change allows reset device environment to default without using u-boot
console, which is useful for system developers.

Signed-off-by: Inha Song <ideal.song@samsung.com>
Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agosamsung: misc: add gpt restore option to lcd menu
Przemyslaw Marczak [Wed, 30 Apr 2014 11:28:07 +0000 (13:28 +0200)]
samsung: misc: add gpt restore option to lcd menu

This menu option allows restore gpt.
This is usefull and no needs access to the u-boot console.
For proper operation:
- each partition uuid should be set in environment or
- CONFIG_RANDOM_UUID should be defined for automatically uuid setting

After operation success device is going to be reset.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agosamsung: misc: allows using environmental macros as args in menu commands
Przemyslaw Marczak [Wed, 30 Apr 2014 11:28:06 +0000 (13:28 +0200)]
samsung: misc: allows using environmental macros as args in menu commands

Function cmd_process() runs commands with directly given list of arguments
but it doesn't expand given environmental variables names as macros.
Command "gpt" as one of arguments expects expanded macro e.g. $partitions
so it needs to be called by function run_command().

Changes:
- extend array mode_name by lower case commands names - used by find_cmd()
- put each command arguments into one string - used by run_command()
- use run_command() instead of cmd_process()

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoARM: exynos: remove the unused code
Jaehoon Chung [Wed, 30 Apr 2014 00:09:15 +0000 (09:09 +0900)]
ARM: exynos: remove the unused code

"mmc boot" command didn't use anywhere.
It can be replace "mmc dev" command.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agotrats: config: fix: Set default console to ttySAC2
Łukasz Majewski [Wed, 9 Apr 2014 08:44:34 +0000 (10:44 +0200)]
trats: config: fix: Set default console to ttySAC2

During providing device tree support for Exynos4 based boards,
a tiny mistake has creeped in the fe60164 commit.

This commit restores proper setting of default console for the
trats board.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agotrats2: config: fix: Set default console to ttySAC2
Łukasz Majewski [Wed, 9 Apr 2014 08:44:33 +0000 (10:44 +0200)]
trats2: config: fix: Set default console to ttySAC2

During providing device tree support for Exynos4 based boards,
a tiny mistake has creeped in the 1ecab0f commit.

This commit restores proper setting of default console for the
trats2 board.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoMerge branch 'serial' of git://www.denx.de/git/u-boot-microblaze
Tom Rini [Tue, 6 May 2014 18:55:45 +0000 (14:55 -0400)]
Merge branch 'serial' of git://www.denx.de/git/u-boot-microblaze

9 years agoMerge branch 'master' of git://www.denx.de/git/u-boot-microblaze
Tom Rini [Tue, 6 May 2014 18:55:27 +0000 (14:55 -0400)]
Merge branch 'master' of git://www.denx.de/git/u-boot-microblaze

9 years agoMerge branch 'net' of git://www.denx.de/git/u-boot-microblaze
Tom Rini [Tue, 6 May 2014 18:50:22 +0000 (14:50 -0400)]
Merge branch 'net' of git://www.denx.de/git/u-boot-microblaze

9 years agoMerge branch 'master' of git://git.denx.de/u-boot-usb
Tom Rini [Tue, 6 May 2014 18:45:51 +0000 (14:45 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-usb

9 years agoserial: zynq: Fix typo in suffix function name
Michal Simek [Fri, 25 Apr 2014 11:46:28 +0000 (13:46 +0200)]
serial: zynq: Fix typo in suffix function name

's/zynq_serial_initalize/zynq_serial_initialize/g'
serial_initialize is used by all serial drivers.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
9 years agoserial: zynq: Remove sparse warnings
Michal Simek [Fri, 25 Apr 2014 11:45:08 +0000 (13:45 +0200)]
serial: zynq: Remove sparse warnings

Warnings:
drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_init' was not declared. Should it be static?
drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_setbrg' was not declared. Should it be static?
drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_getc' was not declared. Should it be static?
drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_tstc' was not declared. Should it be static?
drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_putc' was not declared. Should it be static?
drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_puts' was not declared. Should it be static?
drivers/serial/serial_zynq.c:182:22: warning: symbol 'uart_zynq_serial0_device' was not declared. Should it be static?
drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_init' was not declared. Should it be static?
drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_setbrg' was not declared. Should it be static?
drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_getc' was not declared. Should it be static?
drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_tstc' was not declared. Should it be static?
drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_putc' was not declared. Should it be static?
drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_puts' was not declared. Should it be static?
drivers/serial/serial_zynq.c:185:22: warning: symbol 'uart_zynq_serial1_device' was not declared. Should it be static?

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
9 years agonet: zynq: Fix sparse warnings in gem
Michal Simek [Fri, 25 Apr 2014 12:17:38 +0000 (14:17 +0200)]
net: zynq: Fix sparse warnings in gem

Add missing header.

Warnings:
drivers/net/zynq_gem.c:491:5: warning: symbol 'zynq_gem_initialize' was not declared. Should it be static?
drivers/net/zynq_gem.c:542:5: warning: symbol 'zynq_gem_of_init' was not declared. Should it be static?

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
9 years agonet: zynq: Use predefined macros instead of hardcoded value
Michal Simek [Tue, 25 Feb 2014 09:25:38 +0000 (10:25 +0100)]
net: zynq: Use predefined macros instead of hardcoded value

MII is used by this driver.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
9 years agomicroblaze: Wire up OF support for emaclite
Stephan Linz [Wed, 4 Jul 2012 20:25:31 +0000 (22:25 +0200)]
microblaze: Wire up OF support for emaclite

 - expand the condition with CONFIG_OF_CONTROL

Signed-off-by: Stephan Linz <linz@li-pro.net>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
9 years agocommon: fixed linker-list example
Mateusz Zalega [Tue, 29 Apr 2014 18:14:22 +0000 (20:14 +0200)]
common: fixed linker-list example

Last argument shouldn't be there.

Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Acked-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@ti.com>
9 years agoUSB: gadget: save driver name before registering it
Stephen Warren [Thu, 1 May 2014 21:45:16 +0000 (15:45 -0600)]
USB: gadget: save driver name before registering it

g_dnl_register() currently first attempts to register a composite
driver by name, and then saves the driver name once it's registered.
Internally to the registration code, g_dnl_do_config() is called and
attempts to compare the composite device's name with the list of known
device names. This fails since the composite device's name has not yet
been stored. This means that the first time "ums 0 0" is run, it fails,
but subsequent attempts succeed.

Re-order the name-saving and registration code to solve this.

Fixes: e5b834e07f51 ("USB: gadget: added a saner gadget downloader registration API")
Signed-off-by: Stephen Warren <swarren@nvidia.com>
9 years agoUSB: gadget: added a saner gadget downloader registration API
Mateusz Zalega [Mon, 28 Apr 2014 19:13:28 +0000 (21:13 +0200)]
USB: gadget: added a saner gadget downloader registration API

Preprocessor definitions and hardcoded implementation selection in
g_dnl core were replaced by a linker list made of (usb_function_name,
bind_callback) pairs.

Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Marek Vasut <marex@denx.de>
9 years agoam335x: dfu: disable DFU in am335x_evm SPL build
Mateusz Zalega [Mon, 28 Apr 2014 19:13:27 +0000 (21:13 +0200)]
am335x: dfu: disable DFU in am335x_evm SPL build

Future patches will make DFU too large to fit in this board's SPL build.

Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Acked-by: Tom Rini <trini@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoums: always initialize mmc before ums_disk_init()
Mateusz Zalega [Mon, 28 Apr 2014 19:13:26 +0000 (21:13 +0200)]
ums: always initialize mmc before ums_disk_init()

In cases when MMC hadn't been initialized before, ie. by the user or other
subsystem, it was still uninitialized while UMS media capacity check,
leading to broken ums command.

UMS has to initialize resources it uses.

Tested on Samsung Goni.

Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Tested-by: Mateusz Zalega <m.zalega@samsung.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
9 years agodfu: mmc: change offset base handling
Mateusz Zalega [Mon, 28 Apr 2014 19:13:25 +0000 (21:13 +0200)]
dfu: mmc: change offset base handling

Previously offsets handled by dfu_fill_entity_mmc(), defined in boards'
CONFIG_DFU_ALT were treated as hexadecimal regardless of their prefix,
which sometimes led to confusion. This patch forces usage of explicit
numerical base prefixes.

Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Tom Rini <trini@ti.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
9 years agodfu: mmc: raw data write fix
Mateusz Zalega [Mon, 28 Apr 2014 19:13:24 +0000 (21:13 +0200)]
dfu: mmc: raw data write fix

When user attempted to perform a raw write using DFU (vide
dfu_fill_entity_mmc) with MMC interface not initialized before,
get_mmc_blk_size() reported invalid (zero) block size - it wasn't
possible to write ie. a new u-boot image.

This commit fixes that by initializing MMC device before use in
dfu_fill_entity_mmc().

While fixing initialization sequence, I had to change about half of
dfu_fill_entity_mmc's body, so I refactored it on the way to make it,
IMHO, considerably more comprehensible.

Being left as dead code, get_mmc_blk_size() was removed.

Tested on Samsung Goni.

Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Tom Rini <trini@ti.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
9 years agousb: dfu: fix boards wo USB cable detection
Mateusz Zalega [Wed, 30 Apr 2014 11:07:48 +0000 (13:07 +0200)]
usb: dfu: fix boards wo USB cable detection

Former usb_cable_connected() patch broke compilation of boards which do
not support this feature.

I've renamed usb_cable_connected() to g_dnl_usb_cable_connected() and added
its default implementation to gadget downloader driver code. There's
only one driver of this kind and it's unlikely there'll be another, so
there's no point in keeping it in /common.

Previously this function was declared in usb.h. I've moved it, since
it's more appropriate to keep it in g_dnl.h - usb.h seems to be intended
for USB host implementation.

Existing code, confronted with default -EOPNOTSUPP return value,
continues as if the cable was connected.

CONFIG_USB_CABLE_CHECK was removed.

Change-Id: Ib9198621adee2811b391c64512f14646cefd0369
Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agopart: header fix
Mateusz Zalega [Mon, 28 Apr 2014 19:13:22 +0000 (21:13 +0200)]
part: header fix

Implementation made use of types defined in common.h, even though it
wasn't #included. It worked in circumstances when .c files included
every needed header (all).

Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Cc: Tom Rini <trini@ti.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
9 years agommc: mmc header fix
Mateusz Zalega [Wed, 30 Apr 2014 11:04:15 +0000 (13:04 +0200)]
mmc: mmc header fix

Structure definition used type block_dev_desc_t, defined in part.h, which
wasn't included in mmc.h. It worked only in circumstances when common.h,
or another header using part.h was incuded in implementation files.

Change-Id: I5b203928b689887e3e78beb00a378955e0553eb7
Signed-off-by: Mateusz Zalega <m.zalega@samsung.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
9 years agoMerge branch 'next' of git://git.denx.de/u-boot-sh
Tom Rini [Fri, 2 May 2014 15:48:07 +0000 (11:48 -0400)]
Merge branch 'next' of git://git.denx.de/u-boot-sh

9 years agoARM: highbank: use default prompt
Rob Herring [Thu, 10 Apr 2014 21:17:31 +0000 (16:17 -0500)]
ARM: highbank: use default prompt

Since highbank is actually shared between Highbank and Midway platforms,
remove the Highbank name from the prompt and use the default.

Signed-off-by: Rob Herring <robh@kernel.org>
9 years agoARM: highbank: use config_distro_defaults.h
Rob Herring [Thu, 10 Apr 2014 21:17:30 +0000 (16:17 -0500)]
ARM: highbank: use config_distro_defaults.h

Adapt highbank to use config_distro_defaults.h and remove the redundant
defines.

Signed-off-by: Rob Herring <robh@kernel.org>
9 years agousb: gadget: allow ci_udc to build with new gadget framework
Stephen Warren [Mon, 28 Apr 2014 21:42:00 +0000 (15:42 -0600)]
usb: gadget: allow ci_udc to build with new gadget framework

Allow ci_udc.o to be built when using the new(?) USB gadget framework,
as enabled by CONFIG_USB_GADGET.

Note that this duplicates the Makefile entry for ci_udc.o, since it's
also included inside #ifdef CONFIG_USB_ETHER. I'm not sure what that
define means; perhaps an old style of Ethernet-specific USB gadget
implementation?

I wonder if the line that this patch adds shouldn't be outside all of
the ifdefs, so it stands on its own, similar to how e.g. epautoconf.o
is shared between the two?

Signed-off-by: Stephen Warren <swarren@nvidia.com>
9 years agousb: ums: use only 1 buffer for CI_UDC
Stephen Warren [Thu, 24 Apr 2014 23:52:40 +0000 (17:52 -0600)]
usb: ums: use only 1 buffer for CI_UDC

ci_udc.c allocates only a single buffer for each endpoint, which
ci_ep_alloc_request() returns as a hard-coded value rather than
dynamically allocating. Consequently, storage_common.c must limit
itself to using a single buffer at a time. Add a special case
to the definition of FSG_NUM_BUFFERS for this.

Another option would be to fix ci_ep_alloc_request() to dynamically
allocate the buffers like some/all(?) other device mode drivers do.
However, I don't think that ci_ep_queue() supports queueing up
multiple buffers either yet, and I'm not familiar enough with the
controller yet to implement that. As such, any attempt to use multiple
buffers simply results in data corruption and other errors.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
9 years agousb: ci_udc: support variants with hostpc register
Stephen Warren [Thu, 24 Apr 2014 23:52:39 +0000 (17:52 -0600)]
usb: ci_udc: support variants with hostpc register

Tegra's USB controller appears to be a variant of the ChipIdea
controller; perhaps derived from it, or simply a different version of
the IP core to what U-Boot supports today.

In this variant, at least the following difference are present:
- Some registers are moved about.
- Setup transaction completion is reported in a separate 'epsetupstat'
  register, rather than in 'epstat' (which still exists, perhaps for
  other transaction types).
- USB connection speed is reported in a separate 'hostpc1_devlc'
  register, rather than 'portsc'.
- The registers used by ci_udc.c begin at offset 0x130 from the USB
  register base, rather than offset 0x140. However, this is handled
  by the associated EHCI controller driver, since the register address
  is stored in controller.ctrl->hcor.

Introduce define CONFIG_CI_UDC_HAS_HOSTPC to indicate which variant of
the controller should be supported. The "HAS_HOSTPC" part of this name
mirrors the similar "has_hostpc" field used by the Linux EHCI controller
core to represent the presence/absence of the hostpc1_devlc register.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
9 years agousb: ci_udc: make PHY initialization conditional
Stephen Warren [Thu, 24 Apr 2014 23:52:38 +0000 (17:52 -0600)]
usb: ci_udc: make PHY initialization conditional

usb_gadget_register_driver() currently unconditionally programs PORTSC
to select a ULPI PHY. This is incorrect on at least the Tegra boards I
am testing with, which use a UTMI PHY for the OTG ports. Make the PHY
selection code conditional upon the specific EHCI controller that is in
use.

Ideally, I believe that the PHY initialization code should be part of
ehci_hcd_init() in the relevant EHCI controller driver, or some board-
specific function that ehci_hcd_init() calls.

For MX6, I'm not sure this PHY initialization code is correct even before
this patch, since ehci-mx6's ehci_hcd_init() already configures PORTSC to
a board-specific value, and it seems likely that the code in ci_udc.c is
incorrectly undoing this. Perhaps this is not an issue if the PHY
selection register bits aren't implemented on this instance of the MX6
USB controller?

ehci-mxs.c doens't appear to touch PORTSC, so this code is likely still
required there.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
9 years agousb: ci_udc: set ep->req.actual after transfer
Stephen Warren [Thu, 24 Apr 2014 23:52:37 +0000 (17:52 -0600)]
usb: ci_udc: set ep->req.actual after transfer

At least drivers/usb/gadget/storage_common.c expects that ep->req.actual
contain the number of bytes actually transferred. (At least in practice,
I observed it failing to work correctly unless this was the case).

However, ci_udc.c modifies ep->req.length instead. I assume that .length
 is supposed to represent the allocated buffer size, whereas .actual is
supposed to represent the actual number of bytes transferred. In the OUT
transaction case, this may happen simply because the host sends a smaller
 packet than the max possible size, which is quite legal. In the IN case,
transferring fewer bytes than requested could presumably happen as an
error.

Modify handle_ep_complete() to write to .actual rather than modifying
.length.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
9 years agousb: ci_udc: Support larger packets
Stephen Warren [Thu, 24 Apr 2014 23:52:36 +0000 (17:52 -0600)]
usb: ci_udc: Support larger packets

ci_ep_queue() currently only fills in the page0/page1 fields in the
queue item. If the buffer is larger than 4KiB (unaligned) or 8KiB
(page-aligned), then this prevents the HW from knowing where to write
the balance of the data.

Fix this by initializing all 5 pageN pointers, which allows up to
16KiB (potentially non-page-aligned) buffers.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
9 years agodfu:fix: Replace wrong return value with proper one
Lukasz Majewski [Thu, 24 Apr 2014 08:24:53 +0000 (10:24 +0200)]
dfu:fix: Replace wrong return value with proper one

This patch remove always false (since we tested ret = 0) ternary operator
with ret value returned.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoexynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT
andrey.konovalov@linaro.org [Tue, 22 Apr 2014 17:23:49 +0000 (21:23 +0400)]
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>
9 years agousb: musb: fill in usb_gadget_unregister_driver
Rob Herring [Fri, 18 Apr 2014 13:54:30 +0000 (08:54 -0500)]
usb: musb: fill in usb_gadget_unregister_driver

Add missing missing disconnect and unbind calls to the musb gadget driver's
usb_gadget_unregister_driver function. Otherwise, any gadget drivers fail
to uninitialize and run a 2nd time.

Signed-off-by: Rob Herring <robh@kernel.org>
9 years agousb: handle NULL table in usb_gadget_get_string
Rob Herring [Fri, 18 Apr 2014 13:54:28 +0000 (08:54 -0500)]
usb: handle NULL table in usb_gadget_get_string

Allow a NULL table to be passed to usb_gadget_get_string for cases
when a string table may not be populated.

Signed-off-by: Rob Herring <robh@kernel.org>
Reviewed-by: Tom Rini <trini@ti.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb:gadget:f_thor: fix write to filesystem by add dfu_flush()
Przemyslaw Marczak [Fri, 18 Apr 2014 07:48:25 +0000 (09:48 +0200)]
usb:gadget:f_thor: fix write to filesystem by add dfu_flush()

Since dfu read/write operations needs to be flushed manually,
writing to filesystem on MMC by thor was broken. MMC raw write
actually is working fine because current dfu_flush() function
writes filesystem only. This commit adds dfu_flush() to f_thor
and now filesystem write is working.

This change was tested on Trats2 board.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Cc: Tom Rini <trini@ti.com>
9 years agousb:gadget:f_thor: code cleanup in function download_tail()
Przemyslaw Marczak [Fri, 18 Apr 2014 07:48:24 +0000 (09:48 +0200)]
usb:gadget:f_thor: code cleanup in function download_tail()

In thor's download_tail() function, dfu_get_entity() is called
before each dfu_write() call and the returned entity pointers
are the same. So dfu_get_entity() can be called just once and
this patch changes this.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Cc: Tom Rini <trini@ti.com>
9 years agousb: Fix USB keyboard polling via control endpoint
Adrian Cox [Thu, 10 Apr 2014 13:02:44 +0000 (14:02 +0100)]
usb: Fix USB keyboard polling via control endpoint

USB keyboard polling failed for some keyboards on PowerPC 5020.
This was caused by requesting only 4 bytes of data from keyboards that
produce an 8 byte HID report.

Signed-off-by: Adrian Cox <adrian@humboldt.co.uk>
Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Marek Vasut <marex@denx.de>
9 years agousb: Add endian support macros to interrupt transfers in the EHCI driver.
Adrian Cox [Thu, 10 Apr 2014 12:29:45 +0000 (13:29 +0100)]
usb: Add endian support macros to interrupt transfers in the EHCI driver.

Update the EHCI driver to support interrupt transfers on PowerPC.

Signed-off-by: Adrian Cox <adrian@humboldt.co.uk>