]> code.ossystems Code Review - bsp/u-boot.git/log
bsp/u-boot.git
10 years agonet: keystone_net: use general get link function
Khoronzhuk, Ivan [Fri, 17 Oct 2014 17:44:36 +0000 (20:44 +0300)]
net: keystone_net: use general get link function

The phy framework has function to get link, so use it
instead of own implementation.

There is no reason to check SGMII link while sending each
packet, phy link is enough. Check SGMII link only while
ethernet open.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: keystone_net: register eth PHYs on MDIO bus
Khoronzhuk, Ivan [Fri, 17 Oct 2014 17:44:35 +0000 (20:44 +0300)]
net: keystone_net: register eth PHYs on MDIO bus

As MDIO bus has been added we can register PHYs with it.
After registration, the PHY driver will be probed according to the
hardware on board.

Startup PHY at the ethernet open.

Use phy_startup() instead of keystone_get_link_status() when eth open,
as it verifies PHY link inside and SGMII link is checked before.

For K2HK evm PHY configuration at init was absent, so don't enable
phy config at init for k2hk evm.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: keystone_net: register MDIO bus
Khoronzhuk, Ivan [Fri, 17 Oct 2014 17:44:34 +0000 (20:44 +0300)]
net: keystone_net: register MDIO bus

Currently MDIO framework is not used to configure Ethernet PHY.
As result some of already implemented functions are duplicated.
So register MDIO bus in order to use it. On that stage it's just
registered, it'll be used as we start to use PHY framework.

Use mdio bus read/write/reset functions in the driver.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: keystone_net: use mdio_reset function
Khoronzhuk, Ivan [Fri, 17 Oct 2014 17:44:33 +0000 (20:44 +0300)]
net: keystone_net: use mdio_reset function

Don't use mdio_enable twice while eth open. Also rename it to
keystone2_mdio_reset as more appropriate name.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: phy: print a number of phy that is not found
Khoronzhuk, Ivan [Fri, 17 Oct 2014 17:44:32 +0000 (20:44 +0300)]
net: phy: print a number of phy that is not found

In case when several Ethernet ports are supported it's
convenient to see the number of phy that is not found.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agosoc: keystone_serdes: generalize configuration mechanism
Khoronzhuk, Ivan [Wed, 22 Oct 2014 14:18:24 +0000 (17:18 +0300)]
soc: keystone_serdes: generalize configuration mechanism

The cmu, comlane, lane configuration mechanism are similar for sub
systems as well such as PCI or sRIO, but they have different values
based on input clock and output bus rate. According to this compact
driver to simplify adding different configuration settings based
on clock and rate.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agosoc: keystone_serdes: generalize to be used by other sub systems
Hao Zhang [Wed, 22 Oct 2014 14:18:23 +0000 (17:18 +0300)]
soc: keystone_serdes: generalize to be used by other sub systems

SerDes driver is used by other sub systems like PCI, sRIO etc.
So modify it to be more general. The SerDes driver provides common
API's that can also be extended for other peripherals SerDes
configurations.

Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agosoc: keystone_serdes: enhance to use cmu/comlane/lane specific configurations
Hao Zhang [Wed, 22 Oct 2014 14:18:22 +0000 (17:18 +0300)]
soc: keystone_serdes: enhance to use cmu/comlane/lane specific configurations

Enhance the driver to use cmu/comlane/lane specific configurations
instead of 1 big array of configuration.

Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agosoc: keystone_serdes: create a separate SGMII SerDes driver
Khoronzhuk, Ivan [Wed, 22 Oct 2014 14:18:21 +0000 (17:18 +0300)]
soc: keystone_serdes: create a separate SGMII SerDes driver

This patch split the Keystone II SGMII SerDes related code from
Ethernet driver and create a separate SGMII SerDes driver.
The SerDes driver can be used by others keystone subsystems
like PCI, sRIO, so move it to driver/soc/keystone directory.

Add soc specific drivers directory like in the Linux kernel.
It is going to be used by keysotone soc specific drivers.

Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: keystone_net: remove redundant code from keystone_net.c
Khoronzhuk, Ivan [Mon, 29 Sep 2014 19:17:24 +0000 (22:17 +0300)]
net: keystone_net: remove redundant code from keystone_net.c

Remove unused tx_send_loop variable.

Removes duplicated get_link_status() call from the
keystone2_eth_send_packet().

The emac_gigabit_enable() is called at opening Ethernet and there is no
need to enable it on sending each packet. So remove that call
from keystone2_eth_send_packet() as well.

The calling of power/clock up functions are mostly the responsibility
of SoC/board code, so move these functions to appropriate place.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: keystone_net: increase MDIO clock frequency
Vitaly Andrianov [Mon, 29 Sep 2014 19:17:23 +0000 (22:17 +0300)]
net: keystone_net: increase MDIO clock frequency

With MAC_PHY sgmii configuration, u-boot checks PHY link status before
sending each packet. Increasing MDIO frequency increases overall tftp
speed. We set it to maximum 2.5MHz.

