platform/kernel/u-boot.git
9 years agotest: Move the unit tests to their own menu
Joe Hershberger [Wed, 20 May 2015 19:27:31 +0000 (14:27 -0500)]
test: Move the unit tests to their own menu

Make all unit tests selectable as a menu of test suites instead of just
sitting in the top-level menu individually.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agotest: dm: Move the time test over to the ut command
Joe Hershberger [Wed, 20 May 2015 19:27:30 +0000 (14:27 -0500)]
test: dm: Move the time test over to the ut command

Unify the command for running unit tests further by moving the "ut_time"
command over to "ut time".

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agotest: dm: Move the dm tests over to the ut command
Joe Hershberger [Wed, 20 May 2015 19:27:29 +0000 (14:27 -0500)]
test: dm: Move the dm tests over to the ut command

Unify the command for running unit tests further by moving the "dm test"
command over to "ut dm".

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agotest: Add a common unit test command
Joe Hershberger [Wed, 20 May 2015 19:27:28 +0000 (14:27 -0500)]
test: Add a common unit test command

Add a command that all other unit tests should be a sub-command of.
Also include a command that will run all tests.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agotest: Generalize the unit test framework
Joe Hershberger [Wed, 20 May 2015 19:27:27 +0000 (14:27 -0500)]
test: Generalize the unit test framework

Separate the ability to define tests and assert status of test functions
from the dm tests so they can be used more consistently throughout all
tests.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agonet: Handle ethaddr changes as an env callback
Joe Hershberger [Wed, 20 May 2015 19:27:26 +0000 (14:27 -0500)]
net: Handle ethaddr changes as an env callback

When the ethaddr is changed in the env, update the device pdata at the
same time (only if it is probed for the DM case; only if registered for
the non-DM case). Again this gets us closer to completely non-polled
env needed to simplify the net_loop.

This requires that the NET feature select the REGEX feature.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet: Remove duplicate bootfile syncing functionality
Joe Hershberger [Wed, 20 May 2015 19:27:25 +0000 (14:27 -0500)]
net: Remove duplicate bootfile syncing functionality

The bootfile env var is already kept up to date by the callback in net.c
so there is no need to poll it too.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet: Add default flags for common net env vars
Joe Hershberger [Wed, 20 May 2015 19:27:24 +0000 (14:27 -0500)]
net: Add default flags for common net env vars

Check that the common network stack's env vars conform to the proper
format for IP addresses.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agonet: Use env callbacks for net variables
Joe Hershberger [Wed, 20 May 2015 19:27:23 +0000 (14:27 -0500)]
net: Use env callbacks for net variables

Instead of checking for changes to the env each time we enter the
net_loop, use the env callbacks to update the values of the variables.
Don't update the variables when the source was programmatic, since the
variables were the source of the new value.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agonet: Apply default format rules to all ethaddr
Joe Hershberger [Wed, 20 May 2015 19:27:22 +0000 (14:27 -0500)]
net: Apply default format rules to all ethaddr

Use a regular expression to apply the default formatting flags for all
ethaddr env vars.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoenv: Distinguish finer between source of env change
Joe Hershberger [Wed, 20 May 2015 19:27:21 +0000 (14:27 -0500)]
env: Distinguish finer between source of env change

We already could tell the difference in the callback between an import
and "other" which we called interactive. Now add further distinction
between interactive (i.e. running env set / env edit / env ask / etc.
from the U-Boot command line) and programmatic (i.e. when u-boot source
calls any variant of setenv() ).

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoenv: Add regex support to env_attrs
Joe Hershberger [Wed, 20 May 2015 19:27:20 +0000 (14:27 -0500)]
env: Add regex support to env_attrs

Allow the features that use env_attrs to specify regexs for the name

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoenv: Allow env_attr_walk to pass a priv * to callback
Joe Hershberger [Wed, 20 May 2015 19:27:19 +0000 (14:27 -0500)]
env: Allow env_attr_walk to pass a priv * to callback

In some cases it can be helpful to have context in the callback about
the calling situation. This is needed for following patches.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoenv: Simplify the reverse_strstr() interface
Joe Hershberger [Wed, 20 May 2015 19:27:18 +0000 (14:27 -0500)]
env: Simplify the reverse_strstr() interface

The logic to find the whole matching name was split needlessly between
the reverse_strstr function and its caller. Fully contain it to make the
interface for calling it more consistent.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agoenv: Fix return values in env_attr_lookup()
Joe Hershberger [Wed, 20 May 2015 19:27:17 +0000 (14:27 -0500)]
env: Fix return values in env_attr_lookup()

This function returned numbers for error codes. Change them to error
codes.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agosandbox: Enable some ENV commands
Joe Hershberger [Wed, 20 May 2015 19:27:16 +0000 (14:27 -0500)]
sandbox: Enable some ENV commands

Enable some additional ENV commands in sandbox to aid in build testing
and run testing.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agosandbox: Use defconfig to enable features
Joe Hershberger [Wed, 20 May 2015 19:27:15 +0000 (14:27 -0500)]
sandbox: Use defconfig to enable features

Stop using the sandbox arch Kconfig to override defaults for config
options. This is a bit of abuse and may be causing build problems.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agosandbox: Cleanup order and extra defines in defconfig
Joe Hershberger [Wed, 20 May 2015 19:27:14 +0000 (14:27 -0500)]
sandbox: Cleanup order and extra defines in defconfig

The defconfigs should not be edited directly. They should be generated
by editing the .config (through menuconfig or whatever) and then run
make savedefconfig to have the Kconfig system generate a clean defconfig

I did this for sandbox here with no actual changes.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoMerge git://git.denx.de/u-boot-net
Tom Rini [Wed, 20 May 2015 19:57:55 +0000 (15:57 -0400)]
Merge git://git.denx.de/u-boot-net

9 years agoREADME.scrapyard: add entries for dead board, T4240EMU and sc3
Masahiro Yamada [Fri, 15 May 2015 02:51:32 +0000 (11:51 +0900)]
README.scrapyard: add entries for dead board, T4240EMU and sc3

Follow-up commit 7fc63cca611b (mpc85xx/T4240EMU: Remove T4240EMU
board), and commit 27e721564591 (ppc4xx: Remove sc3 board),
filling the blank fields.

Reviewed-by: Stefan Roese <sr@denx.de>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agonet: Remove all calls to net_random_ethaddr()
Joe Hershberger [Mon, 4 May 2015 19:55:15 +0000 (14:55 -0500)]
net: Remove all calls to net_random_ethaddr()

Remove the calls to net_random_ethaddr() that some boards and some
drivers are calling. This is now implemented inside of net/eth.c

Enable the feature for all boards that previously enabled it.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-By: Michael Walle <michael@walle.cc> (for the lsxl board part)
Series-changes: 2
-Fixed bfin build errors

9 years agonet: Remove all references to CONFIG_ETHADDR and friends
Joe Hershberger [Mon, 4 May 2015 19:55:14 +0000 (14:55 -0500)]
net: Remove all references to CONFIG_ETHADDR and friends

We really don't want boards defining fixed MAC addresses in their config
so we just remove the option to set it in a fixed way. If you must have
a MAC address that was not provisioned, then use the random MAC address
functionality.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agonet: Implement random ethaddr fallback in eth.c
Joe Hershberger [Mon, 4 May 2015 19:55:13 +0000 (14:55 -0500)]
net: Implement random ethaddr fallback in eth.c

Implement the random ethaddr fallback in eth.c so it is in a common
place and not reimplemented in each board or driver that wants this
behavior.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agonet: phy: Add support for all targets which requires MANUAL_RELOC
Michal Simek [Wed, 13 May 2015 11:40:40 +0000 (13:40 +0200)]
net: phy: Add support for all targets which requires MANUAL_RELOC

Targets with CONFIG_NEEDS_MANUAL_RELOC do not use REL/RELA
relocation (mostly only GOT) where functions aray are not
updated. This patch is fixing function pointers passed to phy_register
function.
This patch was tested on Microblaze architecture.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet/phy: refactor RTL8211F initialization
Shengzhou Liu [Fri, 24 Apr 2015 08:57:17 +0000 (16:57 +0800)]
net/phy: refactor RTL8211F initialization

RTL8211F needs to enalbe TXDLY for RGMII during
phy initialization, so move it to rtl8211f_config
for early initialization.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
cc: Joe Hershberger <joe.hershberger@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet: Update hardware MAC address if it changes in env
Joe Hershberger [Tue, 24 Mar 2015 07:41:49 +0000 (02:41 -0500)]
net: Update hardware MAC address if it changes in env

When the ethaddr changes in the env, the hardware should also be updated
so that MAC filtering will work properly without resetting U-Boot.

Also remove the manual calls to set the hwaddr that was included in a
few drivers as a result of the framework not doing it.

Reported-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
9 years agonet/phy: Add support for realtek RTL8211F
Shengzhou Liu [Thu, 12 Mar 2015 10:54:59 +0000 (18:54 +0800)]
net/phy: Add support for realtek RTL8211F

RTL8211F has different registers from RTL8211E.
This patch adds support for RTL8211F PHY which
can be found on Freescale's T1023 RDB board.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agosunxi: Cache line size definition
Paul Kocialkowski [Sat, 16 May 2015 17:52:11 +0000 (19:52 +0200)]
sunxi: Cache line size definition

Sunxi platforms use ARM Cortex A8, A7 and A15 (unsupported yet) CPU cores,
which all have 64 bytes cache line size.

This is required to e.g. enable USB gadget.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: VBUS detection function fixup in g_dnl_board_usb_cable_connected
Paul Kocialkowski [Sat, 16 May 2015 17:52:10 +0000 (19:52 +0200)]
sunxi: VBUS detection function fixup in g_dnl_board_usb_cable_connected

sunxi_usbc_vbus_detect was renamed to sunxi_usb_phy_vbus_detect but
g_dnl_board_usb_cable_connected was still using the old name, breaking the build
when USB gadget is enabled.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Add ga10h v1.1 defconfig
Hans de Goede [Thu, 14 May 2015 17:01:40 +0000 (19:01 +0200)]
sunxi: Add ga10h v1.1 defconfig

The ga10h is an 10" tablet with an A33 or A23 soc, 1G RAM, 8G or 16G nand,
sdio wifi, 2 micro usb ports, 1 otg and 1 host and 1 micro sd slot.

This commit adds a defconfig for the v1.1 pcb with an a33 soc.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: video: Fix lvds panel support for sun6i+
Hans de Goede [Thu, 14 May 2015 16:52:54 +0000 (18:52 +0200)]
sunxi: video: Fix lvds panel support for sun6i+

We've never tested the lvds panel support on sun6i+ SoCs until now, and
unsurprisingly the lvds code needed some fixes to work on my ga10h A33
tablet with lvds panel. This makes the panel on that tablet actually work.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: Make DRAM_ODT_EN Kconfig setting a bool
Hans de Goede [Wed, 13 May 2015 13:00:46 +0000 (15:00 +0200)]
sunxi: Make DRAM_ODT_EN Kconfig setting a bool