Acked-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: keystone_net: move header file from arch to ti-common
Khoronzhuk, Ivan [Mon, 29 Sep 2014 19:17:22 +0000 (22:17 +0300)]
net: keystone_net: move header file from arch to ti-common

The header file for the driver should be in correct place.
So move it to "arch/arm/include/asm/ti-common/keystone_net.h"
and correct driver's external dependencies. At the same time
align and correct some definitions.

Acked-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: keystone_net: add support for NETCP v1.5
Khoronzhuk, Ivan [Mon, 29 Sep 2014 19:17:21 +0000 (22:17 +0300)]
net: keystone_net: add support for NETCP v1.5

Currently the network driver is used only by k2hk evm board.
The k2hk SoC contains NETCP v1.0, but Keystone2 SoCs, like k2e
contain NETCP v1.5. So driver should be able to work with such kind
of NETCP. This commit adds this opportunity. The main difference in
masks and some registers, the logic is the same, so only definitions
should be changed. To differentiate between versions add KS2_NETCP_V1_0
and KS2_NETCP_V1_5. Also remove unused and no more needed defines.

The port number is specific for each board so move this parameter to
configuration.

Acked-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agonet: keystone_net: remove SoC specific emac_regs structure
Hao Zhang [Mon, 29 Sep 2014 19:17:20 +0000 (22:17 +0300)]
net: keystone_net: remove SoC specific emac_regs structure

This patch removes K2HK SOC specifc emac_regs structure, it uses
soc specific register offset to keep the network driver common across
all the Keystone II EVMs.

Acked-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agoconfigs: ks2_evm: enable misc_init_r
Khoronzhuk, Ivan [Fri, 26 Sep 2014 12:42:30 +0000 (15:42 +0300)]
configs: ks2_evm: enable misc_init_r

Currently keystone has misc_init_r where all DSPS are turned off
by default. So enable this function.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agokeystone2: k2l-evm: add board support
Hao Zhang [Wed, 22 Oct 2014 13:32:33 +0000 (16:32 +0300)]
keystone2: k2l-evm: add board support

This patch adds Keystone II Lammar (K2L) EVM board support.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agokeystone2: enable OSR clock domain for K2L SoC
Hao Zhang [Wed, 22 Oct 2014 13:32:32 +0000 (16:32 +0300)]
keystone2: enable OSR clock domain for K2L SoC

This patches enables the On-chip Shared Ram clock domain for K2L SoC.

Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agoARM: keystone2: spl: move board specific code
Hao Zhang [Wed, 22 Oct 2014 13:32:31 +0000 (16:32 +0300)]
ARM: keystone2: spl: move board specific code

The initialization of PLLs is a part of board specific code, so
move it appropriate places.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agokeystone2: msmc: add MSMC cache coherency support for K2L SOC
Hao Zhang [Wed, 22 Oct 2014 13:32:30 +0000 (16:32 +0300)]
keystone2: msmc: add MSMC cache coherency support for K2L SOC

This patch adds Keystone II Lamar (K2L) SoC specific definitions
to support MSMC cache coherency.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agokeystone2: clock: add K2L clock definitions and commands
Hao Zhang [Wed, 22 Oct 2014 13:32:29 +0000 (16:32 +0300)]
keystone2: clock: add K2L clock definitions and commands

This patch adds clock definitions and commands to support Keystone II
K2L SOC.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agoARM: keystone2: add K2L device hardware definitions
Hao Zhang [Wed, 22 Oct 2014 13:32:28 +0000 (16:32 +0300)]
ARM: keystone2: add K2L device hardware definitions

This patch adds hardware definitions specific to Keystone II
Lamar (K2L) SoC.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Hao Zhang <hzhang@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agoARM: cmd_clock: generalize command usage description
Khoronzhuk, Ivan [Wed, 22 Oct 2014 13:01:28 +0000 (16:01 +0300)]
ARM: cmd_clock: generalize command usage description

The usage description of commands refers to headers of sources,
that is not correct. This patch is intended to fix it.
Also generalize code in order to reduce SoC dependent #ifdefs.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agokeystone: usb: add support of usb xhci
WingMan Kwok [Fri, 5 Sep 2014 19:26:23 +0000 (22:26 +0300)]
keystone: usb: add support of usb xhci

Add support of usb xhci. xHCI controls all USB speeds of the Host
mode, that is, the SS through the SS PHY, as well as the HS, FS, and
LS through the USB2 PHY. xHCI replaces and supersedes all previous
host HCIs (HS-only EHCI, FS/LS OHCI and UHCI), and is therefore not
backwards compatible with any of them. The USB3SS’s USB Controller is
fully compliant with xHC.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: WingMan Kwok <w-kwok2@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agodma: keystone_nav: generalize driver usage
Khoronzhuk, Ivan [Fri, 5 Sep 2014 16:02:48 +0000 (19:02 +0300)]
dma: keystone_nav: generalize driver usage

The keystone_nav driver is general driver intended to be used for
working with queue manager and pktdma for different IPs like NETCP,
AIF, FFTC, etc. So the it's API shouldn't be named like it works only
with one of them, it should be general names. The names with prefix
like netcp_* rather do for drivers/net/keystone_net.c driver. So it's
good to generalize this driver to be used for different IP's and
delete confusion with real NETCP driver.