Make DRAM_ODT_EN Kconfig setting a bool, add a separate DRAM_ODT_CORRECTION
setting for A23 SoCs and use DRAM_ODT_EN Kconfig everywhere instead of
only in dram_sun4i.c and hardcoding odt_en elsewhere.

Note this commit makes no functional changes for existing boards,
its purpose is to allow changing the odt_en value on future A33 boards.

For sun4i/sun5i/sun7i boards which set DRAM_ODT_EN=y (which no defconfigs
currently do) this patch turns on odt for both the DQ and the DQS lines,
whereas previously it was possibly (but not desirable) to turn odt on only
for one of them by setting the in DRAM_ODT_EN option to 1 or 2 instead of 3.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
9 years agosunxi: Fix dram initialization not working on some a33 devices
Hans de Goede [Wed, 13 May 2015 12:54:16 +0000 (14:54 +0200)]
sunxi: Fix dram initialization not working on some a33 devices

When porting the allwinner dram init code to u-boot we missed some code
setting an extra bit when doing auto dram config.

This commits add this bit, fixing dram init not working on the ga10h
10" a33 tablet which I'm bringing up atm.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: add support for UART2 on A23/A33
Laurent Itti [Wed, 6 May 2015 00:02:00 +0000 (17:02 -0700)]
sunxi: add support for UART2 on A23/A33

Add support for UART2 (2-pin version but note that RTS/CTS pins are available
pn that port for possible future use), can be selected in config
by using CONFIG_CONS_INDEX=3

Signed-off-by: Laurent Itti <laurentitti@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agoconsole: Fix pre-console flushing via cfb_console being very slow
Hans de Goede [Tue, 5 May 2015 11:13:36 +0000 (13:13 +0200)]
console: Fix pre-console flushing via cfb_console being very slow

On my A10 OlinuxIno Lime I noticed a huge (5+ seconds) delay coming from
console_init_r. This turns out to be caused by the preconsole buffer flushing
to the cfb_console. The Lime only has a 16 bit memory bus and that is already
heavy used to scan out the 1920x1080 framebuffer.

The problem is that print_pre_console_buffer() was printing the buffer once
character at a time and the cfb_console code then ends up doing a cache-flush
for touched display lines for each character.

This commit fixes this by first building a 0 terminated buffer and then
printing it in one puts() call, avoiding unnecessary cache flushes.

This changes the time for the flush from 5+ seconds to not noticable.

The downside of this approach is that the pre-console buffer needs to fit
on the stack, this is not that much to ask since we are talking about plain
text here. This commit also adjusts the sunxi CONFIG_PRE_CON_BUF_SZ to
actually fit on the stack. Sunxi currently is the only user of the pre-console
code so no other boards need to be adjusted.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
9 years agosunxi: Set SYS_MALLOC_CLEAR_ON_INIT to n
Hans de Goede [Tue, 5 May 2015 10:49:36 +0000 (12:49 +0200)]
sunxi: Set SYS_MALLOC_CLEAR_ON_INIT to n

We don't need this on sunxi, as we always use calloc or memset when
initialised memory is required. Clearing this shaves some time of our
boot time.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: Pass serial number through ATAG
Paul Kocialkowski [Sat, 28 Mar 2015 17:35:36 +0000 (18:35 +0100)]
sunxi: Pass serial number through ATAG

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 agoMerge git://git.denx.de/u-boot-samsung
Tom Rini [Mon, 18 May 2015 13:15:15 +0000 (09:15 -0400)]
Merge git://git.denx.de/u-boot-samsung

9 years agoexynos: clock: clean up checkpatch issues
Minkyu Kang [Mon, 11 May 2015 07:27:07 +0000 (16:27 +0900)]
exynos: clock: clean up checkpatch issues

Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoarc: gitignore: ignore ARC DTBs
Masahiro Yamada [Thu, 14 May 2015 09:59:28 +0000 (18:59 +0900)]
arc: gitignore: ignore ARC DTBs

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoMAINTAINERS, git-mailrc: Update Jagan's name and e-mail
Jagan Teki [Fri, 15 May 2015 19:27:02 +0000 (00:57 +0530)]
MAINTAINERS, git-mailrc: Update Jagan's name and e-mail

Signed-off-by: Jagan Teki <jteki@openedev.com>
9 years agoimx: ventana: use stack relocation
Tim Harvey [Thu, 14 May 2015 13:22:07 +0000 (06:22 -0700)]
imx: ventana: use stack relocation

Certain features we desire require a larger stack than is available by using
iRAM (most notably for us, env_mmc). Relocate the stack to DRAM so that
we can use these features.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoimx: ventana: add GSC boot watchdog disable to SPL
Tim Harvey [Sat, 9 May 2015 01:28:41 +0000 (18:28 -0700)]
imx: ventana: add GSC boot watchdog disable to SPL

If the SPL is to be used for Falcon mode then we need to make sure the SPL
disable the GSC boot watchdog.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: add gpio setup to SPL
Tim Harvey [Sat, 9 May 2015 01:28:39 +0000 (18:28 -0700)]
imx: ventana: add gpio setup to SPL

If the SPL is to be used for Falcon mode then we need to make sure it
configures basic GPIO (iomux, padconf, and default output levels).

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: use common uart and i2c setup functions in SPL
Tim Harvey [Sat, 9 May 2015 01:28:38 +0000 (18:28 -0700)]
imx: ventana: use common uart and i2c setup functions in SPL

Now that uart and i2c setup functions have been moved to common.c we can
use these and remove code duplication.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: detect pmic using i2c probe instead of board model
Tim Harvey [Sat, 9 May 2015 01:28:37 +0000 (18:28 -0700)]
imx: ventana: detect pmic using i2c probe instead of board model

Avoid requiring board-model and probe pmic by its i2c address.
This is in preparation for being able to call pmic_setup() from SPL
and not need board type.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: move GSC boot watchdog disable function to gsc.c
Tim Harvey [Sat, 9 May 2015 01:28:36 +0000 (18:28 -0700)]
imx: ventana: move GSC boot watchdog disable function to gsc.c

Move the code that disables the GSC boot watchdog into gsc.c

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: split out common functions between SPL and uboot
Tim Harvey [Sat, 9 May 2015 01:28:35 +0000 (18:28 -0700)]
imx: ventana: split out common functions between SPL and uboot

Move shared functions used by both SPL and U-Boot to common.c:
 - setup_iomux_uart() and uart pad config
 - gpio pad config

In the process also moved the following to common.c in preparation for
calling it from the SPL:
 - split i2c setup into a shared function
 - move pmic init to setup_pmic() function to call directly from
   power_init_board()
 - split gpio setup into early (iomux and default pin config)
   and late (output configuration based on env)

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: default msata/pci mux to pci before PCI enumeration
Tim Harvey [Sat, 9 May 2015 01:28:34 +0000 (18:28 -0700)]
imx: ventana: default msata/pci mux to pci before PCI enumeration

PCI enumeration occurs early, before we fully configure our GPIO's. Make
sure we steer the MSATA/PCI mux to PCI in board_init to ensure PCI is
selected before enumeration.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: fix pcie reset for GW522x
Tim Harvey [Sat, 9 May 2015 01:28:33 +0000 (18:28 -0700)]
imx: ventana: fix pcie reset for GW522x

The re-assignment of pcie_rst gpio for GW522x needs to occur earlier, before
the PCI subsystem calls the toggle funciton.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: config: enable Thermal support
Tim Harvey [Sat, 9 May 2015 01:28:30 +0000 (18:28 -0700)]
imx: ventana: config: enable Thermal support

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: enable DM_SERIAL
Tim Harvey [Sat, 9 May 2015 01:28:29 +0000 (18:28 -0700)]
imx: ventana: enable DM_SERIAL

mxc_serial supports DM so lets use it.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: register gpio's with gpio_request
Tim Harvey [Sat, 9 May 2015 01:28:28 +0000 (18:28 -0700)]
imx: ventana: register gpio's with gpio_request

Prior to using a gpio a call to gpio_request() should be called to register
it with the gpio subsystem.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: config: enable driver model
Tim Harvey [Sat, 9 May 2015 01:28:27 +0000 (18:28 -0700)]
imx: ventana: config: enable driver model

Enable U-Boot Driver Model (DM).

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: config: enable gpio command
Tim Harvey [Sat, 9 May 2015 01:28:26 +0000 (18:28 -0700)]
imx: ventana: config: enable gpio command

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: display SPL boot device
Tim Harvey [Sat, 9 May 2015 01:28:25 +0000 (18:28 -0700)]
imx: ventana: display SPL boot device

Display what device the SPL will fetch uboot.img from

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoimx: ventana: set dtype env var to boot media
Tim Harvey [Sat, 9 May 2015 01:28:24 +0000 (18:28 -0700)]
imx: ventana: set dtype env var to boot media

Bootscripts for some distro's such as Android can benefit from knowing
what boot media its script was loaded from.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agoarm: mx6: ddr3: Remove dead code
Nikolay Dimitrov [Fri, 8 May 2015 10:06:50 +0000 (13:06 +0300)]
arm: mx6: ddr3: Remove dead code

imx6 mmdc supports data rates up to 1066 MT/s, so remove the code handling
higher data rates.

Signed-off-by: Nikolay Dimitrov <picmaster@mail.bg>
9 years agomx6: Set shared override bit in PL310 AUX_CTRL register
Fabio Estevam [Wed, 11 Mar 2015 20:12:12 +0000 (17:12 -0300)]
mx6: Set shared override bit in PL310 AUX_CTRL register

Having bit 22 cleared in the PL310 Auxiliary Control register (shared
attribute override enable) has the side effect of transforming Normal
Shared Non-cacheable reads into Cacheable no-allocate reads.

Coherent DMA buffers in Linux always have a Cacheable alias via the
kernel linear mapping and the processor can speculatively load cache
lines into the PL310 controller. With bit 22 cleared, Non-cacheable
reads would unexpectedly hit such cache lines leading to buffer
corruption.

This was inspired by a patch from Catalin Marinas [1] and also from recent
discussions in the linux-arm-kernel list [2] where Russell King and Rob Herring
suggested that bootloaders should initialize the cache.

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2010-November/031810.html
[2] https://lkml.org/lkml/2015/2/20/199

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
9 years agotbs2910: add CONFIG_SUPPORT_EMMC_BOOT
Soeren Moch [Tue, 5 May 2015 21:09:21 +0000 (23:09 +0200)]
tbs2910: add CONFIG_SUPPORT_EMMC_BOOT

Add emmc boot partition commands to be able to select the boot partition.

Signed-off-by: Soeren Moch <smoch@web.de>
9 years agotbs2910: use default CONFIG_SYS_PBSIZE
Soeren Moch [Tue, 5 May 2015 21:09:20 +0000 (23:09 +0200)]
tbs2910: use default CONFIG_SYS_PBSIZE