The current netcp_* functions of keystone navigator can be used for
other settings of pktdma, not only for NETCP. The API of this driver
is used by the keystone_net driver to work with NETCP, so net driver
also should be corrected. For convenience collect pkdma
configurations in drivers/dma/keystone_nav_cfg.c.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agodma: keystone_nav: move keystone_nav driver to driver/dma/
Khoronzhuk, Ivan [Fri, 5 Sep 2014 16:02:47 +0000 (19:02 +0300)]
dma: keystone_nav: move keystone_nav driver to driver/dma/

The keystone_nav is used by drivers/net/keystone_net.c driver to
send and receive packets, but currently it's placed at keystone
arch sources. So it should be in the drivers directory also.
It's separate driver that can be used for sending and receiving
pktdma packets by others drivers also.

This patch just move this driver to appropriate directory and
doesn't add any functional changes.

Acked-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agokeystone2: keystone_nav: don't use hard addresses in netcp_pktdma
Khoronzhuk, Ivan [Fri, 5 Sep 2014 16:02:46 +0000 (19:02 +0300)]
keystone2: keystone_nav: don't use hard addresses in netcp_pktdma

Use definitions in netcp_pktdma instead direct addresses.
The definitions can be set specifically for SoC, so there
is no reason to check SoC type while initialization.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agokeystone2: keystone_nav: don't use hard addresses in qm_config
Khoronzhuk, Ivan [Fri, 5 Sep 2014 16:02:45 +0000 (19:02 +0300)]
keystone2: keystone_nav: don't use hard addresses in qm_config

Use definitions in qm_config. The definitions can be set specifically
for SoC, so there is no reason to check SoC type while initialization.

Acked-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
10 years agoMakefile: Add CONFIG_BUILD_TARGET to automatically build an special image
Stefan Roese [Wed, 22 Oct 2014 10:13:24 +0000 (12:13 +0200)]
Makefile: Add CONFIG_BUILD_TARGET to automatically build an special image

Add target to build it automatically upon "make" / MAKEALL. This can/should
be set by board / cpu specific headers if a special U-Boot image is
required for this SoC / board.

E.g. used by Marvell Armada XP to automatically build the u-boot.kwb
target.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
10 years agotools: kwbimage: Add image version 1 support for Armada XP / 370
Stefan Roese [Wed, 22 Oct 2014 10:13:23 +0000 (12:13 +0200)]
tools: kwbimage: Add image version 1 support for Armada XP / 370

This patch integrates the Barebox version of this kwbimage.c file into
U-Boot. As this version supports the image version 1 type for the
Armada XP / 370 SoCs.

It was easier to integrate the existing and known to be working Barebox
source than to update the current U-Boot version to support this
v1 image header format. Now all Marvell MVEBU SoCs are supported:

Image type 0: Kirkwood & Dove
Image type 1: Armada 370 & Armada XP

Please note that the current v1 support has this restuction (same as
has Barebox version):

Not implemented: support for the register headers and secure headers
in v1 images

Tested on Marvell DB-78460-BP eval board.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
10 years agotools: Compile kwboot for Marvell Armada XP as those SoCs are now supported
Stefan Roese [Wed, 22 Oct 2014 10:13:22 +0000 (12:13 +0200)]
tools: Compile kwboot for Marvell Armada XP as those SoCs are now supported

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
10 years agotools/kwboot: Sync with latest barebox version to support Armada XP
Stefan Roese [Wed, 22 Oct 2014 10:13:21 +0000 (12:13 +0200)]
tools/kwboot: Sync with latest barebox version to support Armada XP

The barebox version of the kwboot tool has evolved a bit. To support
Armada XP and Dove. Additionally a few minor fixes have been applied.
So lets sync with the latest barebox version.

Please note that the main difference between both versions now is, that
the U-Boot version still supports the -p option, to dynamically patch
an image for UART boot mode. I didn't test it now though.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
10 years agoarm: kirkwood: Remove some dead code from cpu.c
Stefan Roese [Wed, 22 Oct 2014 10:13:20 +0000 (12:13 +0200)]
arm: kirkwood: Remove some dead code from cpu.c

All those functions removed with this patch are not accessed at all. So lets
remove them.

Signed-off-by: Stefan Roese <sr@denx.de>
10 years agoarm: armada-xp: Add basic support for the maxBCM board
Stefan Roese [Wed, 22 Oct 2014 10:13:19 +0000 (12:13 +0200)]
arm: armada-xp: Add basic support for the maxBCM board

The maxBCM board is equipped with the Marvell Armada-XP MV78460 SoC. It
integrates an SPI NOR flash and an Marvell 88E6185 switch.

Signed-off-by: Stefan Roese <sr@denx.de>
10 years agoarm: armada-xp: Add basic support for the Marvell DB-MV784MP-GP board
Stefan Roese [Wed, 22 Oct 2014 10:13:18 +0000 (12:13 +0200)]
arm: armada-xp: Add basic support for the Marvell DB-MV784MP-GP board