Since there is a default CONFIG_SYS_PBSIZE definition in config_fallbacks.h,
this setting is no longer required in board configurations.

Signed-off-by: Soeren Moch <smoch@web.de>
9 years agotbs2910: only enable vga output for stdout/stderr when hdmi detected
Soeren Moch [Tue, 5 May 2015 21:09:19 +0000 (23:09 +0200)]
tbs2910: only enable vga output for stdout/stderr when hdmi detected

Only enable graphical output for stdout/stderr (and a usb keyboard for stdin)
when a hdmi device is detected.
Serial console is always enabled for stdin/stdout/stderr.

Signed-off-by: Soeren Moch <smoch@web.de>
9 years agotbs2910: support for usb otg host mode
Soeren Moch [Tue, 5 May 2015 21:09:18 +0000 (23:09 +0200)]
tbs2910: support for usb otg host mode

Add support for USB OTG host mode. Only high speed devices supported so far
(e.g. usb 2.0 hub required to connect a keyboard).

Signed-off-by: Soeren Moch <smoch@web.de>
9 years agowarp: README: Fix typo
Fabio Estevam [Tue, 12 May 2015 16:19:06 +0000 (13:19 -0300)]
warp: README: Fix typo

Fix the spelling of 'successful'.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
9 years agomx6cuboxi: Mention Cubox-i in the README
Fabio Estevam [Mon, 27 Apr 2015 12:20:53 +0000 (09:20 -0300)]
mx6cuboxi: Mention Cubox-i in the README

Cubox-i boards are also supported, so update the README file.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
9 years agohummingboard: Remove mx6solo specific support
Fabio Estevam [Mon, 27 Apr 2015 12:20:52 +0000 (09:20 -0300)]
hummingboard: Remove mx6solo specific support

Hummingboard dual, dual-lite and solo are now supported via SPL mechanism.

Remove the previous hummingboard support, which does not use SPL and supported
only the solo variant.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
9 years agoimx: ventana: fix boot to SD
Tim Harvey [Wed, 6 May 2015 20:16:56 +0000 (13:16 -0700)]
imx: ventana: fix boot to SD

This fixes a regression caused by e25fbe3fe531029dc7b100ea4c79dbc802e17fc2
(gw_ventana: Move the DCD settings to spl code)

The clock gating must be setup prior to calling arch_cpu_init(). Without this
booting to SD (directly via eFuse or via bmode) will hang.

Cc: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
9 years agoimx: dek_blob: Add explicit include for mapmem
Ulises Cardenas [Mon, 4 May 2015 14:53:28 +0000 (09:53 -0500)]
imx: dek_blob: Add explicit include for mapmem

 Boards such as imx6q_sabresd might not have mapmem.h as part of
 their common library. This causes a build error if the DEK blob
 command is enabled.

 Fix: make explicit the include of mapmem.h

Signed-off-by: Ulises Cardenas <Ulises.Cardenas@freescale.com>
Reviewed-by: Ruchika Gupta <Ruchika.gupta@freescale.com>
9 years agobugfix i.mx6 pwm: prevent overflow of period_c * duty_ns
Brecht Neyrinck [Wed, 6 May 2015 07:57:48 +0000 (09:57 +0200)]
bugfix i.mx6 pwm: prevent overflow of period_c * duty_ns

Prevent overflow by casting duty_ns to ull first. This bug came up when trying to create a 200 Hz PWM

Signed-off-by: Brecht Neyrinck <bnrn@psicontrol.com>
Acked-by: Heiko Schocher<hs@denx.de>
9 years agomx6cuboxi: Skip usb initialization when booting without HDMI
Fabio Estevam [Mon, 4 May 2015 17:09:23 +0000 (14:09 -0300)]
mx6cuboxi: Skip usb initialization when booting without HDMI

Starting USB initialization is useful for those who use Cuboxi/Hummingboard
with HDMI and USB keyboard.

However, when booting without a HDMI connection we can skip the usb
initialization, which makes the boot faster.

Signed-off-by: Jon Nettleton <jon.nettleton@gmail.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-By: Vagrant Cascadian <vagrant@aikidev.net>
9 years agoarm: mx6: tqma6: Update to optionally configure an alternative SPI setup
Stefan Roese [Thu, 12 Mar 2015 12:34:30 +0000 (13:34 +0100)]
arm: mx6: tqma6: Update to optionally configure an alternative SPI setup

By making the tqma6_iomuxc_spi() weak, this patch adds the possibility to
add a different function for this SPI configuration. This can be used
by other baseboards, that might have a different SPI setup.

This patch will be used by the upcoming WRU-IV board support which also
uses the TQMa6 SoM.

Signed-off-by: Stefan Roese <sr@denx.de>
9 years agoarm: mx6: tqma6: Fix USB and add other filesystems
Stefan Roese [Thu, 12 Mar 2015 12:34:29 +0000 (13:34 +0100)]
arm: mx6: tqma6: Fix USB and add other filesystems

This patch fixes the USB EHCI support on the TQMa6 SoM. Additionally
some filesystems are added, included the generic FS commands (e.g.
ls...).

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Markus Niebel <Markus.Niebel@tq-group.com>
Cc: Stefano Babic <sbabic@denx.de>
Acked-By: Markus Niebel <Markus.Niebel@tq-group.com>
9 years agomx6cuboxi: Pull down PAD_ENET_RXD0/RXD1
Fabio Estevam [Mon, 4 May 2015 14:22:56 +0000 (11:22 -0300)]
mx6cuboxi: Pull down PAD_ENET_RXD0/RXD1

Configure PAD_ENET_RXD0/RXD1 pads as pull down because these pads are directly
connected to the Atheros 8035/8030 although they should be functional
only in the RMII mode - 8030.

Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-By: Vagrant Cascadian <vagrant@aikidev.net>
9 years agomx6cuboxi: Fix Ethernet PHY detection problem
Fabio Estevam [Mon, 4 May 2015 14:22:55 +0000 (11:22 -0300)]
mx6cuboxi: Fix Ethernet PHY detection problem

mx6cuboxi sometimes fails to recognize the Ethernet PHY:

Net:   Phy 0 not found

The explanation for this behavior comes from from Rabeeh Khoury:

"The LED_ACT pin on the carrier-one boards had a pull down that
forces the phy address to 0x0; where on CuBox-i and the production
HummingBoard that pin is connected directly to LED that depending
on the pull down strength of the LED it might be sampled as '0' or '1' thus
the phy address might appear as either address 0x0 or 0x4."

"This is AR8035 implementation; in reset stage the LED pin is configured as
input, and pull up/down does matter. In this case it configures the PHY
address.

After reset is deasserted the same LED pin becomes output and then
according to the previous pull/up it should be active high/low"

One way to properly fix this behavior is to place external pull-up/down
resistors in the LED line, but from a software standpoint we can fix it
by telling phy_find_by_mask() to scan the PHY at addresses
0x0 and 0x4.

Reported-by: Vagrant Cascadian <vagrant@aikidev.net>
Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Stefano Babic <sbabic@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-By: Vagrant Cascadian <vagrant@aikidev.net>
9 years agologos: Add Solidrun's logo
Fabio Estevam [Thu, 30 Apr 2015 01:28:12 +0000 (22:28 -0300)]
logos: Add Solidrun's logo

Let Solidrun's logo appear on Cuboxi and Hummingboard by default.

Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
9 years agomx6cuboxi: Allow HDMI and USB keyboard to be stdout/stdin
Fabio Estevam [Thu, 30 Apr 2015 01:28:11 +0000 (22:28 -0300)]
mx6cuboxi: Allow HDMI and USB keyboard to be stdout/stdin

There are users of Cuboxi and Hummingboard that use these boards without
connecting them to a USB/serial adapter.

Allow such usage by allowing the HDMI port to act as stdout and USB keyboard
as stdin.

The serial console still also works as stdin/stdout.

Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Vagrant Cascadian <vagrant@aikidev.net>
9 years agomx6cuboxi: Add USB host support
Fabio Estevam [Thu, 30 Apr 2015 01:28:10 +0000 (22:28 -0300)]
mx6cuboxi: Add USB host support

Enable USB Host1 port.

Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-By: Vagrant Cascadian <vagrant@aikidev.net>
9 years agomx6cuboxi: Add HDMI output support
Fabio Estevam [Thu, 30 Apr 2015 01:28:09 +0000 (22:28 -0300)]
mx6cuboxi: Add HDMI output support

Add HDMI output using PLL5 as the source for the IPU clocks,
and accurate VESA timings.

These settings are based on the patch from Soeren Moch <smoch@web.de>
submitted for the tbs2910 mx6 based board.

It allows the display to work properly at 1024x768@60.

This should make the hdmi output signal compatible with most if not all
modern displays.

Signed-off-by: Jon Nettleton <jon.nettleton@gmail.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Vagrant Cascadian <vagrant@aikidev.net>
9 years agoFix mxc_hab documenation
Ulises Cardenas [Mon, 20 Apr 2015 18:47:58 +0000 (13:47 -0500)]
Fix mxc_hab documenation

It is necessary to modify the configuration file for the target
board. It wasn't well documented that to enable any of the secure
boot modes, it is required to add CONFIG_SECURE_BOOT to the board
configuration file.

Also, fixed a typo in the encrypted boot section.

Signed-off-by: Ulises Cardenas <Ulises.Cardenas@freescale.com>
9 years agoarm: mx6: Clamp MMDC and DDR3 clocks for timing calculations
Nikolay Dimitrov [Wed, 22 Apr 2015 15:37:31 +0000 (18:37 +0300)]
arm: mx6: Clamp MMDC and DDR3 clocks for timing calculations

This is proposal for clamping the MMDC/DDR3 clocks to the maximum supported
frequencies as per imx6 SOC models, and for dynamically calculating valid
clock value based on mem_speed.

Currently the code uses impossible values for mem_speed (1333, 1600 MT/s) for
calculating the DDR timings, and uses fixed clock (528 or 400 MHz) which
doesn't take into account DDR3 memory limitations.

Signed-off-by: Nikolay Dimitrov <picmaster@mail.bg>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Tim Harvey <tharvey@gateworks.com>
Cc: Eric Nelson <eric.nelson@boundarydevices.com>
9 years agosandbox: defconfig: enable support of sandbox PMIC drivers
Przemyslaw Marczak [Wed, 13 May 2015 11:38:36 +0000 (13:38 +0200)]
sandbox: defconfig: enable support of sandbox PMIC drivers

This commit enables:
- emulated i2c PMIC driver
- sandbox PMIC I/O driver
- sandbox PMIC's regulator driver

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agosandbox: dts: add sandbox_pmic.dtsi and include it to sandbox.dts and test.dts
Przemyslaw Marczak [Wed, 13 May 2015 11:38:35 +0000 (13:38 +0200)]
sandbox: dts: add sandbox_pmic.dtsi and include it to sandbox.dts and test.dts

This commit adds dtsi file for Sandbox PMIC.
It fully describes the PMIC by:
- i2c emul node - with a default settings of 16 registers
- 2x buck regulator nodes
- 2x ldo regulator nodes