This patch adds basic support for the Marvell DB-MV784MP-GP evaulation
board. This is the first board that uses the recently created
Armada XP 78460 SoC support.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
10 years agoarm: armada-xp: Add basic support for Marvell Armada XP SoC
Stefan Roese [Wed, 22 Oct 2014 10:13:17 +0000 (12:13 +0200)]
arm: armada-xp: Add basic support for Marvell Armada XP SoC

This basic support for the Marvell Armada XP is base on the existing kirkwood
support. Which has been generatized by moving some common files into
common marvell locations.

This is in preparation for the upcoming Armada XP MV78460 support.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
10 years agoi2c: mvtwsi: Add support for Marvell Armada XP
Stefan Roese [Wed, 22 Oct 2014 10:13:16 +0000 (12:13 +0200)]
i2c: mvtwsi: Add support for Marvell Armada XP

To support the Armada XP SoC, we just need to include the correct header.

Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Heiko Schocher <hs@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
10 years agonet: phy.h: Make PHY autonegotiation timeout configurable
Stefan Roese [Wed, 22 Oct 2014 10:13:15 +0000 (12:13 +0200)]
net: phy.h: Make PHY autonegotiation timeout configurable

The Marvell MV78460 eval board DB-78460-BP seems to need a longer
PHY autonegotiation timeout than the "standard" 4 seconds. So lets
make this timeout configurable. If not defined in the board config
header the original 4000ms is used.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
10 years agonet: mvneta.c: Add support for the ethernet controller of the Marvell Armada XP SoC
Stefan Roese [Wed, 22 Oct 2014 10:13:14 +0000 (12:13 +0200)]
net: mvneta.c: Add support for the ethernet controller of the Marvell Armada XP SoC

This patch adds support for the NETA ethernet controller which is integrated
in the Marvell Armada XP SoC's. This port is based on the Linux driver which
has been stripped of the in U-Boot unused portions.

Tested on the Marvell MV78460 eval board db-78460-bp.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Tested-by: Luka Perkov <luka@openwrt.org>
10 years agoarm: kirkwood: Change naming of dram functions from km_foo() to mvebu_foo()
Stefan Roese [Wed, 22 Oct 2014 10:13:13 +0000 (12:13 +0200)]
arm: kirkwood: Change naming of dram functions from km_foo() to mvebu_foo()

Additionally the SDRAM address decoding register address is not hard coded
in the C code any more. A define is introduced for this base address.

This makes is possible to use those gpio functions from other MVEBU SoC's
as well.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
10 years agospi: kirkwood_spi.c: Change KW_SPI_BASE to MVEBU_SPI_BASE
Stefan Roese [Wed, 22 Oct 2014 10:13:12 +0000 (12:13 +0200)]
spi: kirkwood_spi.c: Change KW_SPI_BASE to MVEBU_SPI_BASE

This makes is possible to use this SPI driver from other MVEBU SoC's as well.
As the upcoming Armada XP support will do.

Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
Tested-by: Luka Perkov <luka@openwrt.org>
Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
10 years agoarm: marvell: Extract kirkwood gpio functions into new common file gpio.c
Stefan Roese [Wed, 22 Oct 2014 10:13:11 +0000 (12:13 +0200)]
arm: marvell: Extract kirkwood gpio functions into new common file gpio.c

This makes is possible to use those gpio functions from other MVEBU SoC's as well.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
10 years agospi: kirkwood_spi.c: Compile MPP (pin-mux) only for kirkwood SoC's
Stefan Roese [Wed, 22 Oct 2014 10:13:10 +0000 (12:13 +0200)]
spi: kirkwood_spi.c: Compile MPP (pin-mux) only for kirkwood SoC's

Compile the pin multiplexing only on Kirkwood platforms. As the
Armada XP doesn't need it.

Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
Tested-by: Luka Perkov <luka@openwrt.org>
Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
10 years agoarm: mvebu: Add common mbus functions to use on Marvell SoCs
Stefan Roese [Wed, 22 Oct 2014 10:13:09 +0000 (12:13 +0200)]
arm: mvebu: Add common mbus functions to use on Marvell SoCs

These mbus functions are ported from Barebox. The Barebox version is
ported from Linux. These functions will be first used by the upcoming
Armada XP support. Later other Marvell SoC's will be adopted to use
these functions as well (Kirkwood, Orion).

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
10 years agoarm: marvell: Rework timer.c to make it usable for other MVEBU platforms
Stefan Roese [Wed, 22 Oct 2014 10:13:08 +0000 (12:13 +0200)]
arm: marvell: Rework timer.c to make it usable for other MVEBU platforms

This patch does the following:
- Rename defines and registers to not use kirkwood
- Remove unused defines
- Use clrsetbits() accessor functions
- Coding style cleanup
- Clear 25MHZ bit in timer controller register init for Armada XP

There is no functional change for kirkwood. At least not intentionally.