The default register settings are set with preprocessor macros:
- VAL2REG(min[uV/uA], step[uV/uA], val[uV/uA])
- VAL2OMREG(mode id)
Both defined in file:
- include/dt-bindings/pmic/sandbox_pmic.h

The Voltage ranges of each regulator can be found in:
- include/power/sandbox_pmic.h

The new file is included into:
- sandbox.dts
- test.dts

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agotest: dm: test.dts - move to sandbox dts directory
Przemyslaw Marczak [Wed, 13 May 2015 11:38:34 +0000 (13:38 +0200)]
test: dm: test.dts - move to sandbox dts directory

The file test.dts from driver model test directory,
was compiled by call dtc in script: test/dm/test-dm.sh.

This doesn't allow for including of dtsi files and using
of C preprocessor routines in this dts file.

Since the mentioned script builds U-Boot before tests,
then moving the test.dts file into sandbox dts directory
is reasonable.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agotest: dm: add sandbox PMIC framework tests
Przemyslaw Marczak [Wed, 13 May 2015 11:38:33 +0000 (13:38 +0200)]
test: dm: add sandbox PMIC framework tests

This change adds new file to sandbox driver model test environment.
The file is: test/dm/power.c, and it includes tests for PMIC framework,
which includes PMIC uclass and REGULATOR uclass.

All tests are based od Sandbox PMIC emulated device. Some test constants for
this device are defined in the header: include/power/sandbox_pmic.h

PMIC tests includes:
- pmic get - tests, that pmic_get() returns the requested device
- pmic I/O - tests I/O by writing and reading some values to PMIC's registers
             and then compares, that the write/read values are equal.

The regulator tests includes:
- Regulator get by devname/platname
- Voltage set/get
- Current set/get
- Enable set/get
- Mode set/get
- Autoset
- List autoset

For the regulator 'get' test, the returned device pointers are compared,
and their names are also compared to the requested one.
Every other test, first sets the given attribute and next try to get it.
The test pass, when the set/get values are equal.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agosandbox: add: sandbox PMIC device drivers: I2C emul, pmic, regulator
Przemyslaw Marczak [Wed, 13 May 2015 11:38:32 +0000 (13:38 +0200)]
sandbox: add: sandbox PMIC device drivers: I2C emul, pmic, regulator

This commit adds emulation of sandbox PMIC device, which includes:
- PMIC I2C emulation driver
- PMIC I/O driver (UCLASS_PMIC)
- PMIC regulator driver (UCLASS_REGULATOR)

The sandbox PMIC has 12 significant registers and 4 as padding to 16 bytes,
which allows using 'i2c md' command with the default count (16).

The sandbox PMIC provides regulators:
- 2x BUCK
- 2x LDO

Each, with adjustable output:
- Enable state
- Voltage
- Current limit (LDO1/BUCK1 only)
- Operation mode (different for BUCK and LDO)

Each attribute has it's own register, beside the enable state, which depends
on operation mode.

The header file: sandbox_pmic.h includes PMIC's default register values,
which are set on i2c pmic emul driver's probe() method.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agosandbox: i2c: search child emul dev and check its uclass id
Przemyslaw Marczak [Wed, 13 May 2015 11:38:31 +0000 (13:38 +0200)]
sandbox: i2c: search child emul dev and check its uclass id

The function get_emul() in sandbox i2c bus driver, always returns
first child as i2c emul device. This may only work for i2c devices
with a single child, which is an only i2c emul device.

In case when i2c device has more than one child (e.g. PMIC), and
one is i2c emul, then the function should search it by check uclass
id for each child. This patch add this change to the get_emul().

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agodoc: driver-model: pmic-framework.txt - cleanup
Przemyslaw Marczak [Wed, 13 May 2015 11:38:30 +0000 (13:38 +0200)]
doc: driver-model: pmic-framework.txt - cleanup

This commit cleanups the PMIC framework documentation.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agocommon: cmd regulator: command cleanup
Przemyslaw Marczak [Wed, 13 May 2015 11:38:29 +0000 (13:38 +0200)]
common: cmd regulator: command cleanup

This commit cleanups the regulator command.
The first change, is adjusting "regulator dev" command to use
"regulator-name" constraint, for setting the operating device.
Thanks to this, the regulator_get() function is removed.

This also updates do_list() function, with loop over uclass_find_*
function calls, to prevent probe of all listed regulators.

This also cleanups the printing in command.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agocommon: cmd pmic: command cleanup
Przemyslaw Marczak [Wed, 13 May 2015 11:38:28 +0000 (13:38 +0200)]
common: cmd pmic: command cleanup

This commit cleanups the use of function: failed().
The new function name is: failure(), and it is used
for print errno and the errno-related message only.

The second change is choosing PMIC device by it's name,
instead of seq number. Thanks to this change, for set
the current device, call of pmic_get() is enough.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agodm: regulator: uclass driver code cleanup
Przemyslaw Marczak [Wed, 13 May 2015 11:38:27 +0000 (13:38 +0200)]
dm: regulator: uclass driver code cleanup

This cleanup includes:
- remove of the preprocessor macros which pointed to long name functions
- update of the names of some regulator uclass driver functions
- cleanup of the function regulator_autoset()
- reword of some comments of regulator uclass header file
- regulator_get_by_platname: check error for uclass_find_* function calls
- add function: regulator_name_is_unique
- regulator post_bind(): check regulator name uniqueness
- fix mistakes in: regulator/Kconfig
- regulator.h: update comments
- odroid u3: cleanup the regulator calls

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agodm: pmic: code cleanup of PMIC uclass driver
Przemyslaw Marczak [Wed, 13 May 2015 11:38:26 +0000 (13:38 +0200)]
dm: pmic: code cleanup of PMIC uclass driver

The cleanup includes:
- pmic.h - fix mistakes in a few comments
- pmic operations: value 'reg_count' - redefine as function call
- fix function name: pmic_bind_childs() -> pmic_bind_children()
- pmic_bind_children: change the 'while' loop with the 'for'
- add implementation of pmic_reg_count() method
- pmic_bind_children() - update function call name
- Kconfig: add new line at the end of file
- Update MAX77686 driver code

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on sandbox:
Tested-by: Simon Glass <sjg@chromium.org>
9 years agoodroid: enable driver model pmic/regulator API and MAX77686 drivers
Przemyslaw Marczak [Wed, 13 May 2015 11:38:25 +0000 (13:38 +0200)]
odroid: enable driver model pmic/regulator API and MAX77686 drivers

This change enables the configs required to init and setup max77686
regulator driver, using the new driver model pmic and regulator API.
And also changes the old pmic framework calls to the new ones.

This commits enables:
- CONFIG_ERRNO_STR
- CONFIG_DM_PMIC
- CONFIG_DM_PMIC_CMD
- CONFIG_DM_PMIC_MAX77686
- CONFIG_DM_REGULATOR
- CONFIG_DM_REGULATOR_CMD
- CONFIG_DM_REGULATOR_MAX77686

And removes the unused:
- CONFIG_DM_I2C_COMPAT
- CONFIG_POWER
- CONFIG_POWER_I2C
- CONFIG_POWER_MAX77686

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agoodroid: dts: add 'voltage-regulators' description to max77686 node
Przemyslaw Marczak [Wed, 13 May 2015 11:38:24 +0000 (13:38 +0200)]
odroid: dts: add 'voltage-regulators' description to max77686 node

Adding regulators subnode to fdt max77686 node, allows properly init
regulators by the max77686 regulator driver. This enables the complete
functionality of the regulator command.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agodm: board:samsung: power_init_board: add requirement of CONFIG_DM_PMIC
Przemyslaw Marczak [Mon, 20 Apr 2015 18:07:50 +0000 (20:07 +0200)]
dm: board:samsung: power_init_board: add requirement of CONFIG_DM_PMIC

In the power_init_board function call, regulator driver init is called,
so before compile, make sure that any power framework is defined.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agodoc: driver-model: pmic and regulator uclass documentation
Przemyslaw Marczak [Mon, 20 Apr 2015 18:07:49 +0000 (20:07 +0200)]
doc: driver-model: pmic and regulator uclass documentation

Since this framework is still under the construction, the main
documentation is kept in the header files.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agodm: regulator: add fixed voltage regulator driver
Przemyslaw Marczak [Mon, 20 Apr 2015 18:07:48 +0000 (20:07 +0200)]
dm: regulator: add fixed voltage regulator driver

This driver implements regulator operations for fixed Voltage/Current
value regulators. beside the standard regulator constraints, which are
put into the uclass platform data, a typical fixed regulator node provides
few additional properties like:
- gpio
- gpio-open-drain
- enable-active-high
- startup-delay-us
The only 'gpio' is used by this driver and is kept in structure of type
'fixed_regulator_platdata', as a device platform data (dev->platdata).

The driver implements:
- get_value
- get_current
- get_enable
- set_enable

The regulator calls and commands can be used for fixed-regulator devices,
and the proper error will be returned for prohibited.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agodm: regulator: add max77686 regulator driver
Przemyslaw Marczak [Mon, 20 Apr 2015 18:07:47 +0000 (20:07 +0200)]
dm: regulator: add max77686 regulator driver

This commit adds support to MAX77686 regulator driver,
based on a driver model regulator's API. It implements
almost all regulator operations, beside those for setting
and geting the Current value.
For proper bind and operation it requires the MAX77686 PMIC driver.

New file: drivers/power/regulator/max77686.c
New config: CONFIG_DM_REGULATOR_MAX77686

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agodm: pmic: add max77686 pmic driver
Przemyslaw Marczak [Mon, 20 Apr 2015 18:07:46 +0000 (20:07 +0200)]
dm: pmic: add max77686 pmic driver

This is the implementation of driver model PMIC driver.
The max77686 PMIC driver implements read/write operations and driver
bind method - to bind its childs.

This driver will try to bind the regulator devices by using it's child
info array with regulator prefixes and driver names. This should succeed
when compatible regulator driver is compiled. If no regulator driver found,
then the pmic can still provide read/write operations, and can be used with
PMIC function calls.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agopmic: max77686 set the same compatible as in the kernel
Przemyslaw Marczak [Mon, 20 Apr 2015 18:07:45 +0000 (20:07 +0200)]
pmic: max77686 set the same compatible as in the kernel

This commit also updates the proper dts files.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agodm: regulator: add regulator command
Przemyslaw Marczak [Mon, 20 Apr 2015 18:07:44 +0000 (20:07 +0200)]
dm: regulator: add regulator command

This command is based on driver model regulator's API.
The user interface provides:
- list UCLASS regulator devices
- show or [set] operating regulator device
- print constraints info
- print operating status
- print/[set] voltage value [uV] (force)
- print/[set] current value [uA]
- print/[set] operating mode id
- enable the regulator output
- disable the regulator output

The 'force' option can be used for setting the value which exceeds
the constraints min/max limits.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>