This will be used by the upcoming Armada XP support.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
10 years agoarm: marvell: Move arch-kirkwood/spi.h to arch-mvebu/spi.h
Stefan Roese [Wed, 22 Oct 2014 10:13:07 +0000 (12:13 +0200)]
arm: marvell: Move arch-kirkwood/spi.h to arch-mvebu/spi.h

This move makes it possible to use this kirkwood SPI driver from other
MVEBU platforms as well. This will be used by the upcoming Armada XP
support.

Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
Tested-by: Luka Perkov <luka@openwrt.org>
Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
10 years agoarm: marvell: Move arch/kirkwood.h to arch/soc.h
Stefan Roese [Wed, 22 Oct 2014 10:13:06 +0000 (12:13 +0200)]
arm: marvell: Move arch/kirkwood.h to arch/soc.h

This move makes is possible to use this header not only from kirkwood
platforms but from all Marvell mvebu platforms.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
10 years agoarm: kirkwood: Move some SoC files into new arch/arm/mvebu-common
Stefan Roese [Wed, 22 Oct 2014 10:13:05 +0000 (12:13 +0200)]
arm: kirkwood: Move some SoC files into new arch/arm/mvebu-common

By moving some kirkwood files into a Marvell common directory, those files
can be used by other Marvell platforms as well. The name mvebu is taken
from the Linux kernel source tree. It has been chosen there to represent
the SoC's from the Marvell EBU (Engineering Business Unit). Those SoC's
currently are:

Armada 370/375/XP, Dove, mv78xx0, Kirkwood, Orion5x

This will be used by the upcoming Armada XP (MV78460) platform support.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Luka Perkov <luka@openwrt.org>
Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
10 years agoMerge git://git.denx.de/u-boot-x86
Tom Rini [Thu, 23 Oct 2014 10:54:03 +0000 (06:54 -0400)]
Merge git://git.denx.de/u-boot-x86

10 years agoMerge git://git.denx.de/u-boot-fdt
Tom Rini [Thu, 23 Oct 2014 10:51:46 +0000 (06:51 -0400)]
Merge git://git.denx.de/u-boot-fdt

10 years agoot1200: add sata support
Christian Gmeiner [Wed, 22 Oct 2014 09:55:04 +0000 (11:55 +0200)]
ot1200: add sata support

One of the possible boot devices can be sata.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
10 years agoot1200: fix sf detection
Christian Gmeiner [Wed, 22 Oct 2014 09:29:51 +0000 (11:29 +0200)]
ot1200: fix sf detection

Commit 155fa9af95ac5be857a7327e7a968a296e60d4c8 changed the way
to define a GPIO line, which can be used to force CS high
across multiple transactions. In order to fix sf detection
change board code to make use of board_spi_cs_gpio(..).

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Stefano Babic <sbabic@denx.de>
Acked-by: Nikita Kiryanov <nikita@compulab.co.il>
10 years agonet: Display the size when tftpboot finishes
Simon Glass [Fri, 10 Oct 2014 13:30:21 +0000 (07:30 -0600)]
net: Display the size when tftpboot finishes

If we know the file size, display it after loading the file.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agox86: Enable FIT, ELF on coreboot
Simon Glass [Fri, 10 Oct 2014 13:30:20 +0000 (07:30 -0600)]
x86: Enable FIT, ELF on coreboot

Enable FIT support and the bootelf command. Also change the default load
address to somewhere other than the normal load address of the kernel,
to allow for decompression without overwriting the original file.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agox86: config: link: Display the board model on the screen
Simon Glass [Fri, 10 Oct 2014 13:30:19 +0000 (07:30 -0600)]
x86: config: link: Display the board model on the screen

To get a display in U-Boot on link you must either build a coreboot that
always sets it up, or use Esc-Refresh-Power to reset the machine.

When we do have a display, it is nice to display the model at the top, so
enable this option.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agox86: link: Tidy up the command lines options
Simon Glass [Fri, 10 Oct 2014 13:30:18 +0000 (07:30 -0600)]
x86: link: Tidy up the command lines options

We may as well use hush. The auto-complete option was incorrect so this was
not enabled. Also expand the command line size a little and go back to the
default prompt since "boot>" doesn't seem any more useful.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodoc: Remove note about auto-complete not working with hush
Simon Glass [Fri, 10 Oct 2014 13:30:17 +0000 (07:30 -0600)]
doc: Remove note about auto-complete not working with hush

It does seem to work (tested on link), so update the docs.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agox86: cros_ec: Enable cros_ec for link
Simon Glass [Fri, 10 Oct 2014 13:30:16 +0000 (07:30 -0600)]
x86: cros_ec: Enable cros_ec for link

Add defines to enable the Chrome OS EC interface and set it up on init.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agox86: cros_ec: Update LPC driver for new cros_ec header
Simon Glass [Fri, 10 Oct 2014 13:30:15 +0000 (07:30 -0600)]
x86: cros_ec: Update LPC driver for new cros_ec header

There was a minor rename of one of the defines, so update the driver.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agox86: dts: Add device tree compatible string for Intel IPC
Simon Glass [Fri, 10 Oct 2014 13:30:14 +0000 (07:30 -0600)]
x86: dts: Add device tree compatible string for Intel IPC

Add this to the table so that it can be recognised.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agox86: Add device tree information for Chrome OS EC
Simon Glass [Fri, 10 Oct 2014 13:30:13 +0000 (07:30 -0600)]
x86: Add device tree information for Chrome OS EC

Add the required node describing how to find the EC on link.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agox86: config: Enable dhcp on link
Simon Glass [Fri, 10 Oct 2014 13:30:12 +0000 (07:30 -0600)]
x86: config: Enable dhcp on link

The dhcp option is required to get bootp to work on the Chromebook Pixel,
so enable it.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agofdt: Add a subnodes iterator macro
Thierry Reding [Tue, 26 Aug 2014 15:33:55 +0000 (17:33 +0200)]
fdt: Add a subnodes iterator macro

The fdt_for_each_subnode() iterator macro provided by this patch can be
used to iterate over a device tree node's subnodes. At each iteration a
loop variable will be set to the next subnode.

Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
10 years agofdt: Add a function to return PCI BDF triplet
Thierry Reding [Tue, 26 Aug 2014 15:33:54 +0000 (17:33 +0200)]
fdt: Add a function to return PCI BDF triplet

The fdtdec_pci_get_bdf() function returns the bus, device, function
triplet of a PCI device by parsing the "reg" property according to the
PCI device tree binding.

Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
10 years agofdt: Add resource parsing functions
Thierry Reding [Tue, 26 Aug 2014 15:33:53 +0000 (17:33 +0200)]
fdt: Add resource parsing functions

Add the fdt_get_resource() and fdt_get_named_resource() functions which
can be used to parse resources (memory regions) from an FDT. A helper to
compute the size of a region is also provided.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
10 years agofdt: Add functions to retrieve strings
Thierry Reding [Tue, 26 Aug 2014 15:33:52 +0000 (17:33 +0200)]
fdt: Add functions to retrieve strings

Given a device tree node, a property name and an index, the new function
fdt_get_string_index() will return in an output argument a pointer to
the index'th string in the property's value.

The fdt_get_string() is a shortcut for the above with the index being 0.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
10 years agofdt: Add a function to get the index of a string
Thierry Reding [Tue, 26 Aug 2014 15:33:51 +0000 (17:33 +0200)]
fdt: Add a function to get the index of a string

Given a device tree node and a property name, the new fdt_find_string()
function will look up a given string in the string list contained in the
property's value and return its index.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
10 years agofdt: Add a function to count strings
Thierry Reding [Tue, 26 Aug 2014 15:33:50 +0000 (17:33 +0200)]
fdt: Add a function to count strings

Given a device tree node and a property name, the fdt_count_strings()
function counts the number of strings found in the property value.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
10 years agoARM: rpi_b: enable USB/DHCP/PXE in bootcmd
Stephen Warren [Sat, 27 Sep 2014 02:51:40 +0000 (20:51 -0600)]
ARM: rpi_b: enable USB/DHCP/PXE in bootcmd

USB support must be enabled before config_distro_bootcmd.h is included
for bootcmd to include USB-related functionality.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
10 years agoARM: rpi_b: query internal MAC address from firmware
Stephen Warren [Sat, 27 Sep 2014 02:51:39 +0000 (20:51 -0600)]
ARM: rpi_b: query internal MAC address from firmware

The built-in SMSC 95xx chip doesn't know its own MAC address. Instead,
we must query it from the VC firmware; it's probably encoded in fuses
on the BCM2835.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
10 years agoarm: rpi: Enable USB support on RPi
Marek Vasut [Sun, 21 Sep 2014 08:25:12 +0000 (10:25 +0200)]
arm: rpi: Enable USB support on RPi

Enable DWC2 USB, storage and ethernet support. Tested on RPi B+.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Tom Rini <trini@ti.com>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Pavel Machek <pavel@denx.de>
10 years agousb: dwc2: Add driver for Synopsis DWC2 USB IP block
Oleksandr Tymoshenko [Sun, 2 Feb 2014 04:51:25 +0000 (21:51 -0700)]
usb: dwc2: Add driver for Synopsis DWC2 USB IP block

This is the USB host controller used on the Altera SoCFPGA and Raspbery Pi.

This code has three checkpatch warnings, but to make sure it stays at least
readable and clear, these are not fixed. These bugs are in the USB request
handling combinatorial logic, so any abstracting of those is out of question.

Tested on DENX MCV (Altera SoCFPGA 5CSFXC6C6U23C8N) and RPi B+ (BCM2835).

Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
Acked-by: Pavel Machek <pavel@denx.de>
Cc: Vince Bridgers <vbridger@altera.com>
Tested-by: Dinh Nguyen <dinguyen@opensource.altera.com>
10 years agonet: asix: Add support for AX88772B
Alexandre Courbot [Thu, 9 Oct 2014 03:43:30 +0000 (12:43 +0900)]
net: asix: Add support for AX88772B

This USB device works as-is on this driver.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
10 years agoMerge git://git.denx.de/u-boot-dm
Tom Rini [Wed, 22 Oct 2014 17:51:45 +0000 (13:51 -0400)]
Merge git://git.denx.de/u-boot-dm

10 years agodm: serial: Support driver model in pl01x driver
Simon Glass [Mon, 22 Sep 2014 23:30:58 +0000 (17:30 -0600)]
dm: serial: Support driver model in pl01x driver

Add driver model support in this driver, using platform data provided by
the board.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
10 years agodm: serial: Tidy up the pl01x driver
Simon Glass [Mon, 22 Sep 2014 23:30:57 +0000 (17:30 -0600)]
dm: serial: Tidy up the pl01x driver

Adjust the driver so that leaf functions take a pointer to the serial port
register base. Put all the global configuration in the init function, and
use the same settings from then on.

This makes it much easier to move to driver model without duplicating the
code, since with driver model we use platform data rather than global
settings.

The driver is compiled with either the CONFIG_PL010_SERIAL or
CONFIG_PL011_SERIAL option and this determines the uart type. With driver
model this needs to come in from platform data, so create a new
CONFIG_PL01X_SERIAL config which brings in the driver, and adjust the
driver to support both peripheral variants.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
10 years agodm: rpi: Convert GPIO driver to driver model
Simon Glass [Mon, 22 Sep 2014 23:30:56 +0000 (17:30 -0600)]
dm: rpi: Convert GPIO driver to driver model

Convert the BCM2835 GPIO driver to use driver model, and switch over
Raspberry Pi to use this, since it is the only board.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
10 years agodm: core: Add support for simple-bus
Simon Glass [Sat, 4 Oct 2014 17:29:37 +0000 (11:29 -0600)]
dm: core: Add support for simple-bus

Add a driver for the simple-bus nodes, which allows devices within these
nodes to be bound.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodm: imx: Move cm_fx6 to use driver model for serial and GPIO
Simon Glass [Thu, 2 Oct 2014 01:57:28 +0000 (19:57 -0600)]
dm: imx: Move cm_fx6 to use driver model for serial and GPIO

Now that serial and GPIO are available for iMX.6, move cm_fx6 over as an
example.

Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Nikita Kiryanov <nikita@compulab.co.il>
10 years agodm: imx: serial: Support driver model in the MXC serial driver
Simon Glass [Thu, 2 Oct 2014 01:57:27 +0000 (19:57 -0600)]
dm: imx: serial: Support driver model in the MXC serial driver

Add driver model support with this driver. Boards which use this driver
should define platform data in their board files.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodm: imx: gpio: Support driver model in MXC gpio driver
Simon Glass [Thu, 2 Oct 2014 01:57:26 +0000 (19:57 -0600)]
dm: imx: gpio: Support driver model in MXC gpio driver

Add driver model support with this driver. In this case the platform data
is in the driver. It would be better to put this into an SOC-specific file,
but this is best attempted when more boards are moved over to use driver
model.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
10 years agoarm: mx6: cm_fx6: use gpio request
Nikita Kiryanov [Thu, 2 Oct 2014 14:17:24 +0000 (17:17 +0300)]
arm: mx6: cm_fx6: use gpio request

Use gpio_request for all the gpios that are utilized by various
subsystems in cm-fx6, and refactor the relevant init functions
so that all gpios are requested during board_init(), not during
subsystem init, thus avoiding the need to manage gpio ownership
each time a subsystem is initialized.

The new division of labor is:
During board_init() muxes are setup and gpios are requested.
During subsystem init gpios are toggled.

Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
10 years agodm: imx: i2c: Use gpio_request() to request GPIOs
Simon Glass [Thu, 2 Oct 2014 14:17:23 +0000 (17:17 +0300)]
dm: imx: i2c: Use gpio_request() to request GPIOs

GPIOs should be requested before use. Without this, driver model will
not permit the GPIO to be used.

Cc: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
10 years agoimx: Add error checking to setup_i2c()
Simon Glass [Thu, 2 Oct 2014 01:57:24 +0000 (19:57 -0600)]
imx: Add error checking to setup_i2c()

Since this function can fail, check its return value.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Nikita Kiryanov <nikita@compulab.co.il>
10 years agodm: serial: Put common code into separate functions
Simon Glass [Thu, 2 Oct 2014 01:57:23 +0000 (19:57 -0600)]
dm: serial: Put common code into separate functions

Avoid duplicating the code which deals with getc() and putc(). It is fairly
simple, but may expand later.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agoinitcall: Display error number when an error occurs
Simon Glass [Thu, 2 Oct 2014 01:57:22 +0000 (19:57 -0600)]
initcall: Display error number when an error occurs

Now that some initcall functions return a useful error number, display it
when something goes wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
10 years agodm: core: Allow a list of devices to be declared in one step
Simon Glass [Thu, 2 Oct 2014 01:57:21 +0000 (19:57 -0600)]
dm: core: Allow a list of devices to be declared in one step

The U_BOOT_DEVICE macro allows the declaration of a single U-Boot device.
Add an equivalent macro to declare an array of devices, for convenience.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodm: linker_lists: Add a way to declare multiple objects
Simon Glass [Thu, 2 Oct 2014 01:57:20 +0000 (19:57 -0600)]
dm: linker_lists: Add a way to declare multiple objects

The existing ll_entry_declare() permits a single element of the list to
be added to a linker list. Sometimes we want to add several objects at
once. To avoid lots of messy declarations, add a macro to support this.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodm: exynos: cros_ec: Move cros_ec_spi to driver model
Simon Glass [Tue, 14 Oct 2014 05:42:16 +0000 (23:42 -0600)]
dm: exynos: cros_ec: Move cros_ec_spi to driver model

Adjust this driver to use driver model and move smdk5420 boards over to
use it.

Acked-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodm: sandbox: cros_ec: Move sandbox cros_ec to driver module
Simon Glass [Tue, 14 Oct 2014 05:42:15 +0000 (23:42 -0600)]
dm: sandbox: cros_ec: Move sandbox cros_ec to driver module

Adjust the sandbox cros_ec emulation driver to work with driver model, and
switch over to driver model for sandbox cros_ec.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agodm: cros_ec: Add support for driver model
Simon Glass [Tue, 14 Oct 2014 05:42:14 +0000 (23:42 -0600)]
dm: cros_ec: Add support for driver model

Add support for driver model if enabled. This involves minimal changes
to the code, mostly just plumbing around the edges.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agodm: tegra: spi: Convert to driver model
Simon Glass [Tue, 14 Oct 2014 05:42:13 +0000 (23:42 -0600)]
dm: tegra: spi: Convert to driver model

This converts the Tegra SPI drivers to use driver model. This is tested
on:

- Tegra20 - trimslice
- Tegra30 - beaver
- Tegra124 - dalmore

(not tested on Tegra124)

Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodm: tegra: dts: Add aliases for spi on tegra30 boards
Simon Glass [Tue, 14 Oct 2014 05:42:12 +0000 (23:42 -0600)]
dm: tegra: dts: Add aliases for spi on tegra30 boards

All boards with a SPI interface have a suitable spi alias except the tegra30
boards. Add these missing aliases.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agodm: sf: Add tests for SPI flash
Simon Glass [Tue, 14 Oct 2014 05:42:11 +0000 (23:42 -0600)]
dm: sf: Add tests for SPI flash

Add a simple test for SPI that uses SPI flash. It operates by creating a
SPI flash file and using the 'sf test' command to test that all
operations work correctly.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agodm: spi: Add tests
Simon Glass [Tue, 14 Oct 2014 05:42:10 +0000 (23:42 -0600)]
dm: spi: Add tests

These tests use SPI flash (and the sandbox emulation) to operate.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agodm: exynos: config: Use driver model for SPI flash
Simon Glass [Tue, 14 Oct 2014 05:42:09 +0000 (23:42 -0600)]
dm: exynos: config: Use driver model for SPI flash

Use driver model for exynos5 board SPI flash.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agodm: sf: sandbox: Convert SPI flash driver to driver model
Simon Glass [Tue, 14 Oct 2014 05:42:08 +0000 (23:42 -0600)]
dm: sf: sandbox: Convert SPI flash driver to driver model

Convert sandbox's spi flash emulation driver to use driver model.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agodm: Convert spi_flash_probe() and 'sf probe' to use driver model
Simon Glass [Tue, 14 Oct 2014 05:42:07 +0000 (23:42 -0600)]
dm: Convert spi_flash_probe() and 'sf probe' to use driver model

We want the SPI flash probing feature to operate as a standard driver.
Add a driver for the basic probing feature used by most boards. This
will be activated by device_probe() as with any other driver.

The 'sf probe' command currently keeps track of the SPI slave that it
last used. This doesn't work with driver model, since some other driver
or system may have probed the device and have access to it too. On the
other hand, if we try to probe a device twice the second probe is a nop
with driver model.

Fix this by searching for the matching device, removing it, and then
probing it again. This should work as expected regardless of other device
activity.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agodm: sf: Add a uclass for SPI flash
Simon Glass [Tue, 14 Oct 2014 05:42:06 +0000 (23:42 -0600)]
dm: sf: Add a uclass for SPI flash

Add a driver model uclass for SPI flash which supports the common
operations (read, write, erase). Since we must keep support for the
non-dm interface, some modification of the spi_flash header is required.

CONFIG_DM_SPI_FLASH is used to enable driver model for SPI flash.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agospi: Use error return value in sf_ops
Simon Glass [Tue, 14 Oct 2014 05:42:05 +0000 (23:42 -0600)]
spi: Use error return value in sf_ops

Adjust spi_flash_probe_slave() to return an error value instead of a
pointer so we get the correct error return.

Have the caller allocate memory for spi_flash to simplify error handling,
and also so that driver model can use its existing allocated memory.

Add a spi.h include in the sf_params file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
10 years agosf: Tidy up public and private header files
Simon Glass [Tue, 14 Oct 2014 05:42:04 +0000 (23:42 -0600)]
sf: Tidy up public and private header files

Since spi_flash.h is supposed to be the public API for SPI flash, move
private things to sf_internal.h. Also tidy up a few comment nits.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>